summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/resources
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-08-14 11:38:45 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-08-14 17:16:47 +0000
commit3a97ca8dd9b96b599ae2d33e40df0dd2f7ea5859 (patch)
tree43cc572ba067417c7341db81f71ae7cc6e0fcc3e /chromium/chrome/browser/resources
parentf61ab1ac7f855cd281809255c0aedbb1895e1823 (diff)
BASELINE: Update chromium to 45.0.2454.40
Change-Id: Id2121d9f11a8fc633677236c65a3e41feef589e4 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'chromium/chrome/browser/resources')
-rw-r--r--chromium/chrome/browser/resources/2x/disclosure_triangle_small.pngbin191 -> 189 bytes
-rw-r--r--chromium/chrome/browser/resources/2x/downloads_section.pngbin5680 -> 5679 bytes
-rw-r--r--chromium/chrome/browser/resources/OWNERS1
-rw-r--r--chromium/chrome/browser/resources/about_version.css2
-rw-r--r--chromium/chrome/browser/resources/bookmark_manager/images/2x/bookmarks_section_32.pngbin4772 -> 4766 bytes
-rw-r--r--chromium/chrome/browser/resources/bookmark_manager/js/compiled_resources.gyp10
-rw-r--r--chromium/chrome/browser/resources/bookmark_manager/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/chromeos/OWNERS1
-rw-r--r--chromium/chrome/browser/resources/chromeos/about_os_credits.html38573
-rw-r--r--chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.html4
-rw-r--r--chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.js17
-rw-r--r--chromium/chrome/browser/resources/chromeos/braille_ime/BUILD.gn14
-rw-r--r--chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime.js74
-rw-r--r--chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs35
-rw-r--r--chromium/chrome/browser/resources/chromeos/braille_ime/compiled_resources.gyp2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/BUILD.gn393
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler.js133
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler_test.unitjs128
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator.js56
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs105
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/braille/liblouis.js2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/braille/spans.js13
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox.gni204
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox.gyp16
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js12
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/externs.js62
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/keymaps/key_map.js17
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js6
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/tabs_api_handler.js5
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/externs.js9
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/keyboard_handler.js4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions.js2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions_test.unitjs18
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager_test.unitjs4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_shifter.js2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/user_commands.js2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox/messages/msgs.js4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox_assets.gypi213
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox_tests.gypi131
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/chromevox_vars.gypi16
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/aria_util.js16
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/braille_util.js2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/chrome_extension_externs.js1272
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/chromevox.js6
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/command_store.js31
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/description_util.js2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/dom_util.js11
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/editable_text_test.unitjs4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/externs.js2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_attr.js4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_util.js4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/memoize.js2
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/spannable.js10
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_math.js6
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js22
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js21
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util.js25
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js170
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background_test.extjs34
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/classic_compatibility.js74
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js24
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs6
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js76
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/search.js6
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/generate_manifest.gypi4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/braille_background.js35
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/host.js13
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/mathjax.js18
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/tts_background.js4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/host/interface/abstract_tts.js6
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja211
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/math_simple_store.js4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/speech_rule_functions.js8
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/strings/BUILD.gn71
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd3
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_e2e_test_base.js4
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_next_e2e_test_base.js7
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js8
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/testing/tester.js4
-rwxr-xr-xchromium/chrome/browser/resources/chromeos/chromevox/tools/check_chromevox.py16
-rwxr-xr-xchromium/chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py24
-rwxr-xr-xchromium/chrome/browser/resources/chromeos/chromevox/tools/generate_test_messages.py2
-rwxr-xr-xchromium/chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py49
-rw-r--r--chromium/chrome/browser/resources/chromeos/compiled_resources.gyp2
-rw-r--r--chromium/chrome/browser/resources/chromeos/crosh_builtin/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/chromeos/echo/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/chromeos/emulator/device_emulator.css26
-rw-r--r--chromium/chrome/browser/resources/chromeos/emulator/device_emulator.html75
-rw-r--r--chromium/chrome/browser/resources/chromeos/emulator/device_emulator.js122
-rw-r--r--chromium/chrome/browser/resources/chromeos/first_run/app/icon/256.pngbin6440 -> 6398 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/first_run/app/icon/64.pngbin1873 -> 1870 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/first_run/app/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/chromeos/images/new_charger_uk.pngbin38341 -> 38296 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/images/new_charger_us.pngbin26192 -> 26024 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/images/original_charger_uk.pngbin31228 -> 31199 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/OWNERS1
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.html375
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.js141
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/controller_pairing_page.css24
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/custom_elements_login.html9
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/custom_elements_login.js9
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.html19
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.js17
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_button.css40
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_buttons.html74
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_buttons.js82
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_card.css78
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_card.html35
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_card.js7
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_header.css14
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_header.html26
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_header.js11
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_icon_button.css25
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_input.css26
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_input.html41
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_input.js66
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_input_form.css1
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_input_form.html39
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_input_form.js62
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.css10
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.html94
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.js65
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/header_bar.js19
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.html85
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.js20
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/html-echo.html10
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/html-echo.js15
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/images/chrome_retail_login.pngbin8243 -> 8214 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/indeterminate-progress.html48
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/indeterminate-progress.js32
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/login.html3
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/login_common.js40
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/login_resources.html1
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/notification_card.css24
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/notification_card.html59
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/notification_card.js48
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/offline_gaia.css14
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/offline_gaia.html109
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/offline_gaia.js95
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe-screen.html7
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe-screen.js63
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe.html2
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe.js6
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen.css19
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.css10
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.css6
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.html2
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js72
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_host_pairing.css11
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.css4
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.html55
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.js3
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.css8
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.html3
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/pairing_device_list.css27
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.css12
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.html85
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.js81
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_error_message.css13
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_error_message.html5
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_error_message.js14
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.css29
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.html9
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.js17
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.css19
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.html16
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.js58
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.html6
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.js7
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/throbber_notice.css17
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/throbber_notice.html22
-rw-r--r--chromium/chrome/browser/resources/chromeos/login/throbber_notice.js11
-rw-r--r--chromium/chrome/browser/resources/chromeos/network_configuration/js/network_status.js16
-rw-r--r--chromium/chrome/browser/resources/chromeos/network_configuration/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/chromeos/network_ui/compiled_resources.gyp5
-rw-r--r--chromium/chrome/browser/resources/chromeos/network_ui/network_ui.html6
-rw-r--r--chromium/chrome/browser/resources/chromeos/network_ui/network_ui.js4
-rw-r--r--chromium/chrome/browser/resources/chromeos/offline_app_load.html52
-rw-r--r--chromium/chrome/browser/resources/chromeos/provided_file_systems.css188
-rw-r--r--chromium/chrome/browser/resources/chromeos/provided_file_systems.html154
-rw-r--r--chromium/chrome/browser/resources/chromeos/provided_file_systems.js409
-rw-r--r--chromium/chrome/browser/resources/chromeos/speech_synthesis/manifest.json93
-rw-r--r--chromium/chrome/browser/resources/chromeos/speech_synthesis/manifest_guest.json94
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/css/wallpaper_manager.css22
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon128.pngbin8136 -> 4656 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon16.pngbin666 -> 596 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon256.pngbin21538 -> 10652 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon32.pngbin1358 -> 1133 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon48.pngbin2226 -> 1700 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon64.pngbin3223 -> 2161 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon96.pngbin5609 -> 3450 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/2x/close-white.pngbin198 -> 197 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/2x/spinner.pngbin445 -> 0 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail-hover.pngbin133 -> 132 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail.pngbin133 -> 132 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/checkbox_unchecked.pngbin95 -> 93 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/spinner.pngbin252 -> 0 bytes
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js5
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js11
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/main.html4
-rw-r--r--chromium/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json4
-rw-r--r--chromium/chrome/browser/resources/component_extension_resources.grd12
-rw-r--r--chromium/chrome/browser/resources/contextual_search/OWNERS1
-rw-r--r--chromium/chrome/browser/resources/contextual_search/header.svg25
-rw-r--r--chromium/chrome/browser/resources/contextual_search/promo.css162
-rw-r--r--chromium/chrome/browser/resources/contextual_search/promo.html37
-rw-r--r--chromium/chrome/browser/resources/contextual_search/promo.js58
-rw-r--r--chromium/chrome/browser/resources/cryptotoken/enroller.js2
-rw-r--r--chromium/chrome/browser/resources/cryptotoken/generichelper.js2
-rw-r--r--chromium/chrome/browser/resources/cryptotoken/gnubbies.js8
-rw-r--r--chromium/chrome/browser/resources/cryptotoken/multiplesigner.js2
-rw-r--r--chromium/chrome/browser/resources/cryptotoken/requestqueue.js2
-rw-r--r--chromium/chrome/browser/resources/cryptotoken/signer.js4
-rw-r--r--chromium/chrome/browser/resources/cryptotoken/singlesigner.js2
-rw-r--r--chromium/chrome/browser/resources/default_apps/external_extensions.json4
-rw-r--r--chromium/chrome/browser/resources/disclosure_triangle_small.pngbin128 -> 127 bytes
-rw-r--r--chromium/chrome/browser/resources/downloads/compiled_resources.gyp5
-rw-r--r--chromium/chrome/browser/resources/downloads/compiled_resources2.gyp63
-rw-r--r--chromium/chrome/browser/resources/downloads/constants.html2
-rw-r--r--chromium/chrome/browser/resources/downloads/constants.js (renamed from chromium/chrome/browser/resources/downloads/item.js)54
-rw-r--r--chromium/chrome/browser/resources/downloads/downloads.html35
-rw-r--r--chromium/chrome/browser/resources/downloads/item_view.js120
-rw-r--r--chromium/chrome/browser/resources/downloads/manager.js114
-rw-r--r--chromium/chrome/browser/resources/downloads/throttled_icon_loader.html3
-rw-r--r--chromium/chrome/browser/resources/downloads/throttled_icon_loader.js61
-rw-r--r--chromium/chrome/browser/resources/downloads_section.pngbin4300 -> 4296 bytes
-rw-r--r--chromium/chrome/browser/resources/extensions/OWNERS3
-rw-r--r--chromium/chrome/browser/resources/extensions/compiled_resources.gyp6
-rw-r--r--chromium/chrome/browser/resources/extensions/extension_command_list.js107
-rw-r--r--chromium/chrome/browser/resources/extensions/extension_commands_overlay.js42
-rw-r--r--chromium/chrome/browser/resources/extensions/extension_error_overlay.js6
-rw-r--r--chromium/chrome/browser/resources/extensions/extension_error_severity_fatal.pngbin221 -> 218 bytes
-rw-r--r--chromium/chrome/browser/resources/extensions/extension_error_severity_info.pngbin305 -> 304 bytes
-rw-r--r--chromium/chrome/browser/resources/extensions/extension_error_severity_warning.pngbin246 -> 242 bytes
-rw-r--r--chromium/chrome/browser/resources/extensions/extension_list.js70
-rw-r--r--chromium/chrome/browser/resources/extensions/extension_options_overlay.js33
-rw-r--r--chromium/chrome/browser/resources/extensions/extensions.css22
-rw-r--r--chromium/chrome/browser/resources/extensions/extensions.html9
-rw-r--r--chromium/chrome/browser/resources/extensions/extensions.js87
-rw-r--r--chromium/chrome/browser/resources/extensions/pack_extension_overlay.js5
-rw-r--r--chromium/chrome/browser/resources/feedback/js/event_handler.js3
-rw-r--r--chromium/chrome/browser/resources/feedback/js/feedback.js2
-rw-r--r--chromium/chrome/browser/resources/feedback/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/flags.css6
-rw-r--r--chromium/chrome/browser/resources/flags.html4
-rw-r--r--chromium/chrome/browser/resources/flags.js6
-rw-r--r--chromium/chrome/browser/resources/gaia_auth/OWNERS3
-rw-r--r--chromium/chrome/browser/resources/gaia_auth/background.js6
-rw-r--r--chromium/chrome/browser/resources/gaia_auth/channel.js6
-rw-r--r--chromium/chrome/browser/resources/gaia_auth/keyboard_ui.css22
-rw-r--r--chromium/chrome/browser/resources/gaia_auth/main.js3
-rw-r--r--chromium/chrome/browser/resources/gaia_auth/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/gaia_auth/manifest_keyboard.json47
-rw-r--r--chromium/chrome/browser/resources/gaia_auth_host/OWNERS1
-rw-r--r--chromium/chrome/browser/resources/gaia_auth_host/authenticator.js154
-rw-r--r--chromium/chrome/browser/resources/gaia_auth_host/post_message_channel.js5
-rw-r--r--chromium/chrome/browser/resources/gaia_auth_host/saml_handler.js4
-rw-r--r--chromium/chrome/browser/resources/gcm_internals.html2
-rw-r--r--chromium/chrome/browser/resources/get_salient_image_url.js67
-rw-r--r--chromium/chrome/browser/resources/google_now/background.js39
-rw-r--r--chromium/chrome/browser/resources/google_now/cards.js14
-rw-r--r--chromium/chrome/browser/resources/google_now/utility.js2
-rw-r--r--chromium/chrome/browser/resources/hangout_services/OWNERS1
-rw-r--r--chromium/chrome/browser/resources/hangout_services/background.html2
-rw-r--r--chromium/chrome/browser/resources/hangout_services/manifest.json4
-rw-r--r--chromium/chrome/browser/resources/hangout_services/startup.js17
-rw-r--r--chromium/chrome/browser/resources/hangout_services/thunk.js53
-rw-r--r--chromium/chrome/browser/resources/help/check_circle.svg4
-rw-r--r--chromium/chrome/browser/resources/help/compiled_resources.gyp2
-rw-r--r--chromium/chrome/browser/resources/help/help_content.css6
-rw-r--r--chromium/chrome/browser/resources/help/help_content.html4
-rw-r--r--chromium/chrome/browser/resources/help/help_page.js36
-rw-r--r--chromium/chrome/browser/resources/help_app/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/history/compiled_resources.gyp2
-rw-r--r--chromium/chrome/browser/resources/history/other_devices.js25
-rw-r--r--chromium/chrome/browser/resources/hotword/OWNERS2
-rw-r--r--chromium/chrome/browser/resources/hotword/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/hotword/nacl_manager.js7
-rw-r--r--chromium/chrome/browser/resources/hotword/state_manager.js3
-rw-r--r--chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-1x.pngbin222 -> 221 bytes
-rw-r--r--chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-2x.pngbin386 -> 385 bytes
-rw-r--r--chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-1x.pngbin380 -> 370 bytes
-rw-r--r--chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-2x.pngbin203 -> 191 bytes
-rw-r--r--chromium/chrome/browser/resources/hotword_audio_verification/images/icon-128.pngbin1170 -> 910 bytes
-rw-r--r--chromium/chrome/browser/resources/hotword_audio_verification/images/icon-16.pngbin184 -> 182 bytes
-rw-r--r--chromium/chrome/browser/resources/hotword_audio_verification/images/icon-48.pngbin408 -> 373 bytes
-rw-r--r--chromium/chrome/browser/resources/hotword_audio_verification/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/identity_scope_approval_dialog/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/local_discovery/device.pngbin118 -> 116 bytes
-rw-r--r--chromium/chrome/browser/resources/local_ntp/local_ntp.css425
-rw-r--r--chromium/chrome/browser/resources/local_ntp/local_ntp.html6
-rw-r--r--chromium/chrome/browser/resources/local_ntp/local_ntp.js660
-rw-r--r--chromium/chrome/browser/resources/local_ntp/local_ntp_design.js90
-rw-r--r--chromium/chrome/browser/resources/local_ntp/local_ntp_fast.css330
-rw-r--r--chromium/chrome/browser/resources/local_ntp/local_ntp_fast.html31
-rw-r--r--chromium/chrome/browser/resources/local_ntp/local_ntp_fast.js808
-rw-r--r--chromium/chrome/browser/resources/local_ntp/most_visited_single.css3
-rw-r--r--chromium/chrome/browser/resources/local_ntp/most_visited_single.js77
-rw-r--r--chromium/chrome/browser/resources/local_ntp/most_visited_util.js4
-rw-r--r--chromium/chrome/browser/resources/md_downloads/compiled_resources.gyp29
-rw-r--r--chromium/chrome/browser/resources/md_downloads/compiled_resources2.gyp32
-rw-r--r--chromium/chrome/browser/resources/md_downloads/downloads.css29
-rw-r--r--chromium/chrome/browser/resources/md_downloads/downloads.html58
-rw-r--r--chromium/chrome/browser/resources/md_downloads/item_view.html59
-rw-r--r--chromium/chrome/browser/resources/md_downloads/item_view.js249
-rw-r--r--chromium/chrome/browser/resources/md_downloads/manager.html8
-rw-r--r--chromium/chrome/browser/resources/md_downloads/manager.js234
-rw-r--r--chromium/chrome/browser/resources/md_downloads/strings.html2
-rw-r--r--chromium/chrome/browser/resources/md_settings/md_settings.css8
-rw-r--r--chromium/chrome/browser/resources/md_settings/md_settings.html3
-rw-r--r--chromium/chrome/browser/resources/media_router/OWNERS2
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/icon/sad-face.pngbin1088 -> 118 bytes
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/icon/sad-face2x.pngbin1121 -> 141 bytes
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css18
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html74
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.js136
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.css79
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html153
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js492
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/route_details/route_details.css28
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/route_details/route_details.html47
-rw-r--r--chromium/chrome/browser/resources/media_router/elements/route_details/route_details.js66
-rw-r--r--chromium/chrome/browser/resources/media_router/media_router.html9
-rw-r--r--chromium/chrome/browser/resources/media_router/media_router.js12
-rw-r--r--chromium/chrome/browser/resources/media_router/media_router_common.css2
-rw-r--r--chromium/chrome/browser/resources/media_router/media_router_data.js21
-rw-r--r--chromium/chrome/browser/resources/media_router/media_router_ui_interface.js63
-rw-r--r--chromium/chrome/browser/resources/net_internals/browser_bridge.js4
-rw-r--r--chromium/chrome/browser/resources/net_internals/dns_view.html6
-rw-r--r--chromium/chrome/browser/resources/net_internals/dns_view.js14
-rw-r--r--chromium/chrome/browser/resources/net_internals/hsts_view.js2
-rw-r--r--chromium/chrome/browser/resources/net_internals/log_view_painter.js15
-rw-r--r--chromium/chrome/browser/resources/net_internals/quic_view.html1
-rw-r--r--chromium/chrome/browser/resources/net_internals/sdch_view.html4
-rw-r--r--chromium/chrome/browser/resources/net_internals/source_entry.js1
-rw-r--r--chromium/chrome/browser/resources/network_speech_synthesis/tts_extension.js4
-rw-r--r--chromium/chrome/browser/resources/ntp4/apps_page.js14
-rw-r--r--chromium/chrome/browser/resources/ntp4/compiled_resources.gyp4
-rw-r--r--chromium/chrome/browser/resources/ntp4/images/2x/incognito_icon.pngbin7204 -> 7153 bytes
-rw-r--r--chromium/chrome/browser/resources/ntp4/images/closed_window.pngbin104 -> 103 bytes
-rw-r--r--chromium/chrome/browser/resources/ntp4/images/disclosure_triangle_mask.pngbin94 -> 90 bytes
-rw-r--r--chromium/chrome/browser/resources/ntp4/most_visited_page.css186
-rw-r--r--chromium/chrome/browser/resources/ntp4/most_visited_page.js495
-rw-r--r--chromium/chrome/browser/resources/ntp4/new_tab.css21
-rw-r--r--chromium/chrome/browser/resources/ntp4/new_tab.html19
-rw-r--r--chromium/chrome/browser/resources/ntp4/new_tab.js77
-rw-r--r--chromium/chrome/browser/resources/ntp4/new_tab_theme.css12
-rw-r--r--chromium/chrome/browser/resources/ntp4/other_sessions.js386
-rw-r--r--chromium/chrome/browser/resources/ntp4/page_list_view.js53
-rw-r--r--chromium/chrome/browser/resources/omnibox/omnibox.js4
-rw-r--r--chromium/chrome/browser/resources/options/autofill_edit_address_overlay.html14
-rw-r--r--chromium/chrome/browser/resources/options/autofill_edit_address_overlay.js115
-rw-r--r--chromium/chrome/browser/resources/options/autofill_options.html4
-rw-r--r--chromium/chrome/browser/resources/options/autofill_options.js5
-rw-r--r--chromium/chrome/browser/resources/options/autofill_options_list.js341
-rw-r--r--chromium/chrome/browser/resources/options/browser_options.css7
-rw-r--r--chromium/chrome/browser/resources/options/browser_options.html37
-rw-r--r--chromium/chrome/browser/resources/options/browser_options.js70
-rw-r--r--chromium/chrome/browser/resources/options/chromeos/display_options.js15
-rw-r--r--chromium/chrome/browser/resources/options/chromeos/network_list.js32
-rw-r--r--chromium/chrome/browser/resources/options/chromeos/overscan_shift_rtl.pngbin571 -> 570 bytes
-rw-r--r--chromium/chrome/browser/resources/options/clear_browser_data_overlay.css4
-rw-r--r--chromium/chrome/browser/resources/options/clear_browser_data_overlay.html6
-rw-r--r--chromium/chrome/browser/resources/options/clear_browser_data_overlay.js5
-rw-r--r--chromium/chrome/browser/resources/options/compiled_resources.gyp9
-rw-r--r--chromium/chrome/browser/resources/options/content_settings.html84
-rw-r--r--chromium/chrome/browser/resources/options/content_settings.js27
-rw-r--r--chromium/chrome/browser/resources/options/content_settings_exceptions_area.js3
-rw-r--r--chromium/chrome/browser/resources/options/cookies_list.js8
-rw-r--r--chromium/chrome/browser/resources/options/language_options.html15
-rw-r--r--chromium/chrome/browser/resources/options/language_options.js174
-rw-r--r--chromium/chrome/browser/resources/options/options.html5
-rw-r--r--chromium/chrome/browser/resources/options/options.js30
-rw-r--r--chromium/chrome/browser/resources/options/options_bundle.js5
-rw-r--r--chromium/chrome/browser/resources/options/origin_resources_list.js79
-rw-r--r--chromium/chrome/browser/resources/options/website_settings.css168
-rw-r--r--chromium/chrome/browser/resources/options/website_settings.html36
-rw-r--r--chromium/chrome/browser/resources/options/website_settings.js270
-rw-r--r--chromium/chrome/browser/resources/options/website_settings_edit_page.js168
-rw-r--r--chromium/chrome/browser/resources/options/website_settings_edit_site.html39
-rw-r--r--chromium/chrome/browser/resources/password_manager_internals/OWNERS1
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.css16
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.html27
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js46
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.html15
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.js7
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_page.pngbin1776 -> 1410 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_width.pngbin1268 -> 935 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_play.pngbin1087 -> 757 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_print.pngbin904 -> 654 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_save.pngbin979 -> 660 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_in.pngbin1859 -> 1315 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_out.pngbin1803 -> 1258 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_page.pngbin999 -> 922 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_width.pngbin696 -> 442 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_play.pngbin664 -> 443 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_print.pngbin797 -> 545 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_save.pngbin695 -> 447 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_in.pngbin1115 -> 945 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_out.pngbin1079 -> 735 bytes
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.html14
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.js22
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.css22
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html9
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.js10
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.html14
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.js7
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.html16
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.js30
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.css31
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html25
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js58
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.css39
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html15
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.js62
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html26
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js24
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.css35
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html75
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.js139
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html23
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.js28
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.css49
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html25
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js137
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.html18
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.js21
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.css7
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html20
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js85
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.css37
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.html34
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.js52
-rw-r--r--chromium/chrome/browser/resources/pdf/index-material.css10
-rw-r--r--chromium/chrome/browser/resources/pdf/index-material.html7
-rw-r--r--chromium/chrome/browser/resources/pdf/index.css4
-rw-r--r--chromium/chrome/browser/resources/pdf/index.html10
-rw-r--r--chromium/chrome/browser/resources/pdf/manifest.json2
-rw-r--r--chromium/chrome/browser/resources/pdf/pdf.js39
-rw-r--r--chromium/chrome/browser/resources/pdf/settings.js (renamed from chromium/chrome/browser/resources/settings/polymer_config.js)0
-rw-r--r--chromium/chrome/browser/resources/pdf/ui_manager.js59
-rw-r--r--chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json8
-rw-r--r--chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json8
-rw-r--r--chromium/chrome/browser/resources/plugin_metadata/plugins_win.json12
-rw-r--r--chromium/chrome/browser/resources/print_preview/cloud_print_interface.js4
-rw-r--r--chromium/chrome/browser/resources/print_preview/compiled_resources.gyp2
-rw-r--r--chromium/chrome/browser/resources/print_preview/data/destination.js50
-rw-r--r--chromium/chrome/browser/resources/print_preview/data/destination_store.js74
-rw-r--r--chromium/chrome/browser/resources/print_preview/data/invitation_store.js4
-rw-r--r--chromium/chrome/browser/resources/print_preview/data/local_parsers.js8
-rw-r--r--chromium/chrome/browser/resources/print_preview/data/print_ticket_store.js2
-rw-r--r--chromium/chrome/browser/resources/print_preview/data/ticket_items/vendor_items.js8
-rw-r--r--chromium/chrome/browser/resources/print_preview/images/1x/minus.pngbin86 -> 79 bytes
-rw-r--r--chromium/chrome/browser/resources/print_preview/images/1x/plus.pngbin88 -> 83 bytes
-rw-r--r--chromium/chrome/browser/resources/print_preview/images/2x/minus.pngbin85 -> 84 bytes
-rw-r--r--chromium/chrome/browser/resources/print_preview/images/2x/plus.pngbin91 -> 89 bytes
-rw-r--r--chromium/chrome/browser/resources/print_preview/images/printer.pngbin364 -> 363 bytes
-rw-r--r--chromium/chrome/browser/resources/print_preview/images/third_party.pngbin285 -> 284 bytes
-rw-r--r--chromium/chrome/browser/resources/print_preview/native_layer.js57
-rw-r--r--chromium/chrome/browser/resources/print_preview/previewarea/preview_area.html3
-rw-r--r--chromium/chrome/browser/resources/print_preview/previewarea/preview_area.js186
-rw-r--r--chromium/chrome/browser/resources/print_preview/print_preview.html2
-rw-r--r--chromium/chrome/browser/resources/print_preview/print_preview.js1
-rw-r--r--chromium/chrome/browser/resources/print_preview/print_preview_focus_manager.js7
-rw-r--r--chromium/chrome/browser/resources/print_preview/search/destination_list.css2
-rw-r--r--chromium/chrome/browser/resources/print_preview/search/destination_list.js2
-rw-r--r--chromium/chrome/browser/resources/print_preview/search/destination_list_item.css2
-rw-r--r--chromium/chrome/browser/resources/print_preview/search/destination_search.css2
-rw-r--r--chromium/chrome/browser/resources/print_preview/search/destination_search.js75
-rw-r--r--chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.css40
-rw-r--r--chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.html22
-rw-r--r--chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.js252
-rw-r--r--chromium/chrome/browser/resources/profile_signin_confirmation.html2
-rw-r--r--chromium/chrome/browser/resources/safe_browsing/images/2x/malware_icon_v2.pngbin157845 -> 157835 bytes
-rw-r--r--chromium/chrome/browser/resources/security_warnings/extended_reporting.js5
-rw-r--r--chromium/chrome/browser/resources/security_warnings/images/1x/brokenssl_red.pngbin1570 -> 1563 bytes
-rw-r--r--chromium/chrome/browser/resources/security_warnings/images/1x/captive_portal_page_icon.pngbin1349 -> 1281 bytes
-rw-r--r--chromium/chrome/browser/resources/security_warnings/images/1x/clock.pngbin1591 -> 1500 bytes
-rw-r--r--chromium/chrome/browser/resources/security_warnings/images/1x/stop_sign.pngbin1651 -> 1621 bytes
-rw-r--r--chromium/chrome/browser/resources/security_warnings/images/2x/brokenssl_red.pngbin3024 -> 2970 bytes
-rw-r--r--chromium/chrome/browser/resources/security_warnings/images/2x/captive_portal_page_icon.pngbin2827 -> 2690 bytes
-rw-r--r--chromium/chrome/browser/resources/security_warnings/images/2x/clock.pngbin3461 -> 3320 bytes
-rw-r--r--chromium/chrome/browser/resources/security_warnings/images/2x/stop_sign.pngbin3165 -> 3103 bytes
-rw-r--r--chromium/chrome/browser/resources/security_warnings/interstitial_v2.js11
-rw-r--r--chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html65
-rw-r--r--chromium/chrome/browser/resources/settings/appearance_page/appearance_page.css30
-rw-r--r--chromium/chrome/browser/resources/settings/appearance_page/appearance_page.html43
-rw-r--r--chromium/chrome/browser/resources/settings/appearance_page/appearance_page.js101
-rw-r--r--chromium/chrome/browser/resources/settings/checkbox/checkbox.css12
-rw-r--r--chromium/chrome/browser/resources/settings/checkbox/checkbox.html12
-rw-r--r--chromium/chrome/browser/resources/settings/checkbox/checkbox.js39
-rw-r--r--chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html16
-rw-r--r--chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html25
-rw-r--r--chromium/chrome/browser/resources/settings/downloads_page/downloads_page.js4
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.css (renamed from chromium/chrome/browser/resources/settings/internet_page/internet_detail_page_style.html)25
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html129
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js403
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_page.html14
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_page.js54
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_ip_config.css11
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_ip_config.html21
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_ip_config.js207
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_list.css15
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_list.html20
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_list.js73
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_list_item.css59
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_list_item.html21
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_list_item.js115
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_nameservers.css14
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_nameservers.html44
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_nameservers.js205
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_property_list.css20
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_property_list.html39
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_property_list.js135
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy.css28
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy.html81
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy.js259
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.css18
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html18
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js38
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.css17
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.html20
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.js53
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary.css7
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary.html84
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary.js123
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item.css28
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html48
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js111
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item_style.html31
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_style.html10
-rw-r--r--chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.html2
-rw-r--r--chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.js13
-rw-r--r--chromium/chrome/browser/resources/settings/prefs/prefs.html2
-rw-r--r--chromium/chrome/browser/resources/settings/prefs/prefs.js77
-rw-r--r--chromium/chrome/browser/resources/settings/privacy_page/privacy_page.css7
-rw-r--r--chromium/chrome/browser/resources/settings/privacy_page/privacy_page.html69
-rw-r--r--chromium/chrome/browser/resources/settings/privacy_page/privacy_page.js75
-rw-r--r--chromium/chrome/browser/resources/settings/routes.html6
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engine_adder.html10
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.css29
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.html31
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.js66
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.css23
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.html24
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.js22
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.css8
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html16
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.js34
-rw-r--r--chromium/chrome/browser/resources/settings/search_page/search_page.html10
-rw-r--r--chromium/chrome/browser/resources/settings/settings.html2
-rw-r--r--chromium/chrome/browser/resources/settings/settings_drawer/settings_drawer.html6
-rw-r--r--chromium/chrome/browser/resources/settings/settings_main/settings_main.css5
-rw-r--r--chromium/chrome/browser/resources/settings/settings_main/settings_main.html29
-rw-r--r--chromium/chrome/browser/resources/settings/settings_menu/settings_menu.html12
-rw-r--r--chromium/chrome/browser/resources/settings/settings_page/settings_page.css12
-rw-r--r--chromium/chrome/browser/resources/settings/settings_page/settings_page_header.html11
-rw-r--r--chromium/chrome/browser/resources/settings/settings_page/settings_page_header.js6
-rw-r--r--chromium/chrome/browser/resources/settings/settings_resources.grd165
-rw-r--r--chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html6
-rw-r--r--chromium/chrome/browser/resources/settings/sync_page/sync_page.css22
-rw-r--r--chromium/chrome/browser/resources/settings/sync_page/sync_page.html79
-rw-r--r--chromium/chrome/browser/resources/settings/sync_page/sync_page.js69
-rw-r--r--chromium/chrome/browser/resources/settings/users_page/user_list.css30
-rw-r--r--chromium/chrome/browser/resources/settings/users_page/user_list.html24
-rw-r--r--chromium/chrome/browser/resources/settings/users_page/user_list.js71
-rw-r--r--chromium/chrome/browser/resources/settings/users_page/users_page.css23
-rw-r--r--chromium/chrome/browser/resources/settings/users_page/users_page.html66
-rw-r--r--chromium/chrome/browser/resources/settings/users_page/users_page.js208
-rw-r--r--chromium/chrome/browser/resources/signin_internals/signin_index.html2
-rw-r--r--chromium/chrome/browser/resources/ssl/images/2x/brokenssl_guard.pngbin10897 -> 10875 bytes
-rw-r--r--chromium/chrome/browser/resources/ssl/images/2x/roadblock.pngbin7611 -> 7610 bytes
-rw-r--r--chromium/chrome/browser/resources/supervised_user_block_interstitial.css1
-rw-r--r--chromium/chrome/browser/resources/supervised_user_block_interstitial.html4
-rw-r--r--chromium/chrome/browser/resources/sync_file_system_internals/utils.js2
-rw-r--r--chromium/chrome/browser/resources/sync_internals/data.js2
-rw-r--r--chromium/chrome/browser/resources/sync_internals/node_browser.html2
-rw-r--r--chromium/chrome/browser/resources/sync_internals/sync_node_browser.js19
-rw-r--r--chromium/chrome/browser/resources/sync_internals/sync_search.js6
-rw-r--r--chromium/chrome/browser/resources/translate_internals/OWNERS2
-rw-r--r--chromium/chrome/browser/resources/translate_internals/detection_logs.html5
-rw-r--r--chromium/chrome/browser/resources/translate_internals/translate_internals.css6
-rw-r--r--chromium/chrome/browser/resources/translate_internals/translate_internals.js1
-rw-r--r--chromium/chrome/browser/resources/uber/compiled_resources.gyp4
-rw-r--r--chromium/chrome/browser/resources/uber/uber_frame.css4
-rw-r--r--chromium/chrome/browser/resources/uber/uber_frame.html9
-rw-r--r--chromium/chrome/browser/resources/webstore_app/OWNERS5
590 files changed, 12236 insertions, 50099 deletions
diff --git a/chromium/chrome/browser/resources/2x/disclosure_triangle_small.png b/chromium/chrome/browser/resources/2x/disclosure_triangle_small.png
index b52c976e999..8220d4671c5 100644
--- a/chromium/chrome/browser/resources/2x/disclosure_triangle_small.png
+++ b/chromium/chrome/browser/resources/2x/disclosure_triangle_small.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/2x/downloads_section.png b/chromium/chrome/browser/resources/2x/downloads_section.png
index 99800f0c601..e978c75c435 100644
--- a/chromium/chrome/browser/resources/2x/downloads_section.png
+++ b/chromium/chrome/browser/resources/2x/downloads_section.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/OWNERS b/chromium/chrome/browser/resources/OWNERS
index 6e98527ab0e..88772418600 100644
--- a/chromium/chrome/browser/resources/OWNERS
+++ b/chromium/chrome/browser/resources/OWNERS
@@ -1,4 +1,3 @@
-arv@chromium.org
bauerb@chromium.org
dbeam@chromium.org
estade@chromium.org
diff --git a/chromium/chrome/browser/resources/about_version.css b/chromium/chrome/browser/resources/about_version.css
index 343dedfafa7..6ac70ed9037 100644
--- a/chromium/chrome/browser/resources/about_version.css
+++ b/chromium/chrome/browser/resources/about_version.css
@@ -18,7 +18,7 @@ body {
#inner {
padding-top: 10px;
- width: 550px;
+ word-break: break-word;
}
.label {
diff --git a/chromium/chrome/browser/resources/bookmark_manager/images/2x/bookmarks_section_32.png b/chromium/chrome/browser/resources/bookmark_manager/images/2x/bookmarks_section_32.png
index 76fc975cb9b..5455818ae66 100644
--- a/chromium/chrome/browser/resources/bookmark_manager/images/2x/bookmarks_section_32.png
+++ b/chromium/chrome/browser/resources/bookmark_manager/images/2x/bookmarks_section_32.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/bookmark_manager/js/compiled_resources.gyp b/chromium/chrome/browser/resources/bookmark_manager/js/compiled_resources.gyp
index 346e5a0bf1d..cfbc1a1c995 100644
--- a/chromium/chrome/browser/resources/bookmark_manager/js/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/bookmark_manager/js/compiled_resources.gyp
@@ -38,11 +38,11 @@
'../../../../../chrome/browser/resources/bookmark_manager/js/dnd.js',
],
'externs': [
- '<(CLOSURE_DIR)/externs/bookmark_manager_private.js',
- '<(CLOSURE_DIR)/externs/chrome_send_externs.js',
- '<(CLOSURE_DIR)/externs/chrome_extensions.js',
- '<(CLOSURE_DIR)/externs/metrics_private.js',
- '<(CLOSURE_DIR)/externs/system_private.js',
+ '<(EXTERNS_DIR)/bookmark_manager_private.js',
+ '<(EXTERNS_DIR)/chrome_send.js',
+ '<(EXTERNS_DIR)/chrome_extensions.js',
+ '<(EXTERNS_DIR)/metrics_private.js',
+ '<(EXTERNS_DIR)/system_private.js',
'../../../../../ui/webui/resources/js/template_data_externs.js',
],
},
diff --git a/chromium/chrome/browser/resources/bookmark_manager/manifest.json b/chromium/chrome/browser/resources/bookmark_manager/manifest.json
index 29d2306f77c..23222d04747 100644
--- a/chromium/chrome/browser/resources/bookmark_manager/manifest.json
+++ b/chromium/chrome/browser/resources/bookmark_manager/manifest.json
@@ -21,5 +21,5 @@
"bookmarks": "main.html"
},
"content_security_policy":
- "object-src 'none'; script-src chrome://resources 'self'"
+ "object-src 'none'; script-src chrome://resources 'self' blob: filesystem:"
}
diff --git a/chromium/chrome/browser/resources/chromeos/OWNERS b/chromium/chrome/browser/resources/chromeos/OWNERS
index 03bb6b3e8e5..0525500f39f 100644
--- a/chromium/chrome/browser/resources/chromeos/OWNERS
+++ b/chromium/chrome/browser/resources/chromeos/OWNERS
@@ -4,6 +4,7 @@ achuith@chromium.org
zelidrag@chromium.org
satorux@chromium.org
stevenjb@chromium.org
+michaelpg@chromium.org
per-file drive_internals*=hashimoto@chromium.org
per-file drive_internals*=kinaba@chromium.org
diff --git a/chromium/chrome/browser/resources/chromeos/about_os_credits.html b/chromium/chrome/browser/resources/chromeos/about_os_credits.html
index efac743b8a2..5e7caabffe3 100644
--- a/chromium/chrome/browser/resources/chromeos/about_os_credits.html
+++ b/chromium/chrome/browser/resources/chromeos/about_os_credits.html
@@ -1,38579 +1,24 @@
<!doctype html>
<html>
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<meta charset="UTF-8">
<title>Credits</title>
<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
<style>
body {
background-color:white;
- font-size:84%;
max-width:1020px;
}
-.page-title {
- font-size:164%;
- font-weight:bold;
-}
-.product {
- background-color:#c3d9ff;
- overflow:auto;
- padding:2px;
- margin-top:16px;
- border-radius:5px;
-}
-.product .title {
- font-size:110%;
- font-weight:bold;
- float:left;
- margin:3px;
-}
-.product .homepage {
- text-align:right;
- float:right;
- margin:3px;
-}
-.product .homepage:after {
- content:" - ";
-}
-.product .show {
- text-align:right;
- float:right;
- margin:3px;
-}
-.licence {
- clear:both;
- background-color:#e8eef7;
- padding:16px;
- border-radius:3px;
- display:none;
-}
-.licence pre {
- white-space: pre-wrap
-}
-.licence h3 {
- margin-top:0px;
-}
-.license-packages {
- font-size:80%;
-}
-.dialog #print-link {
- display: none;
-}
-.dialog .homepage {
- display: none;
-}
</style>
-<script>
-//<![CDATA[
-function toggle(o) {
- var licence = o.nextSibling;
-
- while (licence.className != 'licence') {
- if (!licence) return false;
- licence = licence.nextSibling;
- }
- return toggleblock(licence, o);
-}
-
-function toggleblock(licence, o) {
- if (licence.style && licence.style.display == 'block') {
- licence.style.display = 'none';
- o.innerHTML = 'show license text';
- } else {
- licence.style.display = 'block';
- o.innerHTML = 'hide license text';
- }
- return false;
-}
-
-function toggleall() {
- var a = window.document.getElementsByClassName('licence');
- for (var i = 0; i < a.length; i++) {
- toggleblock(a[i], a[i].previousSibling.previousSibling.previousSibling.previousSibling);
- }
- return false;
-}
-//]]>
-</script>
</head>
<body>
-<span class="page-title" style="float:left;">Credits</span>
-<span style="float:right">
-<a href="javascript:toggleall()">Toggle All</a>
-<a id="print-link" href="javascript:window.print();">Print</a>
-</span>
-<div style="clear:both; overflow:auto;">
-<h2>List of Packages used in Google Chrome OS:</h2>
-<!-- Chromium <3s the following projects -->
-<div class="product">
-<span class="title">acl-2.2.51</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://savannah.nongnu.org/projects/acl">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">adhd-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">alsa-lib-1.0.27.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.alsa-project.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">alsa-plugins-1.0.25</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.alsa-project.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">alsa-utils-1.0.27.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.alsa-project.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ascender_to_license-20130111</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.monotypeimaging.com">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ath3k-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.atheros.com/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Atheros'>Custom License Atheros</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ath6k-34</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.atheros.com/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Atheros'>Custom License Atheros</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">atk-1.32.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://projects.gnome.org/accessibility/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">attr-2.4.46</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://savannah.nongnu.org/projects/attr">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">audioconfig-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">audiotest-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autoconf-2.13</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/autoconf/autoconf.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autoconf-2.69</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/autoconf/autoconf.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autoconf-wrapper-13</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">automake-1.11.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/automake/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">automake-wrapper-9</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-0.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-all-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-chrome-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-client-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-0.0.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-cellular-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-glbench-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-glmark2-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://launchpad.net/glmark2">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-graphics-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-ltp-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-p2p-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-piglit-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://cgit.freedesktop.org/piglit">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#LGPL-3'>Gentoo Package Stock License LGPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-touchpad-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-webgl-mpd-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-deps-webgl-perf-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-factory-install-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-fakemodem-conf-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-private-0.2.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-private-tests-echoprivate-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-private-tests-quickoffice-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-server-tests-0.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-server-tests-bluetooth-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-server-tests-shill-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-server-tests-telemetry-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-0.0.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-audio-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-cellular-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-cros-disks-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-cryptohome-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-debugd-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-graphics-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-ltp-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-ownershipapi-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-p2p-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-power-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-security-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-shill-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-touchpad-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">autotest-tests-tpm-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">avahi-0.6.31</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://avahi.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">avahi-daemon-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">avfs-1.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sourceforge.net/projects/avf">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">avtest_label_detect-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">baselayout-2.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">bash-4.2_p45</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://tiswww.case.edu/php/chet/bash/bashtop.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">bigreqsproto-1.1.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License bigreqsproto-1.1.1/COPYING:
-
-Copyright 1992, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">binutils-2.22</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sources.redhat.com/binutils/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-<li><a href='#LGPL-3'>Gentoo Package Stock License LGPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">binutils-config-3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">bluez-5.19</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.bluez.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">bootcomplete-login-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">bootstat-0.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">brltty-4.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://mielke.cc/brltty/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">bsdiff-4.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.daemonology.net/bsdiff/">homepage</a></span>
-<div class="licence">
-<pre>Copyright Attribution License chromiumos-overlay/licenses/copyright-attribution/dev-util/bsdiff:
-
-Copyright 2003-2005 Colin Percival
-All rights reserved
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted providing that the following conditions·
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">btsocket-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License btsocket-0.0.1/LICENSE:
-
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">busybox-1.21.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.busybox.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">bzip2-1.0.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.bzip.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License bzip2-1.0.6/LICENSE:
-
-
---------------------------------------------------------------------------
-
-This program, "bzip2", the associated library "libbzip2", and all
-documentation, are copyright (C) 1996-2010 Julian R Seward. All
-rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
-
-3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
-4. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Julian Seward, jseward@bzip.org
-bzip2/libbzip2 version 1.0.6 of 6 September 2010
-
---------------------------------------------------------------------------
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Gentoo Package Stock License BZIP2:
-
-&lt;copyright notice&gt;
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
-
-3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
-4. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">c-ares-1.7.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://c-ares.haxx.se/">homepage</a></span>
-<div class="licence">
-<pre>Copyright Attribution License chromiumos-overlay/licenses/copyright-attribution/net-dns/c-ares:
-
-Copyright 1998 by the Massachusetts Institute of Technology.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of M.I.T. not be used in
-advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">cairo-1.12.12</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://cairographics.org/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License MPL-1.1:
-
- MOZILLA PUBLIC LICENSE
- Version 1.1
-
- ---------------
-
-1. Definitions.
-
- 1.0.1. "Commercial Use" means distribution or otherwise making the
- Covered Code available to a third party.
-
- 1.1. "Contributor" means each entity that creates or contributes to
- the creation of Modifications.
-
- 1.2. "Contributor Version" means the combination of the Original
- Code, prior Modifications used by a Contributor, and the Modifications
- made by that particular Contributor.
-
- 1.3. "Covered Code" means the Original Code or Modifications or the
- combination of the Original Code and Modifications, in each case
- including portions thereof.
-
- 1.4. "Electronic Distribution Mechanism" means a mechanism generally
- accepted in the software development community for the electronic
- transfer of data.
-
- 1.5. "Executable" means Covered Code in any form other than Source
- Code.
-
- 1.6. "Initial Developer" means the individual or entity identified
- as the Initial Developer in the Source Code notice required by Exhibit
- A.
-
- 1.7. "Larger Work" means a work which combines Covered Code or
- portions thereof with code not governed by the terms of this License.
-
- 1.8. "License" means this document.
-
- 1.8.1. "Licensable" means having the right to grant, to the maximum
- extent possible, whether at the time of the initial grant or
- subsequently acquired, any and all of the rights conveyed herein.
-
- 1.9. "Modifications" means any addition to or deletion from the
- substance or structure of either the Original Code or any previous
- Modifications. When Covered Code is released as a series of files, a
- Modification is:
- A. Any addition to or deletion from the contents of a file
- containing Original Code or previous Modifications.
-
- B. Any new file that contains any part of the Original Code or
- previous Modifications.
-
- 1.10. "Original Code" means Source Code of computer software code
- which is described in the Source Code notice required by Exhibit A as
- Original Code, and which, at the time of its release under this
- License is not already Covered Code governed by this License.
-
- 1.10.1. "Patent Claims" means any patent claim(s), now owned or
- hereafter acquired, including without limitation, method, process,
- and apparatus claims, in any patent Licensable by grantor.
-
- 1.11. "Source Code" means the preferred form of the Covered Code for
- making modifications to it, including all modules it contains, plus
- any associated interface definition files, scripts used to control
- compilation and installation of an Executable, or source code
- differential comparisons against either the Original Code or another
- well known, available Covered Code of the Contributor's choice. The
- Source Code can be in a compressed or archival form, provided the
- appropriate decompression or de-archiving software is widely available
- for no charge.
-
- 1.12. "You" (or "Your") means an individual or a legal entity
- exercising rights under, and complying with all of the terms of, this
- License or a future version of this License issued under Section 6.1.
- For legal entities, "You" includes any entity which controls, is
- controlled by, or is under common control with You. For purposes of
- this definition, "control" means (a) the power, direct or indirect,
- to cause the direction or management of such entity, whether by
- contract or otherwise, or (b) ownership of more than fifty percent
- (50%) of the outstanding shares or beneficial ownership of such
- entity.
-
-2. Source Code License.
-
- 2.1. The Initial Developer Grant.
- The Initial Developer hereby grants You a world-wide, royalty-free,
- non-exclusive license, subject to third party intellectual property
- claims:
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Initial Developer to use, reproduce,
- modify, display, perform, sublicense and distribute the Original
- Code (or portions thereof) with or without Modifications, and/or
- as part of a Larger Work; and
-
- (b) under Patents Claims infringed by the making, using or
- selling of Original Code, to make, have made, use, practice,
- sell, and offer for sale, and/or otherwise dispose of the
- Original Code (or portions thereof).
-
- (c) the licenses granted in this Section 2.1(a) and (b) are
- effective on the date Initial Developer first distributes
- Original Code under the terms of this License.
-
- (d) Notwithstanding Section 2.1(b) above, no patent license is
- granted: 1) for code that You delete from the Original Code; 2)
- separate from the Original Code; or 3) for infringements caused
- by: i) the modification of the Original Code or ii) the
- combination of the Original Code with other software or devices.
-
- 2.2. Contributor Grant.
- Subject to third party intellectual property claims, each Contributor
- hereby grants You a world-wide, royalty-free, non-exclusive license
-
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Contributor, to use, reproduce, modify,
- display, perform, sublicense and distribute the Modifications
- created by such Contributor (or portions thereof) either on an
- unmodified basis, with other Modifications, as Covered Code
- and/or as part of a Larger Work; and
-
- (b) under Patent Claims infringed by the making, using, or
- selling of Modifications made by that Contributor either alone
- and/or in combination with its Contributor Version (or portions
- of such combination), to make, use, sell, offer for sale, have
- made, and/or otherwise dispose of: 1) Modifications made by that
- Contributor (or portions thereof); and 2) the combination of
- Modifications made by that Contributor with its Contributor
- Version (or portions of such combination).
-
- (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
- effective on the date Contributor first makes Commercial Use of
- the Covered Code.
-
- (d) Notwithstanding Section 2.2(b) above, no patent license is
- granted: 1) for any code that Contributor has deleted from the
- Contributor Version; 2) separate from the Contributor Version;
- 3) for infringements caused by: i) third party modifications of
- Contributor Version or ii) the combination of Modifications made
- by that Contributor with other software (except as part of the
- Contributor Version) or other devices; or 4) under Patent Claims
- infringed by Covered Code in the absence of Modifications made by
- that Contributor.
-
-3. Distribution Obligations.
-
- 3.1. Application of License.
- The Modifications which You create or to which You contribute are
- governed by the terms of this License, including without limitation
- Section 2.2. The Source Code version of Covered Code may be
- distributed only under the terms of this License or a future version
- of this License released under Section 6.1, and You must include a
- copy of this License with every copy of the Source Code You
- distribute. You may not offer or impose any terms on any Source Code
- version that alters or restricts the applicable version of this
- License or the recipients' rights hereunder. However, You may include
- an additional document offering the additional rights described in
- Section 3.5.
-
- 3.2. Availability of Source Code.
- Any Modification which You create or to which You contribute must be
- made available in Source Code form under the terms of this License
- either on the same media as an Executable version or via an accepted
- Electronic Distribution Mechanism to anyone to whom you made an
- Executable version available; and if made available via Electronic
- Distribution Mechanism, must remain available for at least twelve (12)
- months after the date it initially became available, or at least six
- (6) months after a subsequent version of that particular Modification
- has been made available to such recipients. You are responsible for
- ensuring that the Source Code version remains available even if the
- Electronic Distribution Mechanism is maintained by a third party.
-
- 3.3. Description of Modifications.
- You must cause all Covered Code to which You contribute to contain a
- file documenting the changes You made to create that Covered Code and
- the date of any change. You must include a prominent statement that
- the Modification is derived, directly or indirectly, from Original
- Code provided by the Initial Developer and including the name of the
- Initial Developer in (a) the Source Code, and (b) in any notice in an
- Executable version or related documentation in which You describe the
- origin or ownership of the Covered Code.
-
- 3.4. Intellectual Property Matters
- (a) Third Party Claims.
- If Contributor has knowledge that a license under a third party's
- intellectual property rights is required to exercise the rights
- granted by such Contributor under Sections 2.1 or 2.2,
- Contributor must include a text file with the Source Code
- distribution titled "LEGAL" which describes the claim and the
- party making the claim in sufficient detail that a recipient will
- know whom to contact. If Contributor obtains such knowledge after
- the Modification is made available as described in Section 3.2,
- Contributor shall promptly modify the LEGAL file in all copies
- Contributor makes available thereafter and shall take other steps
- (such as notifying appropriate mailing lists or newsgroups)
- reasonably calculated to inform those who received the Covered
- Code that new knowledge has been obtained.
-
- (b) Contributor APIs.
- If Contributor's Modifications include an application programming
- interface and Contributor has knowledge of patent licenses which
- are reasonably necessary to implement that API, Contributor must
- also include this information in the LEGAL file.
-
- (c) Representations.
- Contributor represents that, except as disclosed pursuant to
- Section 3.4(a) above, Contributor believes that Contributor's
- Modifications are Contributor's original creation(s) and/or
- Contributor has sufficient rights to grant the rights conveyed by
- this License.
-
- 3.5. Required Notices.
- You must duplicate the notice in Exhibit A in each file of the Source
- Code. If it is not possible to put such notice in a particular Source
- Code file due to its structure, then You must include such notice in a
- location (such as a relevant directory) where a user would be likely
- to look for such a notice. If You created one or more Modification(s)
- You may add your name as a Contributor to the notice described in
- Exhibit A. You must also duplicate this License in any documentation
- for the Source Code where You describe recipients' rights or ownership
- rights relating to Covered Code. You may choose to offer, and to
- charge a fee for, warranty, support, indemnity or liability
- obligations to one or more recipients of Covered Code. However, You
- may do so only on Your own behalf, and not on behalf of the Initial
- Developer or any Contributor. You must make it absolutely clear than
- any such warranty, support, indemnity or liability obligation is
- offered by You alone, and You hereby agree to indemnify the Initial
- Developer and every Contributor for any liability incurred by the
- Initial Developer or such Contributor as a result of warranty,
- support, indemnity or liability terms You offer.
-
- 3.6. Distribution of Executable Versions.
- You may distribute Covered Code in Executable form only if the
- requirements of Section 3.1-3.5 have been met for that Covered Code,
- and if You include a notice stating that the Source Code version of
- the Covered Code is available under the terms of this License,
- including a description of how and where You have fulfilled the
- obligations of Section 3.2. The notice must be conspicuously included
- in any notice in an Executable version, related documentation or
- collateral in which You describe recipients' rights relating to the
- Covered Code. You may distribute the Executable version of Covered
- Code or ownership rights under a license of Your choice, which may
- contain terms different from this License, provided that You are in
- compliance with the terms of this License and that the license for the
- Executable version does not attempt to limit or alter the recipient's
- rights in the Source Code version from the rights set forth in this
- License. If You distribute the Executable version under a different
- license You must make it absolutely clear that any terms which differ
- from this License are offered by You alone, not by the Initial
- Developer or any Contributor. You hereby agree to indemnify the
- Initial Developer and every Contributor for any liability incurred by
- the Initial Developer or such Contributor as a result of any such
- terms You offer.
-
- 3.7. Larger Works.
- You may create a Larger Work by combining Covered Code with other code
- not governed by the terms of this License and distribute the Larger
- Work as a single product. In such a case, You must make sure the
- requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
- If it is impossible for You to comply with any of the terms of this
- License with respect to some or all of the Covered Code due to
- statute, judicial order, or regulation then You must: (a) comply with
- the terms of this License to the maximum extent possible; and (b)
- describe the limitations and the code they affect. Such description
- must be included in the LEGAL file described in Section 3.4 and must
- be included with all distributions of the Source Code. Except to the
- extent prohibited by statute or regulation, such description must be
- sufficiently detailed for a recipient of ordinary skill to be able to
- understand it.
-
-5. Application of this License.
-
- This License applies to code to which the Initial Developer has
- attached the notice in Exhibit A and to related Covered Code.
-
-6. Versions of the License.
-
- 6.1. New Versions.
- Netscape Communications Corporation ("Netscape") may publish revised
- and/or new versions of the License from time to time. Each version
- will be given a distinguishing version number.
-
- 6.2. Effect of New Versions.
- Once Covered Code has been published under a particular version of the
- License, You may always continue to use it under the terms of that
- version. You may also choose to use such Covered Code under the terms
- of any subsequent version of the License published by Netscape. No one
- other than Netscape has the right to modify the terms applicable to
- Covered Code created under this License.
-
- 6.3. Derivative Works.
- If You create or use a modified version of this License (which you may
- only do in order to apply it to code which is not already Covered Code
- governed by this License), You must (a) rename Your license so that
- the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
- "MPL", "NPL" or any confusingly similar phrase do not appear in your
- license (except to note that your license differs from this License)
- and (b) otherwise make it clear that Your version of the license
- contains terms which differ from the Mozilla Public License and
- Netscape Public License. (Filling in the name of the Initial
- Developer, Original Code or Contributor in the notice described in
- Exhibit A shall not of themselves be deemed to be modifications of
- this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
- COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
- DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
- IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
- YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
- COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
- OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
- ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
- 8.1. This License and the rights granted hereunder will terminate
- automatically if You fail to comply with terms herein and fail to cure
- such breach within 30 days of becoming aware of the breach. All
- sublicenses to the Covered Code which are properly granted shall
- survive any termination of this License. Provisions which, by their
- nature, must remain in effect beyond the termination of this License
- shall survive.
-
- 8.2. If You initiate litigation by asserting a patent infringement
- claim (excluding declatory judgment actions) against Initial Developer
- or a Contributor (the Initial Developer or Contributor against whom
- You file such action is referred to as "Participant") alleging that:
-
- (a) such Participant's Contributor Version directly or indirectly
- infringes any patent, then any and all rights granted by such
- Participant to You under Sections 2.1 and/or 2.2 of this License
- shall, upon 60 days notice from Participant terminate prospectively,
- unless if within 60 days after receipt of notice You either: (i)
- agree in writing to pay Participant a mutually agreeable reasonable
- royalty for Your past and future use of Modifications made by such
- Participant, or (ii) withdraw Your litigation claim with respect to
- the Contributor Version against such Participant. If within 60 days
- of notice, a reasonable royalty and payment arrangement are not
- mutually agreed upon in writing by the parties or the litigation claim
- is not withdrawn, the rights granted by Participant to You under
- Sections 2.1 and/or 2.2 automatically terminate at the expiration of
- the 60 day notice period specified above.
-
- (b) any software, hardware, or device, other than such Participant's
- Contributor Version, directly or indirectly infringes any patent, then
- any rights granted to You by such Participant under Sections 2.1(b)
- and 2.2(b) are revoked effective as of the date You first made, used,
- sold, distributed, or had made, Modifications made by that
- Participant.
-
- 8.3. If You assert a patent infringement claim against Participant
- alleging that such Participant's Contributor Version directly or
- indirectly infringes any patent where such claim is resolved (such as
- by license or settlement) prior to the initiation of patent
- infringement litigation, then the reasonable value of the licenses
- granted by such Participant under Sections 2.1 or 2.2 shall be taken
- into account in determining the amount or value of any payment or
- license.
-
- 8.4. In the event of termination under Sections 8.1 or 8.2 above,
- all end user license agreements (excluding distributors and resellers)
- which have been validly granted by You or any distributor hereunder
- prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
- UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
- (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
- DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
- OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
- ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
- WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
- COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
- INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
- LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
- RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
- PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
- EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
- THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
- The Covered Code is a "commercial item," as that term is defined in
- 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
- software" and "commercial computer software documentation," as such
- terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
- C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
- all U.S. Government End Users acquire Covered Code with only those
- rights set forth herein.
-
-11. MISCELLANEOUS.
-
- This License represents the complete agreement concerning subject
- matter hereof. If any provision of this License is held to be
- unenforceable, such provision shall be reformed only to the extent
- necessary to make it enforceable. This License shall be governed by
- California law provisions (except to the extent applicable law, if
- any, provides otherwise), excluding its conflict-of-law provisions.
- With respect to disputes in which at least one party is a citizen of,
- or an entity chartered or registered to do business in the United
- States of America, any litigation relating to this License shall be
- subject to the jurisdiction of the Federal Courts of the Northern
- District of California, with venue lying in Santa Clara County,
- California, with the losing party responsible for costs, including
- without limitation, court costs and reasonable attorneys' fees and
- expenses. The application of the United Nations Convention on
- Contracts for the International Sale of Goods is expressly excluded.
- Any law or regulation which provides that the language of a contract
- shall be construed against the drafter shall not apply to this
- License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
- As between Initial Developer and the Contributors, each party is
- responsible for claims and damages arising, directly or indirectly,
- out of its utilization of rights under this License and You agree to
- work with Initial Developer and Contributors to distribute such
- responsibility on an equitable basis. Nothing herein is intended or
- shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
- Initial Developer may designate portions of the Covered Code as
- "Multiple-Licensed". "Multiple-Licensed" means that the Initial
- Developer permits you to utilize portions of the Covered Code under
- Your choice of the NPL or the alternative licenses, if any, specified
- by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License.
-
- ``The contents of this file are subject to the Mozilla Public License
- Version 1.1 (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.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
- The Original Code is ______________________________________.
-
- The Initial Developer of the Original Code is ________________________.
- Portions created by ______________________ are Copyright (C) ______
- _______________________. All Rights Reserved.
-
- Contributor(s): ______________________________________.
-
- Alternatively, the contents of this file may be used under the terms
- of the _____ license (the "[___] License"), in which case the
- provisions of [______] License are applicable instead of those
- above. If you wish to allow use of your version of this file only
- under the terms of the [____] License and not to allow others to use
- your version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice and
- other provisions required by the [___] License. If you do not delete
- the provisions above, a recipient may use your version of this file
- under either the MPL or the [___] License."
-
- [NOTE: The text of this Exhibit A may differ slightly from the text of
- the notices in the Source Code files of the Original Code. You should
- use the text of this Exhibit A rather than the text found in the
- Original Code Source Code for Your Modifications.]
-
- ----------------------------------------------------------------------
-
- AMENDMENTS
-
- The Netscape Public License Version 1.1 ("NPL") consists of the
- Mozilla Public License Version 1.1 with the following Amendments,
- including Exhibit A-Netscape Public License. Files identified with
- "Exhibit A-Netscape Public License" are governed by the Netscape
- Public License Version 1.1.
-
- Additional Terms applicable to the Netscape Public License.
- I. Effect.
- These additional terms described in this Netscape Public
- License -- Amendments shall apply to the Mozilla Communicator
- client code and to all Covered Code under this License.
-
- II. "Netscape's Branded Code" means Covered Code that Netscape
- distributes and/or permits others to distribute under one or more
- trademark(s) which are controlled by Netscape but which are not
- licensed for use under this License.
-
- III. Netscape and logo.
- This License does not grant any rights to use the trademarks
- "Netscape", the "Netscape N and horizon" logo or the "Netscape
- lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript",
- "Smart Browsing" even if such marks are included in the Original
- Code or Modifications.
-
- IV. Inability to Comply Due to Contractual Obligation.
- Prior to licensing the Original Code under this License, Netscape
- has licensed third party code for use in Netscape's Branded Code.
- To the extent that Netscape is limited contractually from making
- such third party code available under this License, Netscape may
- choose to reintegrate such code into Covered Code without being
- required to distribute such code in Source Code form, even if
- such code would otherwise be considered "Modifications" under
- this License.
-
- V. Use of Modifications and Covered Code by Initial Developer.
- V.1. In General.
- The obligations of Section 3 apply to Netscape, except to
- the extent specified in this Amendment, Section V.2 and V.3.
-
- V.2. Other Products.
- Netscape may include Covered Code in products other than the
- Netscape's Branded Code which are released by Netscape
- during the two (2) years following the release date of the
- Original Code, without such additional products becoming
- subject to the terms of this License, and may license such
- additional products on different terms from those contained
- in this License.
-
- V.3. Alternative Licensing.
- Netscape may license the Source Code of Netscape's Branded
- Code, including Modifications incorporated therein, without
- such Netscape Branded Code becoming subject to the terms of
- this License, and may license such Netscape Branded Code on
- different terms from those contained in this License.
-
- VI. Litigation.
- Notwithstanding the limitations of Section 11 above, the
- provisions regarding litigation in Section 11(a), (b) and (c) of
- the License shall apply to all disputes relating to this License.
-
- EXHIBIT A-Netscape Public License.
-
- "The contents of this file are subject to the Netscape Public
- License Version 1.1 (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.mozilla.org/NPL/
-
- Software distributed under the License is distributed on an "AS
- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- implied. See the License for the specific language governing
- rights and limitations under the License.
-
- The Original Code is Mozilla Communicator client code, released
- March 31, 1998.
-
- The Initial Developer of the Original Code is Netscape
- Communications Corporation. Portions created by Netscape are
- Copyright (C) 1998-1999 Netscape Communications Corporation. All
- Rights Reserved.
-
- Contributor(s): ______________________________________.
-
- Alternatively, the contents of this file may be used under the
- terms of the _____ license (the "[___] License"), in which case
- the provisions of [______] License are applicable instead of
- those above. If you wish to allow use of your version of this
- file only under the terms of the [____] License and not to allow
- others to use your version of this file under the NPL, indicate
- your decision by deleting the provisions above and replace them
- with the notice and other provisions required by the [___]
- License. If you do not delete the provisions above, a recipient
- may use your version of this file under either the NPL or the
- [___] License."
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">cherrypy-3.2.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.cherrypy.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License CherryPy-3.2.2/CherryPy.egg-info/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: CherryPy
-Version: 3.2.2
-Summary: Object-Oriented HTTP framework
-Home-page: http://www.cherrypy.org
-Author: CherryPy Team
-Author-email: team@cherrypy.org
-License: BSD
-Download-URL: http://download.cherrypy.org/cherrypy/3.2.2/
-Description: CherryPy is a pythonic, object-oriented HTTP framework
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Environment :: Web Environment
-Classifier: Intended Audience :: Developers
-Classifier: License :: Freely Distributable
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 3
-Classifier: Topic :: Internet :: WWW/HTTP
-Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
-Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
-Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
-Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
-Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Server
-Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License CherryPy-3.2.2/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: CherryPy
-Version: 3.2.2
-Summary: Object-Oriented HTTP framework
-Home-page: http://www.cherrypy.org
-Author: CherryPy Team
-Author-email: team@cherrypy.org
-License: BSD
-Download-URL: http://download.cherrypy.org/cherrypy/3.2.2/
-Description: CherryPy is a pythonic, object-oriented HTTP framework
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Environment :: Web Environment
-Classifier: Intended Audience :: Developers
-Classifier: License :: Freely Distributable
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 3
-Classifier: Topic :: Internet :: WWW/HTTP
-Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
-Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
-Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
-Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
-Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Server
-Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License CherryPy-3.2.2/cherrypy/LICENSE.txt:
-
-Copyright (c) 2004-2011, CherryPy Team (team@cherrypy.org)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of the CherryPy Team nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-activate-date-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-assets-0.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-auth-config-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-base-0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-bsp-alex-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-bsp-x86-alex-0.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-ca-certificates-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-chrome-38.0.2096.1_rc</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-cryptohome-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-default-apps-1.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-factory-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-factory-board-3.0.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-factory-mini-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-factory-regions-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-factoryinstall-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-firewall-init-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-firmware-alex-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-hangul-1.2.0.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://code.google.com/p/google-input-tools/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-imageburner-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-init-0.0.25</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-initramfs-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-installer-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-login-0.0.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-minijail-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-test-init-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromeos-test-testauthkeys-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chromite-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">chvt-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ckermit-8.0.211</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.kermit-project.org/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License Kermit:
-
-THE C-KERMIT 7.0 AND 8.0 LICENSE
-
- Last update: Thu Feb 8 17:41:07 2002
-
-This is the new C-Kermit 7.0 and 8.0 license. The intention is to allow
-C-Kermit to be distributed with "free" operating systems such as GNU/Linux,
-FreeBSD, NetBSD, OpenBSD, The Hurd, etc, even when the distributions
-themselves (such as Red Hat or Caldera) might be sold and/or might include
-applications that are not free, and yet still require a license to include
-C-Kermit in or with "non-free" products such as commercial OS's, commercial
-software packages, embedded systems, and hardware (other than general-purpose
-computers preloaded with "free" operating systems), since these licenses
-furnish a large portion of the Kermit Project's funding.
-
-There have been some questions about the provision in Clause (A) that:
-
- The
- C-Kermit source code may not be changed without the consent of the
- Kermit Project, which will not be unreasonably withheld (this is
- simply a matter of keeping a consistent and supportable code base).
-
-The intention of this clause is primarily to make sure that anybody who
-makes modifications sends them back to us, since we are the ones have to
-support C-Kermit, and so we can carry them through to future releases (so
-you don't have to make the same changes again and again).
-
-Secondarily it is to protect Columbia University in the unlikely event of
-modifications made with deliberate intent to offend or cause damage.
-
-Any redistributor of C-Kermit under Clause (A) below should rest assured
-there is no intention of preventing them from constructing a distribution in
-the appropriate format (RPM or whatever) for their product or from issuing
-any patches required for their products; we simply want to be informed so we
-can maintain a consistent code base and a solid, supportable software
-package. We are happy to work with any redistributor an any issues that
-concern them. If you have questions, send them to kermit@columbia.edu.
-
-Note: All changes to this file since 1 January 2000 (the C-Kermit 7.0
-release date) are above; the license itself has not changed, except to
-update the most recent copyright date.
-
-(Begin)
-
-Copyright (C) 1985, 2002,
- The Trustees of Columbia University in the City of New York.
- All rights reserved.
-
-PERMISSIONS:
-
-The C-Kermit software may be obtained directly from the Kermit Project at
-Columbia University (or from any source explicitly licensed by the Kermit
-Project or implicitly licensed by Clause (A) below) by any individual for
-his or her OWN USE, and by any company or other organization for its own
-INTERNAL DISTRIBUTION and use, including installation on servers that are
-accessed by customers or clients, WITHOUT EXPLICIT LICENSE.
-
-Conditions for REDISTRIBUTION are as follows:
-
-(A) The C-Kermit software, in source and/or binary form, may be
- included WITHOUT EXPLICIT LICENSE in distributions of OPERATING
- SYSTEMS that have OSI (Open Source Initiative, www.opensource.org)
- approved licenses, even if non-Open-Source applications (but not
- operating systems) are included in the same distribution. Such
- distributions include, but are not limited to, CD-ROM, FTP site,
- Web site, or preinstalled software on a new GENERAL-PURPOSE
- computer, as long as the primary character of the distribution is
- an Open Source operating system with accompanying utilities. The
- C-Kermit source code may not be changed without the consent of the
- Kermit Project, which will not be unreasonably withheld (this is
- simply a matter of keeping a consistent and supportable code base).
-
-(B) Inclusion of C-Kermit software in whole or in part, in any form, in
- or with any product not covered by Clause (A), or its distribution
- by any commercial enterprise to its actual or potential customers
- or clients except as in Clause (A), requires a license from the
- Kermit Project, Columbia University; contact kermit@columbia.edu.
-
-The name of Columbia University may not be used to endorse or promote
-products derived from or including the C-Kermit software without specific
-prior written permission.
-
-DISCLAIMER:
-
- THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM THE
- TRUSTEES OF COLUMBIA UNIVERSITY IN THE CITY OF NEW YORK AS TO ITS
- FITNESS FOR ANY PURPOSE, AND WITHOUT WARRANTY BY THE TRUSTEES OF
- COLUMBIA UNIVERSITY IN THE CITY OF NEW YORK OF ANY KIND, EITHER
- EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- THE TRUSTEES OF COLUMBIA UNIVERSITY IN THE CITY OF NEW YORK SHALL NOT
- BE LIABLE FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL,
- OR CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING OUT OF OR
- IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN IF IT HAS BEEN OR IS
- HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. YOU SHALL
- INDEMNIFY AND HOLD HARMLESS THE TRUSTEES OF COLUMBIA UNIVERSITY IN
- THE CITY OF NEW YORK, ITS EMPLOYEES AND AGENTS FROM AND AGAINST ANY
- AND ALL CLAIMS, DEMANDS, LOSS, DAMAGE OR EXPENSE (INCLUDING
- ATTORNEYS' FEES) ARISING OUT OF YOUR USE OF THIS SOFTWARE.
-
-The above copyright notice, permissions notice, and disclaimer may not be
-removed, altered, or obscured and shall be included in all copies of the
-C-Kermit software. The Trustees of Columbia University in the City of
-New York reserve the right to revoke this permission if any of the terms
-of use set forth above are breached.
-
-(End)
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">common-assets-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">compositeproto-0.4.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License compositeproto-0.4.2/COPYING:
-
-Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Copyright © 2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">confuse-2.7</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.nongnu.org/confuse/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#ISC'>Gentoo Package Stock License ISC</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">coreboot-2013.04</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.coreboot.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">coreutils-8.22</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/coreutils/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">cpio-2.11</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/cpio/cpio.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">crash-reporter-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://dev.chromium.org/chromium-os/platform">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">crda-1.1.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://wireless.kernel.org/en/developers/Regulatory">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License crda-1.1.1/LICENSE:
-
-Copyright (c) 2008, Luis R. Rodriguez &lt;mcgrof@gmail.com&gt;
-Copyright (c) 2008, Johannes Berg &lt;johannes@sipsolutions.net&gt;
-Copyright (c) 2008, Michael Green &lt;Michael.Green@Atheros.com&gt;
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License crda-1.1.1/debian-example/copyright:
-
-This package was debianized by Luis Rodriguez &lt;mcgrof@gmail.com&gt; on
-Thu, 22 Jan 2009 16:00:00 +0100.
-
-The crda packages was downloaded from &lt;http://wireless.kernel.org/download/crda/&gt;
-
-Copyright (c) 2008, Luis R. Rodriguez &lt;mcgrof@gmail.com&gt;
-Copyright (c) 2008, Johannes Berg &lt;johannes@sipsolutions.net&gt;
-Copyright (c) 2008, Michael Green &lt;Michael.Green@Atheros.com&gt;
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#as-is'>Gentoo Package Stock License as-is</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">cros_boot_mode-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">croscorefonts-1.23.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">crosextrafonts-20130214</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">crosextrafonts-carlito-20130920</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License crosextrafonts-carlito-20130920/LICENSE:
-
-Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic with Reserved Font Name "Carlito".
-
-This Font Software is licensed under the SIL Open Font License,
-Version 1.1 as shown below.
-
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-
-PREAMBLE The goals of the Open Font License (OFL) are to stimulate
-worldwide development of collaborative font projects, to support the font
-creation efforts of academic and linguistic communities, and to provide
-a free and open framework in which fonts may be shared and improved in
-partnership with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves.
-The fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply to
-any document created using the fonts or their derivatives.
-
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such.
-This may include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components
-as distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting ? in part or in whole ?
-any of the components of the Original Version, by changing formats or
-by porting the Font Software to a new environment.
-
-"Author" refers to any designer, engineer, programmer, technical writer
-or other person who contributed to the Font Software.
-
-
-PERMISSION &amp; CONDITIONS
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,in
- Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
- redistributed and/or sold with any software, provided that each copy
- contains the above copyright notice and this license. These can be
- included either as stand-alone text files, human-readable headers or
- in the appropriate machine-readable metadata fields within text or
- binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
- Name(s) unless explicit written permission is granted by the
- corresponding Copyright Holder. This restriction only applies to the
- primary font name as presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
- Software shall not be used to promote, endorse or advertise any
- Modified Version, except to acknowledge the contribution(s) of the
- Copyright Holder(s) and the Author(s) or with their explicit written
- permission.
-
-5) The Font Software, modified or unmodified, in part or in whole, must
- be distributed entirely under this license, and must not be distributed
- under any other license. The requirement for fonts to remain under
- this license does not apply to any document created using the Font
- Software.
-
-
-
-TERMINATION
-This license becomes null and void if any of the above conditions are not met.
-
-
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
-DEALINGS IN THE FONT SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#OFL-1.1'>Gentoo Package Stock License OFL-1.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">crosh-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ctemplate-1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/google-ctemplate/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License ctemplate-1.0/COPYING:
-
-Copyright (c) 2005, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License ctemplate-1.0/packages/deb/copyright:
-
-This package was debianized by Google Inc. &lt;opensource@google.com&gt; on
-13 March 2006.
-
-It was downloaded from http://code.google.com/
-
-Upstream Author: opensource@google.com
-
-Copyright (c) 2006, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">curl-7.31.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://curl.haxx.se/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License curl-7.31.0/COPYING:
-
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright (c) 1996 - 2013, Daniel Stenberg, &lt;daniel@haxx.se&gt;.
-
-All rights reserved.
-
-Permission to use, copy, modify, and distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright
-notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
-NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
-OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization of the copyright holder.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License curl-7.31.0/docs/LICENSE-MIXING:
-
- License Mixing with apps, libcurl and Third Party Libraries
- ===========================================================
-
-libcurl can be built to use a fair amount of various third party libraries,
-libraries that are written and provided by other parties that are distributed
-using their own licenses. Even libcurl itself contains code that may cause
-problems to some. This document attempts to describe what licenses libcurl and
-the other libraries use and what possible dilemmas linking and mixing them all
-can lead to for end users.
-
-I am not a lawyer and this is not legal advice!
-
-One common dilemma is that GPL[1]-licensed code is not allowed to be linked
-with code licensed under the Original BSD license (with the announcement
-clause). You may still build your own copies that use them all, but
-distributing them as binaries would be to violate the GPL license - unless you
-accompany your license with an exception[2]. This particular problem was
-addressed when the Modified BSD license was created, which does not have the
-announcement clause that collides with GPL.
-
-libcurl http://curl.haxx.se/docs/copyright.html
-
- Uses an MIT (or Modified BSD)-style license that is as liberal as
- possible. Some of the source files that deal with KRB4 have Original
- BSD-style announce-clause licenses. You may not distribute binaries
- with krb4-enabled libcurl that also link with GPL-licensed code!
-
-OpenSSL http://www.openssl.org/source/license.html
-
- (May be used for SSL/TLS support) Uses an Original BSD-style license
- with an announcement clause that makes it "incompatible" with GPL. You
- are not allowed to ship binaries that link with OpenSSL that includes
- GPL code (unless that specific GPL code includes an exception for
- OpenSSL - a habit that is growing more and more common). If OpenSSL's
- licensing is a problem for you, consider using GnuTLS or yassl
- instead.
-
-GnuTLS http://www.gnutls.org/
-
- (May be used for SSL/TLS support) Uses the LGPL[3] license. If this is
- a problem for you, consider using OpenSSL instead. Also note that
- GnuTLS itself depends on and uses other libs (libgcrypt and
- libgpg-error) and they too are LGPL- or GPL-licensed.
-
-yassl http://www.yassl.com/
-
- (May be used for SSL/TLS support) Uses the GPL[1] license. If this is
- a problem for you, consider using OpenSSL or GnuTLS instead.
-
-NSS http://www.mozilla.org/projects/security/pki/nss/
-
- (May be used for SSL/TLS support) Is covered by the MPL[4] license,
- the GPL[1] license and the LGPL[3] license. You may choose to license
- the code under MPL terms, GPL terms, or LGPL terms. These licenses
- grant you different permissions and impose different obligations. You
- should select the license that best meets your needs.
-
-axTLS http://axtls.sourceforge.net/
-
- (May be used for SSL/TLS support) Uses a Modified BSD-style license.
-
-c-ares http://daniel.haxx.se/projects/c-ares/license.html
-
- (Used for asynchronous name resolves) Uses an MIT license that is very
- liberal and imposes no restrictions on any other library or part you
- may link with.
-
-zlib http://www.gzip.org/zlib/zlib_license.html
-
- (Used for compressed Transfer-Encoding support) Uses an MIT-style
- license that shouldn't collide with any other library.
-
-krb4
-
- While nothing in particular says that a Kerberos4 library must use any
- particular license, the one I've tried and used successfully so far
- (kth-krb4) is partly Original BSD-licensed with the announcement
- clause. Some of the code in libcurl that is written to deal with
- Kerberos4 is Modified BSD-licensed.
-
-MIT Kerberos http://web.mit.edu/kerberos/www/dist/
-
- (May be used for GSS support) MIT licensed, that shouldn't collide
- with any other parts.
-
-Heimdal http://www.pdc.kth.se/heimdal/
-
- (May be used for GSS support) Heimdal is Original BSD licensed with
- the announcement clause.
-
-GNU GSS http://www.gnu.org/software/gss/
-
- (May be used for GSS support) GNU GSS is GPL licensed. Note that you
- may not distribute binary curl packages that uses this if you build
- curl to also link and use any Original BSD licensed libraries!
-
-fbopenssl
-
- (Used for SPNEGO support) Unclear license. Based on its name, I assume
- that it uses the OpenSSL license and thus shares the same issues as
- described for OpenSSL above.
-
-libidn http://josefsson.org/libidn/
-
- (Used for IDNA support) Uses the GNU Lesser General Public
- License [3]. LGPL is a variation of GPL with slightly less aggressive
- "copyleft". This license requires more requirements to be met when
- distributing binaries, see the license for details. Also note that if
- you distribute a binary that includes this library, you must also
- include the full LGPL license text. Please properly point out what
- parts of the distributed package that the license addresses.
-
-OpenLDAP http://www.openldap.org/software/release/license.html
-
- (Used for LDAP support) Uses a Modified BSD-style license. Since
- libcurl uses OpenLDAP as a shared library only, I have not heard of
- anyone that ships OpenLDAP linked with libcurl in an app.
-
-libssh2 http://www.libssh2.org/
-
- (Used for scp and sftp support) libssh2 uses a Modified BSD-style
- license.
-
-[1] = GPL - GNU General Public License: http://www.gnu.org/licenses/gpl.html
-[2] = http://www.fsf.org/licenses/gpl-faq.html#GPLIncompatibleLibs details on
- how to write such an exception to the GPL
-[3] = LGPL - GNU Lesser General Public License:
- http://www.gnu.org/licenses/lgpl.html
-[4] = MPL - Mozilla Public License:
- http://www.mozilla.org/MPL/
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">daisydog-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://chromium.googlesource.com/chromiumos/third_party/daisydog">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">damageproto-1.2.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License damageproto-1.2.1/COPYING:
-
-$Id: COPYING,v 1.1 2003-10-24 06:16:46 keithp Exp $
-
-Copyright © 2001,2003 Keith Packard
-Copyright © 2007 Eric Anholt
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dash-0.5.5.1.7</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://gondor.apana.org.au/~herbert/dash/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License dash-0.5.5.1/COPYING:
-
-Copyright (c) 1989-1994
- The Regents of the University of California. All rights reserved.
-Copyright (c) 1997 Christos Zoulas. All rights reserved.
-Copyright (c) 1997-2005
- Herbert Xu &lt;herbert@gondor.apana.org.au&gt;. All rights reserved.
-
-This code is derived from software contributed to Berkeley by Kenneth Almquist.
-
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
-mksignames.c:
-
-This file is not directly linked with dash. However, its output is.
-
-Copyright (C) 1992 Free Software Foundation, Inc.
-
-This file is part of GNU Bash, the Bourne Again SHell.
-
-Bash is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-Bash is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License with
-your Debian GNU/Linux system, in /usr/share/common-licenses/GPL, or with the
-Debian GNU/Linux hello source package as the file COPYING. If not,
-write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-Boston, MA 02111 USA.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dbus-1.6.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://dbus.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#AFL-2.1'>Gentoo Package Stock License AFL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dbus-c++-0.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.freedesktop.org/wiki/Software/dbus-c%2B%2B">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dbus-glib-0.100.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://dbus.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#AFL-2.1'>Gentoo Package Stock License AFL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dbus-python-0.84.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.freedesktop.org/wiki/Software/DBusBindings">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License dbus-python-0.84.0/COPYING:
-
-As of version 0.82.4, dbus-python is released under the following permissive
-non-copyleft license (the same one used for D-Bus core):
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use, copy,
- modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
-
-Copyright holders and licensing are indicated in the source files.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dbus-spy-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://vidner.net/martin/software/dbus-spy/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License CC-BY-3.0:
-
-Creative Commons Legal Code
-
-Attribution 3.0 Unported
-
- CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
- LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
- ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
- INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
- REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
- DAMAGES RESULTING FROM ITS USE.
-
-License
-
-THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
-COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
-COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
-AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
-
-BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
-TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
-BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
-CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
-CONDITIONS.
-
-1. Definitions
-
- a. "Adaptation" means a work based upon the Work, or upon the Work and
- other pre-existing works, such as a translation, adaptation,
- derivative work, arrangement of music or other alterations of a
- literary or artistic work, or phonogram or performance and includes
- cinematographic adaptations or any other form in which the Work may be
- recast, transformed, or adapted including in any form recognizably
- derived from the original, except that a work that constitutes a
- Collection will not be considered an Adaptation for the purpose of
- this License. For the avoidance of doubt, where the Work is a musical
- work, performance or phonogram, the synchronization of the Work in
- timed-relation with a moving image ("synching") will be considered an
- Adaptation for the purpose of this License.
- b. "Collection" means a collection of literary or artistic works, such as
- encyclopedias and anthologies, or performances, phonograms or
- broadcasts, or other works or subject matter other than works listed
- in Section 1(f) below, which, by reason of the selection and
- arrangement of their contents, constitute intellectual creations, in
- which the Work is included in its entirety in unmodified form along
- with one or more other contributions, each constituting separate and
- independent works in themselves, which together are assembled into a
- collective whole. A work that constitutes a Collection will not be
- considered an Adaptation (as defined above) for the purposes of this
- License.
- c. "Distribute" means to make available to the public the original and
- copies of the Work or Adaptation, as appropriate, through sale or
- other transfer of ownership.
- d. "Licensor" means the individual, individuals, entity or entities that
- offer(s) the Work under the terms of this License.
- e. "Original Author" means, in the case of a literary or artistic work,
- the individual, individuals, entity or entities who created the Work
- or if no individual or entity can be identified, the publisher; and in
- addition (i) in the case of a performance the actors, singers,
- musicians, dancers, and other persons who act, sing, deliver, declaim,
- play in, interpret or otherwise perform literary or artistic works or
- expressions of folklore; (ii) in the case of a phonogram the producer
- being the person or legal entity who first fixes the sounds of a
- performance or other sounds; and, (iii) in the case of broadcasts, the
- organization that transmits the broadcast.
- f. "Work" means the literary and/or artistic work offered under the terms
- of this License including without limitation any production in the
- literary, scientific and artistic domain, whatever may be the mode or
- form of its expression including digital form, such as a book,
- pamphlet and other writing; a lecture, address, sermon or other work
- of the same nature; a dramatic or dramatico-musical work; a
- choreographic work or entertainment in dumb show; a musical
- composition with or without words; a cinematographic work to which are
- assimilated works expressed by a process analogous to cinematography;
- a work of drawing, painting, architecture, sculpture, engraving or
- lithography; a photographic work to which are assimilated works
- expressed by a process analogous to photography; a work of applied
- art; an illustration, map, plan, sketch or three-dimensional work
- relative to geography, topography, architecture or science; a
- performance; a broadcast; a phonogram; a compilation of data to the
- extent it is protected as a copyrightable work; or a work performed by
- a variety or circus performer to the extent it is not otherwise
- considered a literary or artistic work.
- g. "You" means an individual or entity exercising rights under this
- License who has not previously violated the terms of this License with
- respect to the Work, or who has received express permission from the
- Licensor to exercise rights under this License despite a previous
- violation.
- h. "Publicly Perform" means to perform public recitations of the Work and
- to communicate to the public those public recitations, by any means or
- process, including by wire or wireless means or public digital
- performances; to make available to the public Works in such a way that
- members of the public may access these Works from a place and at a
- place individually chosen by them; to perform the Work to the public
- by any means or process and the communication to the public of the
- performances of the Work, including by public digital performance; to
- broadcast and rebroadcast the Work by any means including signs,
- sounds or images.
- i. "Reproduce" means to make copies of the Work by any means including
- without limitation by sound or visual recordings and the right of
- fixation and reproducing fixations of the Work, including storage of a
- protected performance or phonogram in digital form or other electronic
- medium.
-
-2. Fair Dealing Rights. Nothing in this License is intended to reduce,
-limit, or restrict any uses free from copyright or rights arising from
-limitations or exceptions that are provided for in connection with the
-copyright protection under copyright law or other applicable laws.
-
-3. License Grant. Subject to the terms and conditions of this License,
-Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
-perpetual (for the duration of the applicable copyright) license to
-exercise the rights in the Work as stated below:
-
- a. to Reproduce the Work, to incorporate the Work into one or more
- Collections, and to Reproduce the Work as incorporated in the
- Collections;
- b. to create and Reproduce Adaptations provided that any such Adaptation,
- including any translation in any medium, takes reasonable steps to
- clearly label, demarcate or otherwise identify that changes were made
- to the original Work. For example, a translation could be marked "The
- original work was translated from English to Spanish," or a
- modification could indicate "The original work has been modified.";
- c. to Distribute and Publicly Perform the Work including as incorporated
- in Collections; and,
- d. to Distribute and Publicly Perform Adaptations.
- e. For the avoidance of doubt:
-
- i. Non-waivable Compulsory License Schemes. In those jurisdictions in
- which the right to collect royalties through any statutory or
- compulsory licensing scheme cannot be waived, the Licensor
- reserves the exclusive right to collect such royalties for any
- exercise by You of the rights granted under this License;
- ii. Waivable Compulsory License Schemes. In those jurisdictions in
- which the right to collect royalties through any statutory or
- compulsory licensing scheme can be waived, the Licensor waives the
- exclusive right to collect such royalties for any exercise by You
- of the rights granted under this License; and,
- iii. Voluntary License Schemes. The Licensor waives the right to
- collect royalties, whether individually or, in the event that the
- Licensor is a member of a collecting society that administers
- voluntary licensing schemes, via that society, from any exercise
- by You of the rights granted under this License.
-
-The above rights may be exercised in all media and formats whether now
-known or hereafter devised. The above rights include the right to make
-such modifications as are technically necessary to exercise the rights in
-other media and formats. Subject to Section 8(f), all rights not expressly
-granted by Licensor are hereby reserved.
-
-4. Restrictions. The license granted in Section 3 above is expressly made
-subject to and limited by the following restrictions:
-
- a. You may Distribute or Publicly Perform the Work only under the terms
- of this License. You must include a copy of, or the Uniform Resource
- Identifier (URI) for, this License with every copy of the Work You
- Distribute or Publicly Perform. You may not offer or impose any terms
- on the Work that restrict the terms of this License or the ability of
- the recipient of the Work to exercise the rights granted to that
- recipient under the terms of the License. You may not sublicense the
- Work. You must keep intact all notices that refer to this License and
- to the disclaimer of warranties with every copy of the Work You
- Distribute or Publicly Perform. When You Distribute or Publicly
- Perform the Work, You may not impose any effective technological
- measures on the Work that restrict the ability of a recipient of the
- Work from You to exercise the rights granted to that recipient under
- the terms of the License. This Section 4(a) applies to the Work as
- incorporated in a Collection, but this does not require the Collection
- apart from the Work itself to be made subject to the terms of this
- License. If You create a Collection, upon notice from any Licensor You
- must, to the extent practicable, remove from the Collection any credit
- as required by Section 4(b), as requested. If You create an
- Adaptation, upon notice from any Licensor You must, to the extent
- practicable, remove from the Adaptation any credit as required by
- Section 4(b), as requested.
- b. If You Distribute, or Publicly Perform the Work or any Adaptations or
- Collections, You must, unless a request has been made pursuant to
- Section 4(a), keep intact all copyright notices for the Work and
- provide, reasonable to the medium or means You are utilizing: (i) the
- name of the Original Author (or pseudonym, if applicable) if supplied,
- and/or if the Original Author and/or Licensor designate another party
- or parties (e.g., a sponsor institute, publishing entity, journal) for
- attribution ("Attribution Parties") in Licensor's copyright notice,
- terms of service or by other reasonable means, the name of such party
- or parties; (ii) the title of the Work if supplied; (iii) to the
- extent reasonably practicable, the URI, if any, that Licensor
- specifies to be associated with the Work, unless such URI does not
- refer to the copyright notice or licensing information for the Work;
- and (iv) , consistent with Section 3(b), in the case of an Adaptation,
- a credit identifying the use of the Work in the Adaptation (e.g.,
- "French translation of the Work by Original Author," or "Screenplay
- based on original Work by Original Author"). The credit required by
- this Section 4(b) may be implemented in any reasonable manner;
- provided, however, that in the case of a Adaptation or Collection, at
- a minimum such credit will appear, if a credit for all contributing
- authors of the Adaptation or Collection appears, then as part of these
- credits and in a manner at least as prominent as the credits for the
- other contributing authors. For the avoidance of doubt, You may only
- use the credit required by this Section for the purpose of attribution
- in the manner set out above and, by exercising Your rights under this
- License, You may not implicitly or explicitly assert or imply any
- connection with, sponsorship or endorsement by the Original Author,
- Licensor and/or Attribution Parties, as appropriate, of You or Your
- use of the Work, without the separate, express prior written
- permission of the Original Author, Licensor and/or Attribution
- Parties.
- c. Except as otherwise agreed in writing by the Licensor or as may be
- otherwise permitted by applicable law, if You Reproduce, Distribute or
- Publicly Perform the Work either by itself or as part of any
- Adaptations or Collections, You must not distort, mutilate, modify or
- take other derogatory action in relation to the Work which would be
- prejudicial to the Original Author's honor or reputation. Licensor
- agrees that in those jurisdictions (e.g. Japan), in which any exercise
- of the right granted in Section 3(b) of this License (the right to
- make Adaptations) would be deemed to be a distortion, mutilation,
- modification or other derogatory action prejudicial to the Original
- Author's honor and reputation, the Licensor will waive or not assert,
- as appropriate, this Section, to the fullest extent permitted by the
- applicable national law, to enable You to reasonably exercise Your
- right under Section 3(b) of this License (right to make Adaptations)
- but not otherwise.
-
-5. Representations, Warranties and Disclaimer
-
-UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
-OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
-KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
-INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
-FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
-LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
-WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
-OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
-
-6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
-LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
-ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
-ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
-BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. Termination
-
- a. This License and the rights granted hereunder will terminate
- automatically upon any breach by You of the terms of this License.
- Individuals or entities who have received Adaptations or Collections
- from You under this License, however, will not have their licenses
- terminated provided such individuals or entities remain in full
- compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
- survive any termination of this License.
- b. Subject to the above terms and conditions, the license granted here is
- perpetual (for the duration of the applicable copyright in the Work).
- Notwithstanding the above, Licensor reserves the right to release the
- Work under different license terms or to stop distributing the Work at
- any time; provided, however that any such election will not serve to
- withdraw this License (or any other license that has been, or is
- required to be, granted under the terms of this License), and this
- License will continue in full force and effect unless terminated as
- stated above.
-
-8. Miscellaneous
-
- a. Each time You Distribute or Publicly Perform the Work or a Collection,
- the Licensor offers to the recipient a license to the Work on the same
- terms and conditions as the license granted to You under this License.
- b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
- offers to the recipient a license to the original Work on the same
- terms and conditions as the license granted to You under this License.
- c. If any provision of this License is invalid or unenforceable under
- applicable law, it shall not affect the validity or enforceability of
- the remainder of the terms of this License, and without further action
- by the parties to this agreement, such provision shall be reformed to
- the minimum extent necessary to make such provision valid and
- enforceable.
- d. No term or provision of this License shall be deemed waived and no
- breach consented to unless such waiver or consent shall be in writing
- and signed by the party to be charged with such waiver or consent.
- e. This License constitutes the entire agreement between the parties with
- respect to the Work licensed here. There are no understandings,
- agreements or representations with respect to the Work not specified
- here. Licensor shall not be bound by any additional provisions that
- may appear in any communication from You. This License may not be
- modified without the mutual written agreement of the Licensor and You.
- f. The rights granted under, and the subject matter referenced, in this
- License were drafted utilizing the terminology of the Berne Convention
- for the Protection of Literary and Artistic Works (as amended on
- September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
- Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
- and the Universal Copyright Convention (as revised on July 24, 1971).
- These rights and subject matter take effect in the relevant
- jurisdiction in which the License terms are sought to be enforced
- according to the corresponding provisions of the implementation of
- those treaty provisions in the applicable national law. If the
- standard suite of rights granted under applicable copyright law
- includes additional rights not granted under this License, such
- additional rights are deemed to be included in the License; this
- License is not intended to restrict the license of any rights under
- applicable law.
-
-
-Creative Commons Notice
-
- Creative Commons is not a party to this License, and makes no warranty
- whatsoever in connection with the Work. Creative Commons will not be
- liable to You or any party on any legal theory for any damages
- whatsoever, including without limitation any general, special,
- incidental or consequential damages arising in connection to this
- license. Notwithstanding the foregoing two (2) sentences, if Creative
- Commons has expressly identified itself as the Licensor hereunder, it
- shall have all rights and obligations of Licensor.
-
- Except for the limited purpose of indicating to the public that the
- Work is licensed under the CCPL, Creative Commons does not authorize
- the use by either party of the trademark "Creative Commons" or any
- related trademark or logo of Creative Commons without the prior
- written consent of Creative Commons. Any permitted use will be in
- compliance with Creative Commons' then-current trademark usage
- guidelines, as may be published on its website or otherwise made
- available upon request from time to time. For the avoidance of doubt,
- this trademark restriction does not form part of this License.
-
- Creative Commons may be contacted at http://creativecommons.org/.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dejavu-2.33</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://dejavu.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License BitstreamVera:
-
-Bitstream Vera Fonts Copyright
-
-The fonts have a generous copyright, allowing derivative works (as
-long as "Bitstream" or "Vera" are not in the names), and full
-redistribution (so long as they are not *sold* by themselves). They
-can be be bundled, redistributed and sold with any software.
-
-The fonts are distributed under the following copyright:
-
-Copyright
-=========
-
-Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream
-Vera is a trademark of Bitstream, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the fonts accompanying this license ("Fonts") and associated
-documentation files (the "Font Software"), to reproduce and distribute
-the Font Software, including without limitation the rights to use,
-copy, merge, publish, distribute, and/or sell copies of the Font
-Software, and to permit persons to whom the Font Software is furnished
-to do so, subject to the following conditions:
-
-The above copyright and trademark notices and this permission notice
-shall be included in all copies of one or more of the Font Software
-typefaces.
-
-The Font Software may be modified, altered, or added to, and in
-particular the designs of glyphs or characters in the Fonts may be
-modified and additional glyphs or characters may be added to the
-Fonts, only if the fonts are renamed to names not containing either
-the words "Bitstream" or the word "Vera".
-
-This License becomes null and void to the extent applicable to Fonts
-or Font Software that has been modified and is distributed under the
-"Bitstream Vera" names.
-
-The Font Software may be sold as part of a larger software package but
-no copy of one or more of the Font Software typefaces may be sold by
-itself.
-
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
-BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
-OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
-SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
-
-Except as contained in this notice, the names of Gnome, the Gnome
-Foundation, and Bitstream Inc., shall not be used in advertising or
-otherwise to promote the sale, use or other dealings in this Font
-Software without prior written authorization from the Gnome Foundation
-or Bitstream Inc., respectively. For further information, contact:
-fonts at gnome dot org.
-
-Copyright FAQ
-=============
-
- 1. I don't understand the resale restriction... What gives?
-
- Bitstream is giving away these fonts, but wishes to ensure its
- competitors can't just drop the fonts as is into a font sale system
- and sell them as is. It seems fair that if Bitstream can't make money
- from the Bitstream Vera fonts, their competitors should not be able to
- do so either. You can sell the fonts as part of any software package,
- however.
-
- 2. I want to package these fonts separately for distribution and
- sale as part of a larger software package or system. Can I do so?
-
- Yes. A RPM or Debian package is a "larger software package" to begin
- with, and you aren't selling them independently by themselves.
- See 1. above.
-
- 3. Are derivative works allowed?
- Yes!
-
- 4. Can I change or add to the font(s)?
- Yes, but you must change the name(s) of the font(s).
-
- 5. Under what terms are derivative works allowed?
-
- You must change the name(s) of the fonts. This is to ensure the
- quality of the fonts, both to protect Bitstream and Gnome. We want to
- ensure that if an application has opened a font specifically of these
- names, it gets what it expects (though of course, using fontconfig,
- substitutions could still could have occurred during font
- opening). You must include the Bitstream copyright. Additional
- copyrights can be added, as per copyright law. Happy Font Hacking!
-
- 6. If I have improvements for Bitstream Vera, is it possible they might get
- adopted in future versions?
-
- Yes. The contract between the Gnome Foundation and Bitstream has
- provisions for working with Bitstream to ensure quality additions to
- the Bitstream Vera font family. Please contact us if you have such
- additions. Note, that in general, we will want such additions for the
- entire family, not just a single font, and that you'll have to keep
- both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add
- glyphs to the font, they must be stylistically in keeping with Vera's
- design. Vera cannot become a "ransom note" font. Jim Lyles will be
- providing a document describing the design elements used in Vera, as a
- guide and aid for people interested in contributing to Vera.
-
- 7. I want to sell a software package that uses these fonts: Can I do so?
-
- Sure. Bundle the fonts with your software and sell your software
- with the fonts. That is the intent of the copyright.
-
- 8. If applications have built the names "Bitstream Vera" into them,
- can I override this somehow to use fonts of my choosing?
-
- This depends on exact details of the software. Most open source
- systems and software (e.g., Gnome, KDE, etc.) are now converting to
- use fontconfig (see www.fontconfig.org) to handle font configuration,
- selection and substitution; it has provisions for overriding font
- names and subsituting alternatives. An example is provided by the
- supplied local.conf file, which chooses the family Bitstream Vera for
- "sans", "serif" and "monospace". Other software (e.g., the XFree86
- core server) has other mechanisms for font substitution.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dev-install-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/chromium-os">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dhcp-4.2.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.isc.org/products/DHCP">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License dhcp-4.2.2/LICENSE:
-
-# Copyright (c) 2004-2011 by Internet Systems Consortium, Inc. ("ISC")
-# Copyright (c) 1995-2003 by Internet Software Consortium
-#
-# Permission to use, copy, modify, and distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-# Internet Systems Consortium, Inc.
-# 950 Charter Street
-# Redwood City, CA 94063
-# &lt;info@isc.org&gt;
-# https://www.isc.org/
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License dhcp-4.2.2/bind/bind-9.8.0-P4/COPYRIGHT:
-
-Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
-Copyright (C) 1996-2003 Internet Software Consortium.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-$Id: COPYRIGHT,v 1.17 2011-01-04 23:47:13 tbox Exp $
-
-Portions Copyright (C) 1996-2001 Nominum, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License dhcp-4.2.2/bind/bind-9.8.0-P4/contrib/idn/idnkit-1.0-src/LICENSE.txt:
-
-Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved.
-
-By using this file, you agree to the terms and conditions set forth bellow.
-
- LICENSE TERMS AND CONDITIONS
-
-The following License Terms and Conditions apply, unless a different
-license is obtained from Japan Network Information Center ("JPNIC"),
-a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
-Chiyoda-ku, Tokyo 101-0047, Japan.
-
-1. Use, Modification and Redistribution (including distribution of any
- modified or derived work) in source and/or binary forms is permitted
- under this License Terms and Conditions.
-
-2. Redistribution of source code must retain the copyright notices as they
- appear in each source code file, this License Terms and Conditions.
-
-3. Redistribution in binary form must reproduce the Copyright Notice,
- this License Terms and Conditions, in the documentation and/or other
- materials provided with the distribution. For the purposes of binary
- distribution the "Copyright Notice" refers to the following language:
- "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved."
-
-4. The name of JPNIC may not be used to endorse or promote products
- derived from this Software without specific prior written approval of
- JPNIC.
-
-5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License dhcp-4.2.2/bind/bind-9.8.0-P4/contrib/zkt/LICENSE:
-
-Copyright (c) 2005 - 2008, Holger Zuleger HZnet. All rights reserved.
-
-This software is open source.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-
-Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimer in the documentation
-and/or other materials provided with the distribution.
-
-Neither the name of Holger Zuleger HZnet nor the names of its contributors may
-be used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#as-is'>Gentoo Package Stock License as-is</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dhcpcd-5.1.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://roy.marples.name/projects/dhcpcd/">homepage</a></span>
-<div class="licence">
-<pre>Copyright Attribution License chromiumos-overlay/licenses/copyright-attribution/net-misc/dhcpcd:
-
-Copyright (c) 2006-2010 Roy Marples &lt;roy@marples.name&gt;
-All rights reserved
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">diffutils-3.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/diffutils/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dmidecode-2.11</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.nongnu.org/dmidecode/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dnsmasq-2.50</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.thekelleys.org.uk/dnsmasq/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">docbook-xml-dtd-4.1.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.docbook.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#as-is'>Gentoo Package Stock License as-is</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dosfstools-3.0.26</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.daniel-baumann.ch/software/dosfstools/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dpkt-1.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/dpkt/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License dpkt-1.8/LICENSE:
-
-
- Copyright (c) 2004 Dug Song &lt;dugsong@monkey.org&gt;
- All rights reserved, all wrongs reversed.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. The names of the authors and copyright holders may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License dpkt-1.8/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: dpkt
-Version: 1.8
-Summary: dumb packet module
-Home-page: http://dpkt.googlecode.com/
-Author: Dug Song &lt;dugsong@monkey.org&gt;
-Author-email: UNKNOWN
-License: UNKNOWN
-Description: UNKNOWN
-Platform: UNKNOWN
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dri2proto-2.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License dri2proto-2.6/COPYING:
-
-Copyright © 2007 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Soft-
-ware"), to deal in the Software without restriction, including without
-limitation the rights to use, copy, modify, merge, publish, distribute,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, provided that the above copyright
-notice(s) and this permission notice appear in all copies of the Soft-
-ware and that both the above copyright notice(s) and this permission
-notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
-RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
-THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
-QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
-MANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization of
-the copyright holder.
-
-Authors:
- Kristian Høgsberg (krh@redhat.com)
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">droidfonts-cros-20121206</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">dtc-1.4.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://git.jdl.com/gitweb/?p=dtc.git">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">e2fsprogs-1.42</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://e2fsprogs.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License e2fsprogs-1.42/COPYING:
-
-This package, the EXT2 filesystem utilities, are made available under
-the GNU Public License version 2, with the exception of the lib/ext2fs
-and lib/e2p libraries, which are made available under the GNU Library
-General Public License Version 2, the lib/uuid library which is made
-available under a BSD-style license and the lib/et and lib/ss
-libraries which are made available under an MIT-style license. Please
-see lib/uuid/COPYING for more details for the license for the files
-comprising the libuuid library, and the source file headers of the
-libet and libss libraries for more information.
-
-The most recent officially distributed version can be found at
-http://e2fsprogs.sourceforge.net. If you need to make a distribution,
-that's the one you should use. If there is some reason why you'd like
-a more recent version that is still in ALPHA testing (i.e., either
-using the "WIP" test distributions or one from the hg or git
-repository from the development branch, please contact me
-(tytso@mit.edu) before you ship. The release schedules for this
-package are flexible, if you give me enough lead time.
-
-
- Theodore Ts'o
- 23-June-2007
-
-----------------------------------------------------------------------
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
-----------------------------------------------------------------------
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL. It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
- Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
- Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs. This
-license, the GNU Library General Public License, applies to certain
-designated libraries. This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
- The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it. Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program. However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
- Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-
- However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.) The hope is that this
-will lead to faster development of free libraries.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, while the latter only
-works together with the library.
-
- Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License"). Each licensee is
-addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- c) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- d) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the library's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License e2fsprogs-1.42/debian/copyright:
-
-This is the Debian GNU/Linux prepackaged version of the EXT2 file
-system utilities (e2fsck, mke2fs, etc.). The EXT2 utilities were
-written by Theodore Ts'o &lt;tytso@mit.edu&gt; and Remy Card &lt;card@masi.ibp.fr&gt;.
-
-Sources were obtained from http://sourceforge.net/projects/e2fsprogs
-
-Packaging is Copyright (c) 2003-2007 Theodore Ts'o &lt;tytso@mit.edu&gt;
- Copyright (c) 1997-2003 Yann Dirson &lt;dirson@debian.org&gt;
- Copyright (c) 2001 Alcove &lt;http://www.alcove.com/&gt;
- Copyright (c) 1997 Klee Dienes
- Copyright (c) 1995-1996 Michael Nonweiler &lt;mrn20@cam.ac.uk&gt;
-
-Upstream Author: Theodore Ts'o &lt;tytso@mit.edu&gt;
-
-Copyright notice:
-
-This package, the EXT2 filesystem utilities, are made available under
-the GNU Public License version 2, with the exception of the lib/ext2fs
-and lib/e2p libraries, which are made available under the GNU Library
-General Public License Version 2, the lib/uuid library which is made
-available under a BSD-style license and the lib/et and lib/ss
-libraries which are made available under an MIT-style license.
-
- Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by Theodore Ts'o
-
-On Debian GNU systems, the complete text of the GNU General Public
-License can be found in `/usr/share/common-licenses/GPL-2'. The
-complete text of the GNU Library General Public License can be found
-in '/usr/share/common-licenses/LGPL-2'.
-
-
-The license used for lib/et and lib/ss libraries is:
-
- Copyright 1987 by the Student Information Processing Board
- of the Massachusetts Institute of Technology
-
- Permission to use, copy, modify, and distribute this software and
- its documentation for any purpose is hereby granted, provided that
- the names of M.I.T. and the M.I.T. S.I.P.B. not be used in
- advertising or publicity pertaining to distribution of the software
- without specific, written prior permission. M.I.T. and the
- M.I.T. S.I.P.B. make no representations about the suitability of
- this software for any purpose. It is provided "as is" without
- express or implied warranty.
-
-The license used for lib/uuid is:
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, and the entire permission notice in its entirety,
- including the disclaimer of warranties.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
- WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
- DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License e2fsprogs-1.42/ext2ed/COPYRIGHT:
-
-EXT2ED is hereby placed under the terms of the GNU General Public License.
-Follows the GNU license.
-
-Gadi Oxman, August 1995
-
----------------------------------------------------------------------------
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) 19yy &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License e2fsprogs-1.42/lib/ext2fs/tdb/patches/copyright:
-
-Index: tdbsa/tdb.c
-===================================================================
---- tdbsa.orig/tdb.c
-+++ tdbsa/tdb.c
-@@ -4,11 +4,11 @@ Rev: 23371
- Last Changed Date: 2007-06-06 20:14:06 -0400 (Wed, 06 Jun 2007)
- */
- /*
-- Unix SMB/CIFS implementation.
-+ trivial database library - standalone version
-
-- trivial database library - private includes
--
-- Copyright (C) Andrew Tridgell 2005
-+ Copyright (C) Andrew Tridgell 1999-2005
-+ Copyright (C) Jeremy Allison 2000-2006
-+ Copyright (C) Paul `Rusty' Russell 2000
-
- ** NOTE! The following LGPL license applies to the tdb
- ** library. This does NOT imply that all of Samba is released
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License e2fsprogs-1.42/lib/uuid/COPYING:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, and the entire permission notice in its entirety,
- including the disclaimer of warranties.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
-WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">e2fsprogs-libs-1.42</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://e2fsprogs.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ecryptfs-utils-101</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://launchpad.net/ecryptfs">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">elfutils-0.154</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://fedorahosted.org/elfutils/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License GPL-2-with-exceptions:
-
-NOTE: This is the GPL with specific exceptions added by packages to extend your rights under the GPL. The specific exception(s) for the package can be found in the source tarball.
-
-Exceptions follow,
-
-// As a special exception, if other files instantiate templates or use macros
-// or inline functions from this file, or you compile this file and link it
-// with other works to produce a work based on this file, this file does not
-// by itself cause the resulting work to be covered by the GNU General Public
-// License. This exception does not invalidate any other reasons why a work
-// based on this file might be covered by the GNU General Public License.
-
-End of exceptions. The rest of this file is the GPL.
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">engine_pkcs11-0.1.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.opensc-project.org/engine_pkcs11">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">eselect-opengl-1.2.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">eselect-python-20100321</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ethtool-3.12.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.kernel.org/pub/software/network/ethtool/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">evtest-1.29</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://cgit.freedesktop.org/evtest/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">exfat-utils-1.0.2_pre401</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/exfat/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">expat-2.1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://expat.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License expat-2.1.0/COPYING:
-
-Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
- and Clark Cooper
-Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">fftw-3.2.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.fftw.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">file-5.15</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.darwinsys.com/file/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License file-5.15/COPYING:
-
-$File: COPYING,v 1.1 2008/02/05 19:08:11 christos Exp $
-Copyright (c) Ian F. Darwin 1986, 1987, 1989, 1990, 1991, 1992, 1994, 1995.
-Software written by Ian F. Darwin and others;
-maintained 1994- Christos Zoulas.
-
-This software is not subject to any export provision of the United States
-Department of Commerce, and may be exported to any country or planet.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice immediately at the beginning of the file, without modification,
- this list of conditions, and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">findutils-4.4.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/findutils/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">fio-2.1.10</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://brick.kernel.dk/snaps/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">fixesproto-5.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License fixesproto-5.0/COPYING:
-
-Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
-Copyright 2010 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Copyright © 2001,2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">flashmap-0.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://flashmap.googlecode.com">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">flashrom-0.9.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://flashrom.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">flex-2.5.37</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://flex.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License FLEX:
-
-Flex carries the copyright used for BSD software, slightly modified
-because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
-which operates under a contract with the Department of Energy:
-
- Copyright (c) 1990 The Regents of the University of California.
- All rights reserved.
-
- This code is derived from software contributed to Berkeley by
- Vern Paxson.
-
- The United States Government has rights in this work pursuant
- to contract no. DE-AC03-76SF00098 between the United States
- Department of Energy and the University of California.
-
- Redistribution and use in source and binary forms with or without
- modification are permitted provided that: (1) source distributions
- retain this entire copyright notice and comment, and (2)
- distributions including binaries display the following
- acknowledgement: ``This product includes software developed by the
- University of California, Berkeley and its contributors'' in the
- documentation or other materials provided with the distribution and
- in all advertising materials mentioning features or use of this
- software. Neither the name of the University nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE.
-
-This basically says "do whatever you please with this software except
-remove this notice or take advantage of the University's (or the flex
-authors') name".
-
-Note that the "flex.skl" scanner skeleton carries no copyright notice.
-You are free to do whatever you please with scanners generated using flex;
-for them, you are not even bound by the above copyright.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">font-util-1.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License font-util-1.2.0/COPYING:
-
-Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
- ------------------------------------------------------------------------
-
-Copyright (c) 2003 The NetBSD Foundation, Inc.
-All rights reserved.
-
-This code is derived from software contributed to The NetBSD Foundation
-by Ben Collver &lt;collver1@attbi.com&gt;.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
- ------------------------------------------------------------------------
-
-Copyright (c) 2006 Martin Husemann.
-Copyright (c) 2007 Joerg Sonnenberger.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
- ------------------------------------------------------------------------
-
-Copyright 2005 Red Hat, Inc
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the copyright holders shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from the copyright holders.
-
- ------------------------------------------------------------------------
-
-Copyright (c) 1991-2003 Unicode, Inc. All Rights reserved.
-
-This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
-No claims are made as to fitness for any particular purpose. No
-warranties of any kind are expressed or implied. The recipient
-agrees to determine applicability of information provided. If this
-file has been provided on optical media by Unicode, Inc., the sole
-remedy for any claim will be exchange of defective media within 90
-days of receipt.
-
-Unicode, Inc. hereby grants the right to freely use the information
-supplied in this file in the creation of products supporting the
-Unicode Standard, and to make copies of this file in any form for
-internal or external distribution as long as this notice remains
-attached.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">fontconfig-2.7.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://fontconfig.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License fontconfig-2.7.1/COPYING:
-
-fontconfig/COPYING
-
-Copyright © 2001,2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">fontsproto-2.1.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License fontsproto-2.1.1/COPYING:
-
-Copyright 1990, 1991 Network Computing Devices;
-Portions Copyright 1987 by Digital Equipment Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Network Computing Devices or Digital
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-Network Computing Devices and Digital make no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-NETWORK COMPUTING DEVICES AND DIGITAL DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES
-OR DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
-
-Copyright 1990, 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright (c) 1999 The XFree86 Project Inc.
-
-All Rights Reserved.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The XFree86 Project
-Inc. shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from The XFree86 Project Inc..
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">freeglut-2.4.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://freeglut.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License freeglut-2.4.0/COPYING:
-
-
- Freeglut Copyright
- ------------------
-
- Freeglut code without an explicit copyright is covered by the following
- copyright:
-
- Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies or substantial portions of the Software.
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the name of Pawel W. Olszta shall not be
- used in advertising or otherwise to promote the sale, use or other dealings
- in this Software without prior written authorization from Pawel W. Olszta.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">freeimage-3.15.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://freeimage.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License FIPL-1.0:
-
-FreeImage Public License - Version 1.0
----------------------------------------------
-
-1. Definitions.
-
-1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications.
-
-1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.
-
-1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.
-
-1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data.
-
-1.5. "Executable" means Covered Code in any form other than Source Code.
-
-1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.
-
-1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.
-
-1.8. "License" means this document.
-
-1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a
-Modification is:
-
-A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.
-
-B. Any new file that contains any part of the Original Code or previous Modifications.
-
-1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.
-
-1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control
-compilation and installation of an Executable, or a list of source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.
-
-1.12. "You" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the
-direction or management of such entity, whether by contract or otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity.
-
-2. Source Code License.
-
-2.1. The Initial Developer Grant.
-The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:
-
-(a) to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and
-
-(b) under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell ("Utilize") the Original Code (or portions thereof), but solely to the extent that
-any such patent is reasonably necessary to enable You to Utilize the Original Code (or portions thereof) and not to any greater extent that may be necessary to Utilize further Modifications or
-combinations.
-
-2.2. Contributor Grant.
-Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:
-
-(a) to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code or as part of a Larger Work; and
-
-(b) under patents now or hereafter owned or controlled by Contributor, to Utilize the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Contributor Version (or portions thereof), and not to any greater extent that
-may be necessary to Utilize further Modifications or combinations.
-
-3. Distribution Obligations.
-
-3.1. Application of License.
-The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or
-restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.
-
-3.2. Availability of Source Code.
-Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.
-
-3.3. Description of Modifications.
-You must cause all Covered Code to which you contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.
-
-3.4. Intellectual Property Matters
-
-(a) Third Party Claims.
-If You have knowledge that a party claims an intellectual property right in particular functionality or code (or its utilization under this License), you must include a text file with the source code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If you obtain such knowledge after You make Your Modification available as described in Section 3.2, You shall promptly modify the LEGAL file in all copies You make
-available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.
-
-(b) Contributor APIs.
-If Your Modification is an application programming interface and You own or control patents which are reasonably necessary to implement that API, you must also include this information in the LEGAL file.
-
-3.5. Required Notices.
-You must duplicate the notice in Exhibit A in each file of the Source Code, and this License in any documentation for the Source Code, where You describe recipients' rights relating to Covered Code. If You created one or more Modification(s), You may add your name as a Contributor to the notice described in Exhibit A. If it is not possible to put such notice in a particular Source Code file due to its
-structure, then you must include such notice in a location (such as a relevant directory file) where a user would be likely to look for such a notice. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or
-liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of
-warranty, support, indemnity or liability terms You offer.
-
-3.6. Distribution of Executable Versions.
-You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You
-describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code under a license of Your choice, which may contain terms different from this License,
-provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
-
-3.7. Larger Works.
-You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
-If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
-
-5. Application of this License.
-
-This License applies to code to which the Initial Developer has attached the notice in Exhibit A, and to related Covered Code.
-
-6. Versions of the License.
-
-6.1. New Versions.
-Floris van den Berg may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.
-
-6.2. Effect of New Versions.
-Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Floris van den Berg
-No one other than Floris van den Berg has the right to modify the terms applicable to Covered Code created under this License.
-
-6.3. Derivative Works.
-If you create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), you must (a) rename Your license so that the phrases "FreeImage", `FreeImage Public License", "FIPL", or any confusingly similar phrase do not appear anywhere in your license and (b) otherwise make it clear that your version of the license contains terms which differ from the FreeImage Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
-COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
-This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
-
-9. LIMITATION OF LIABILITY.
-
-UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
-EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
-The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.
-
-11. MISCELLANEOUS.
-
-This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by Dutch law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in, the The Netherlands: (a) unless otherwise agreed in writing, all disputes relating to this License (excepting any dispute relating to intellectual property rights) shall be subject to final and binding arbitration, with the losing party paying all costs of arbitration; (b) any arbitration relating to this Agreement shall be held in Almelo, The Netherlands; and (c) any litigation relating to this Agreement shall be subject to the jurisdiction of the court of Almelo, The Netherlands with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
-Except in cases where another Contributor has failed to comply with Section 3.4, You are responsible for damages arising, directly or indirectly, out of Your utilization of rights under this License, based
-on the number of copies of Covered Code you made available, the revenues you received from utilizing such rights, and other relevant factors. You agree to work with affected parties to distribute
-responsibility on an equitable basis.
-
-EXHIBIT A.
-
-"The contents of this file are subject to the FreeImage Public License Version 1.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://home.wxs.nl/~flvdberg/freeimage-license.txt
-
-Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">freetype-2.5.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.freetype.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#FTL'>Gentoo Package Stock License FTL</a></li>
-<li><a href='#GPL-2+'>Gentoo Package Stock License GPL-2+</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">fuse-2.8.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://fuse.sourceforge.net">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">fuse-exfat-1.0.2_pre401</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/exfat/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gcc-libs-4.8.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License FDL-1.2:
-
- GNU Free Documentation License
- Version 1.2, November 2002
-
-
- Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-0. PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document "free" in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-1. APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License. Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein. The "Document", below,
-refers to any such manual or work. Any member of the public is a
-licensee, and is addressed as "you". You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-
-A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (Thus, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The "Invariant Sections" are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License. If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant. The Document may contain zero
-Invariant Sections. If the Document does not identify any Invariant
-Sections then there are none.
-
-The "Cover Texts" are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License. A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-
-A "Transparent" copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text. A copy that is not "Transparent" is called "Opaque".
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML, PostScript or PDF designed for human modification. Examples of
-transparent image formats include PNG, XCF and JPG. Opaque formats
-include proprietary formats that can be read and edited only by
-proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML, PostScript or PDF produced by some word
-processors for output purposes only.
-
-The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-A section "Entitled XYZ" means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language. (Here XYZ stands for a
-specific section name mentioned below, such as "Acknowledgements",
-"Dedications", "Endorsements", or "History".) To "Preserve the Title"
-of such a section when you modify the Document means that it remains a
-section "Entitled XYZ" according to this definition.
-
-The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document. These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-
-
-2. VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-3. COPYING IN QUANTITY
-
-If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-4. MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-A. Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.
-B. List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has fewer than five),
- unless they release you from this requirement.
-C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-D. Preserve all the copyright notices of the Document.
-E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-F. Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.
-G. Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.
-H. Include an unaltered copy of this License.
-I. Preserve the section Entitled "History", Preserve its Title, and add
- to it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section Entitled "History" in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.
-J. Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the "History" section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.
-K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the section all
- the substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
-L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
-M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-N. Do not retitle any existing section to be Entitled "Endorsements"
- or to conflict in title with any Invariant Section.
-O. Preserve any Warranty Disclaimers.
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section Entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-5. COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections Entitled "History"
-in the various original documents, forming one section Entitled
-"History"; likewise combine any sections Entitled "Acknowledgements",
-and any sections Entitled "Dedications". You must delete all sections
-Entitled "Endorsements".
-
-
-6. COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-7. AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an "aggregate" if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-
-
-8. TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers. In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-
-If a section in the Document is Entitled "Acknowledgements",
-"Dedications", or "History", the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.
-
-
-9. TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-10. FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns. See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
- Copyright (c) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.2
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the "with...Texts." line with this:
-
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-
-If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-<li><a href='#LGPL-3'>Gentoo Package Stock License LGPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gdb-7.7.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sourceware.org/gdb/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gdbm-1.9.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/gdbm/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">genius-app-oem-0.0.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gestures-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gflags-2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/gflags/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License gflags-2.0/COPYING:
-
-Copyright (c) 2006, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License gflags-2.0/packages/deb/copyright:
-
-This package was debianized by Craig Silverstein &lt;google-ctemplate@google.com&gt;
-on Wed, 25 Jan 2012 15:09:14 -0800.
-
-It was downloaded from http://code.google.com/p/gflags/downloads/list
-
-Upstream Author: google-gflags@google.com
-
-Copyright (c) 2006, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">git-1.8.3.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.git-scm.com/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">glib-2.34.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gtk.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2+'>Gentoo Package Stock License LGPL-2+</a></li>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">glmark2-285</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://launchpad.net/glmark2">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">glog-0.3.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/google-glog/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License glog-0.3.2/COPYING:
-
-Copyright (c) 2008, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-A function gettimeofday in utilities.cc is based on
-
-http://www.google.com/codesearch/p?hl=en#dR3YEbitojA/COPYING&amp;q=GetSystemTimeAsFileTime%20license:bsd
-
-The license of this code is:
-
-Copyright (c) 2003-2008, Jouni Malinen &lt;j@w1.fi&gt; and contributors
-All Rights Reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-3. Neither the name(s) of the above-listed copyright holder(s) nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License glog-0.3.2/packages/deb/copyright:
-
-This package was debianized by Google Inc. &lt;opensource@google.com&gt; on
-13 June 2008.
-
-It was downloaded from http://code.google.com/
-
-Upstream Author: opensource@google.com
-
-Copyright (c) 2008, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">glproto-1.4.14</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#SGI-B-2.0'>Gentoo Package Stock License SGI-B-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">glu-9.0.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://cgit.freedesktop.org/mesa/glu/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#SGI-B-2.0'>Gentoo Package Stock License SGI-B-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gmerge-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gmock-1.6.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/googlemock/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License gmock-1.6.0/COPYING:
-
-Copyright 2008, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License gmock-1.6.0/gtest/COPYING:
-
-Copyright 2008, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License gmock-1.6.0/scripts/generator/COPYING:
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [2007] Neal Norwitz
- Portions Copyright [2007] Google Inc.
-
- 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
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gmp-5.0.2_p1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://gmplib.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-3'>Gentoo Package Stock License LGPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gobi-cromo-plugin-1.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gobi-firmware-1.0.61</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gobi-sdk-0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gobi3k-lib-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gobi3k-sdk-1.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">google-breakpad-1303</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/google-breakpad">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">GoogleChineseInput-cangjie-2.0.0.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.google.com/inputtools">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">GoogleChineseInput-pinyin-2.0.0.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.google.com/inputtools">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">GoogleChineseInput-zhuyin-2.0.0.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.google.com/inputtools">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">GoogleKeyboardInput-xkb-1.1.0.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.google.com/inputtools">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gpsd-3.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://catb.org/gpsd/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License gpsd-3.4/COPYING:
-
- COPYRIGHTS
-
-Compilation copyright is held by the GPSD project. All rights reserved.
-
-GPSD project copyrights are assigned to the project lead, currently
-Eric S. Raymond. Other portions of the GPSD code are Copyright (c)
-1997, 1998, 1999, 2000, 2001, 2002 by Remco Treffkorn, and others
-Copyright (c) 2005 by Eric S. Raymond. For other copyrights, see
-individual files.
-
- BSD LICENSE
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:&lt;P&gt;
-
-Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.&lt;P&gt;
-
-Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.&lt;P&gt;
-
-Neither name of the GPSD project nor the names of its contributors
-may be used to endorse or promote products derived from this software
-without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">grep-2.14</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/grep/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gsm-1.0.13</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://packages.qa.debian.org/libg/libgsm.html">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License gsm:
-
-Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann,
-Technische Universitaet Berlin
-
-Any use of this software is permitted provided that this notice is not
-removed and that neither the authors nor the Technische Universitaet Berlin
-are deemed to have made any representations as to the suitability of this
-software for any purpose nor are held responsible for any defects of
-this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
-
-As a matter of courtesy, the authors request to be informed about uses
-this software has found, about bugs in this software, and about any
-improvements that may be of general interest.
-
-Berlin, 28.11.1994
-Jutta Degener
-Carsten Bormann
-
- oOo
-
-Since the original terms of 15 years ago maybe do not make our
-intentions completely clear given today's refined usage of the legal
-terms, we append this additional permission:
-
- Permission to use, copy, modify, and distribute this software
- for any purpose with or without fee is hereby granted,
- provided that this notice is not removed and that neither
- the authors nor the Technische Universitaet Berlin are
- deemed to have made any representations as to the suitability
- of this software for any purpose nor are held responsible
- for any defects of this software. THERE IS ABSOLUTELY NO
- WARRANTY FOR THIS SOFTWARE.
-
-Berkeley/Bremen, 05.04.2009
-Jutta Degener
-Carsten Bormann
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gtalk-62219080</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.google.com">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gtest-1.6.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/googletest/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License gtest-1.6.0/COPYING:
-
-Copyright 2008, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gtk+-2.20.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gtk.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gtk-doc-am-1.18</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gtk.org/gtk-doc/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License FDL-1.1:
-
- GNU Free Documentation License
- Version 1.1, March 2000
-
- Copyright (C) 2000 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-0. PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-written document "free" in the sense of freedom: to assure everyone
-the effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or noncommercially. Secondarily,
-this License preserves for the author and publisher a way to get
-credit for their work, while not being considered responsible for
-modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-1. APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work that contains a
-notice placed by the copyright holder saying it can be distributed
-under the terms of this License. The "Document", below, refers to any
-such manual or work. Any member of the public is a licensee, and is
-addressed as "you".
-
-A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (For example, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The "Invariant Sections" are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.
-
-The "Cover Texts" are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.
-
-A "Transparent" copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, whose contents can be viewed and edited directly and
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup has been designed to thwart or discourage
-subsequent modification by readers is not Transparent. A copy that is
-not "Transparent" is called "Opaque".
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML designed for human modification. Opaque formats include
-PostScript, PDF, proprietary formats that can be read and edited only
-by proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML produced by some word processors for output
-purposes only.
-
-The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-
-2. VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-3. COPYING IN QUANTITY
-
-If you publish printed copies of the Document numbering more than 100,
-and the Document's license notice requires Cover Texts, you must enclose
-the copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a publicly-accessible computer-network location containing a complete
-Transparent copy of the Document, free of added material, which the
-general network-using public has access to download anonymously at no
-charge using public-standard network protocols. If you use the latter
-option, you must take reasonably prudent steps, when you begin
-distribution of Opaque copies in quantity, to ensure that this
-Transparent copy will remain thus accessible at the stated location
-until at least one year after the last time you distribute an Opaque
-copy (directly or through your agents or retailers) of that edition to
-the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-4. MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-A. Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.
-B. List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has less than five).
-C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-D. Preserve all the copyright notices of the Document.
-E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-F. Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.
-G. Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.
-H. Include an unaltered copy of this License.
-I. Preserve the section entitled "History", and its title, and add to
- it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section entitled "History" in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.
-J. Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the "History" section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.
-K. In any section entitled "Acknowledgements" or "Dedications",
- preserve the section's title, and preserve in the section all the
- substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
-L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
-M. Delete any section entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-N. Do not retitle any existing section as "Endorsements"
- or to conflict in title with any Invariant Section.
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-5. COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections entitled "History"
-in the various original documents, forming one section entitled
-"History"; likewise combine any sections entitled "Acknowledgements",
-and any sections entitled "Dedications". You must delete all sections
-entitled "Endorsements."
-
-
-6. COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-7. AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, does not as a whole count as a Modified Version
-of the Document, provided no compilation copyright is claimed for the
-compilation. Such a compilation is called an "aggregate", and this
-License does not apply to the other self-contained works thus compiled
-with the Document, on account of their being thus compiled, if they
-are not themselves derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one quarter
-of the entire aggregate, the Document's Cover Texts may be placed on
-covers that surround only the Document within the aggregate.
-Otherwise they must appear on covers around the whole aggregate.
-
-
-8. TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License provided that you also include the
-original English version of this License. In case of a disagreement
-between the translation and the original English version of this
-License, the original English version will prevail.
-
-
-9. TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-10. FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns. See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
- Copyright (c) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
- or any later version published by the Free Software Foundation;
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-
-If you have no Invariant Sections, write "with no Invariant Sections"
-instead of saying which ones are invariant. If you have no
-Front-Cover Texts, write "no Front-Cover Texts" instead of
-"Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">gzip-1.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/gzip/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">harfbuzz-0.9.27</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.freedesktop.org/wiki/Software/HarfBuzz">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License harfbuzz-0.9.27/COPYING:
-
-HarfBuzz is licensed under the so-called "Old MIT" license. Details follow.
-For parts of HarfBuzz that are licensed under different licenses see individual
-files names COPYING in subdirectories where applicable.
-
-Copyright © 2010,2011,2012 Google, Inc.
-Copyright © 2012 Mozilla Foundation
-Copyright © 2011 Codethink Limited
-Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies)
-Copyright © 2009 Keith Stribley
-Copyright © 2009 Martin Hosken and SIL International
-Copyright © 2007 Chris Wilson
-Copyright © 2006 Behdad Esfahbod
-Copyright © 2005 David Turner
-Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc.
-Copyright © 1998-2004 David Turner and Werner Lemberg
-
-For full copyright notices consult the individual files in the package.
-
-
-Permission is hereby granted, without written agreement and without
-license or royalty fees, to use, copy, modify, and distribute this
-software and its documentation for any purpose, provided that the
-above copyright notice and the following two paragraphs appear in
-all copies of this software.
-
-IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
-DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
-IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
-THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
-ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
-PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/src/hb-ucdn/COPYING:
-
-The contents of this directory are licensed under the following terms:
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/LICENSE:
-
-CC BY-NC-SA 3.0
-http://www.crulp.org/software/license/CreativeCommons.html
-https://creativecommons.org/licenses/by-nc-sa/3.0/
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-assamese/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-bengali/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-devanagari/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-gujarati/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-gurmukhi/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-kannada/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-malayalam/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-oriya/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-sinhala/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-tamil/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License harfbuzz-0.9.27/test/shaping/texts/in-tree/shaper-indic/indic/script-telugu/utrrs/LICENSE:
-
-Copyright (c) 2010 Red Hat Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Gentoo Package Stock License icu:
-
-ICU License - ICU 1.8.1 and later
-
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright (c) 1995-2003 International Business Machines Corporation and others
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
-
---------------------------------------------------------------------------------
-All trademarks and registered trademarks mentioned herein are the property of their respective owners.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#ISC'>Gentoo Package Stock License ISC</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">hdctools-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">hdparm-9.39</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sourceforge.net/projects/hdparm/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License hdparm-9.39/LICENSE.TXT:
-
-BSD-Style Open Source License:
-
-You may freely use, modify, and redistribute the hdparm program,
-as either binary or source, or both.
-
-The only condition is that my name and copyright notice
-remain in the source code as-is.
-
-Mark Lord (mlord@pobox.com)
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License hdparm-9.39/debian/copyright:
-
-This package was debianized by Christopher L Cheney &lt;ccheney@debian.org&gt; on
-Wed, 21 Nov 2001 15:51:14 -0600.
-
-It was downloaded from http://www.ibiblio.org/pub/Linux/system/hardware
-
-Upstream Author: Mark S. Lord &lt;mlord@pobox.com&gt;
-
-Copyright:
-
-/* hdparm.c - Command line interface to get/set hard disk parameters */
-/* - by Mark Lord © 1994-2008 -- freely distributable */
-
-You are free to distribute this software under the terms of the BSD License.
-On Debian systems, the complete text of the BSD License can be found in
-/usr/share/common-licenses/BSD
-
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">hostapd-2.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://hostap.epitest.fi">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">htmltidy-20090325</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://tidy.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">htpdate-1.0.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.clevervest.com/htp/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">hwids-20130915.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://github.com/gentoo/hwids">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#public-domain'>Gentoo Package Stock License public-domain</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">i2c-tools-3.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.lm-sensors.org/wiki/I2CTools">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">i7z-0.27</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/i7z/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">imagemagick-6.7.8.7</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.imagemagick.org/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License imagemagick:
-
-Before we get to the text of the license, lets just review what the license says in simple terms:
-
-It allows you to:
-
- * freely download and use ImageMagick software, in whole or in part, for personal, company internal, or commercial purposes;
- * use ImageMagick software in packages or distributions that you create;
- * link against a library under a different license;
- * link code under a different license against a library under this license;
- * merge code into a work under a different license;
- * extend patent grants to any code using code under this license;
- * and extend patent protection.
-
-It forbids you to:
-
- * redistribute any piece of ImageMagick-originated software without proper attribution;
- * use any marks owned by ImageMagick Studio LLC in any way that might state or imply that ImageMagick Studio LLC endorses your distribution;
- * use any marks owned by ImageMagick Studio LLC in any way that might state or imply that you created the ImageMagick software in question.
-
-It requires you to:
-
- * include a copy of the license in any redistribution you may make that includes ImageMagick software;
- * provide clear attribution to ImageMagick Studio LLC for any distributions that include ImageMagick software.
-
-It does not require you to:
-
- * include the source of the ImageMagick software itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it;
- * submit changes that you make to the software back to the ImageMagick Studio LLC (though such feedback is encouraged).
-
-A few other clarifications include:
-
- * ImageMagick is freely available without charge;
- * you may include ImageMagick on a DVD as long as you comply with the terms of the license;
- * you can give modified code away for free or sell it under the terms of the ImageMagick license or distribute the result under a different license, but you need to acknowledge the use of the ImageMagick software;
- * the license is compatible with the GPL V3.
- * when exporting the ImageMagick software, review its export classification.
-
-Terms and Conditions for Use, Reproduction, and Distribution
-
-The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:
-
-Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
-
-1. Definitions.
-
-License shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-Licensor shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-Legal Entity shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, control means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-You (or Your) shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-Source form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-Object form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-Work shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-Derivative Works shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-Contribution shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as Not a Contribution.
-
-Contributor shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
- * You must give any other recipients of the Work or Derivative Works a copy of this License; and
- * You must cause any modified files to carry prominent notices stating that You changed the files; and
- * You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
- * If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
-You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-How to Apply the License to your Work
-
-To apply the ImageMagick License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information (don't include the brackets). The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the ImageMagick License (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.imagemagick.org/script/license.php
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- License for the specific language governing permissions and limitations
- under the License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">iniparser-3.0b</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://ndevilla.free.fr/iniparser/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License iniparser3.0b/LICENSE:
-
-Copyright (c) 2000-2007 by Nicolas Devillard.
-MIT License
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">input-tools-4.3.2.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.google.com/inputtools">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">inputcontrol-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">inputproto-2.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License inputproto-2.3/COPYING:
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Hewlett-Packard not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-Copyright © 2009 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">intel-gpu-tools-1.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License intel-gpu-tools-1.3/COPYING:
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Copyright 2003,2006 Tungsten Graphics, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Copyright © 2006-2011 Intel Corporation
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-
-Copyright © 2010 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Copyright © 2011 Daniel Vetter
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">intltool-0.50.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://launchpad.net/intltool/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">iotools-1.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/iotools/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">iperf-2.0.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://iperf.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License iperf-2.0.4/COPYING:
-
-Copyright (c) 1999-2007, The Board of Trustees of the University of Illinois
-All Rights Reserved.
-
-Iperf performance test
-Mark Gates
-Ajay Tirumala
-Jim Ferguson
-Jon Dugan
-Feng Qin
-Kevin Gibbs
-John Estabrook
-National Laboratory for Applied Network Research
-National Center for Supercomputing Applications
-University of Illinois at Urbana-Champaign
-http://www.ncsa.uiuc.edu
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software (Iperf) and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-Redistributions of source code must retain the above copyright notice, this
-list of conditions and the following disclaimers.
-
-Redistributions in binary form must reproduce the above copyright notice, this
-list of conditions and the following disclaimers in the documentation and/or
-other materials provided with the distribution.
-
-Neither the names of the University of Illinois, NCSA, nor the names of its
-contributors may be used to endorse or promote products derived from this
-Software without specific prior written permission. THE SOFTWARE IS PROVIDED
-"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTIBUTORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#as-is'>Gentoo Package Stock License as-is</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">iproute2-3.8.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">iptables-1.4.16.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.iptables.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">iputils-20121221</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.linuxfoundation.org/collaborate/workgroups/networking/iputils">homepage</a></span>
-<div class="licence">
-<pre>Copyright Attribution License chromiumos-overlay/licenses/copyright-attribution/net-misc/iputils:
-
-Copyright (c) 1989 The Regents of the University of California.
-All rights reserved.
-
-This code is derived from software contributed to Berkeley by
-Mike Muuss.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
-4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">iw-3.10</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://wireless.kernel.org/en/users/Documentation/iw">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#ISC'>Gentoo Package Stock License ISC</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ja-motoyafonts-1.0.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.motoya.co.jp">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">joystick-1.4.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sourceforge.net/projects/linuxconsole/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">jsoncpp-0.6.0_rc2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://jsoncpp.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#public-domain'>Gentoo Package Stock License public-domain</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">jsonrpclib-0_pre20110820</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://github.com/joshmarshall/jsonrpclib">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">kbd-1.15.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://freshmeat.net/projects/kbd/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">kbproto-1.0.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License kbproto-1.0.5/COPYING:
-
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">keyutils-1.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.kernel.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">kmod-17</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://git.kernel.org/?p=utils/kernel/kmod/kmod.git">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ko-nanumfonts-3.10.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://hangeul.naver.com/index.nhn">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License ko-nanumfonts-3.10.0/LICENSE:
-
-Copyright (c) 2010, NHN Corporation (http://www.nhncorp.com),
-with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver
-NanumGothic, NanumMyeongjo, Naver NanumMyeongjo, NanumBrush, Naver
-NanumBrush, NanumPen, Naver NanumPen
-
-This Font Software is licensed under the SIL Open Font License,
-Version 1.1.
-
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-
-PREAMBLE The goals of the Open Font License (OFL) are to stimulate
-worldwide development of collaborative font projects, to support the font
-creation efforts of academic and linguistic communities, and to provide
-a free and open framework in which fonts may be shared and improved in
-partnership with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves.
-The fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply to
-any document created using the fonts or their derivatives.
-
-
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such.
-This may include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components
-as distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting ? in part or in whole ?
-any of the components of the Original Version, by changing formats or
-by porting the Font Software to a new environment.
-
-"Author" refers to any designer, engineer, programmer, technical writer
-or other person who contributed to the Font Software.
-
-
-PERMISSION &amp; CONDITIONS
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,in
- Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
- redistributed and/or sold with any software, provided that each copy
- contains the above copyright notice and this license. These can be
- included either as stand-alone text files, human-readable headers or
- in the appropriate machine-readable metadata fields within text or
- binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
- Name(s) unless explicit written permission is granted by the
- corresponding Copyright Holder. This restriction only applies to the
- primary font name as presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
- Software shall not be used to promote, endorse or advertise any
- Modified Version, except to acknowledge the contribution(s) of the
- Copyright Holder(s) and the Author(s) or with their explicit written
- permission.
-
-5) The Font Software, modified or unmodified, in part or in whole, must
- be distributed entirely under this license, and must not be distributed
- under any other license. The requirement for fonts to remain under
- this license does not apply to any document created using the Font
- Software.
-
-
-
-TERMINATION
-This license becomes null and void if any of the above conditions are not met.
-
-
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
-DEALINGS IN THE FONT SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#OFL-1.1'>Gentoo Package Stock License OFL-1.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ktop-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://chromium.googlesource.com/chromiumos/third_party/ktop">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ladspa-sdk-1.13</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.ladspa.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">laptop-mode-tools-1.59</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.samwel.tk/laptop_mode/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">less-457</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.greenwoodsoftware.com/less/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">leveldb-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/leveldb/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License leveldb-0.0.1/LICENSE:
-
-Copyright (c) 2011 The LevelDB Authors. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libaio-0.3.109</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.kernel.org/pub/linux/kernel/people/andrea/libaio/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libatomic_ops-7.2d</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.hpl.hp.com/research/linux/atomic_ops/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License gc-7.2/libatomic_ops/COPYING:
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License gc-7.2/libatomic_ops/doc/COPYING:
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License gc-7.2/libatomic_ops/doc/LICENSING.txt:
-
-Our intent is to make it easy to use libatomic_ops, in
-both free and proprietary software. Hence most code that we expect to be
-linked into a client application is covered by an MIT-style license.
-
-A few library routines are covered by the GNU General Public License.
-These are put into a separate library, libatomic_ops_gpl.a .
-
-The low-level part of the library is mostly covered by the following
-license:
-
-----------------------------------------
-
-Copyright (c) ...
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
---------------------------------
-
-A few files in the sysdeps directory were inherited in part from the
-Boehm-Demers-Weiser conservative garbage collector, and are covered by
-its license, which is similar in spirit:
-
---------------------------------
-
-Copyright (c) ...
-
-THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
-Permission is hereby granted to use or copy this program
-for any purpose, provided the above notices are retained on all copies.
-Permission to modify the code and to distribute modified code is granted,
-provided the above notices are retained, and a notice that the code was
-modified is included with the above copyright notice.
-
-----------------------------------
-
-A few files are covered by the GNU General Public License. (See file
-"COPYING".) This applies only to test code, sample applications,
-and the libatomic_ops_gpl portion of the library.
-Thus libatomic_ops_gpl should generally not be linked into proprietary code.
-(This distinction was motivated by patent considerations.)
-
-It is possible that the license of the GPL pieces may be changed for
-future versions to make them more consistent with the rest of the package.
-If you submit patches, and have strong preferences about licensing, please
-express them.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Gentoo Package Stock License boehm-gc:
-
-&lt;copyright notice&gt;
-
-THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
-Permission is hereby granted to use or copy this program
-for any purpose, provided the above notices are retained on all copies.
-Permission to modify the code and to distribute modified code is granted,
-provided the above notices are retained, and a notice that the code was
-modified is included with the above copyright notice.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#GPL-2+'>Gentoo Package Stock License GPL-2+</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libc-bench-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.etalabs.net/libc-bench.html">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libc-bench-0.0.1/COPYRIGHT:
-
-libc-bench, a performance and memory usage benchmark for comparing
-libc implementations
-
-Copyright © 2011 Rich Felker
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libcap-2.17</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.friedhoff.org/posixfilecaps.html">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libcap-2.17/License:
-
-Unless otherwise *explicitly* stated, the following text describes the
-licensed conditions under which the contents of this libcap release
-may be used and distributed:
-
--------------------------------------------------------------------------
-Redistribution and use in source and binary forms of libcap, with
-or without modification, are permitted provided that the following
-conditions are met:
-
-1. Redistributions of source code must retain any existing copyright
- notice, and this entire permission notice in its entirety,
- including the disclaimer of warranties.
-
-2. Redistributions in binary form must reproduce all prior and current
- copyright notices, this list of conditions, and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
-3. The name of any author may not be used to endorse or promote
- products derived from this software without their specific prior
- written permission.
-
-ALTERNATIVELY, this product may be distributed under the terms of the
-GNU General Public License, in which case the provisions of the GNU
-GPL are required INSTEAD OF the above restrictions. (This clause is
-necessary due to a potential conflict between the GNU GPL and the
-restrictions contained in a BSD-style copyright.)
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
--------------------------------------------------------------------------
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libcap-2.17/pam_cap/License:
-
-Unless otherwise *explicitly* stated the following text describes the
-licensed conditions under which the contents of this module release
-may be distributed:
-
--------------------------------------------------------------------------
-Redistribution and use in source and binary forms of this module, with
-or without modification, are permitted provided that the following
-conditions are met:
-
-1. Redistributions of source code must retain any existing copyright
- notice, and this entire permission notice in its entirety,
- including the disclaimer of warranties.
-
-2. Redistributions in binary form must reproduce all prior and current
- copyright notices, this list of conditions, and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
-3. The name of any author may not be used to endorse or promote
- products derived from this software without their specific prior
- written permission.
-
-ALTERNATIVELY, this product may be distributed under the terms of the
-GNU Library General Public License, in which case the provisions of
-the GNU LGPL are required INSTEAD OF the above restrictions. (This
-clause is necessary due to a potential conflict between the GNU LGPL
-and the restrictions contained in a BSD-style copyright.)
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
--------------------------------------------------------------------------
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libcap-ng-0.6.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://people.redhat.com/sgrubb/libcap-ng/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libchrome-271506</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://dev.chromium.org/chromium-os/packages/libchrome">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libchrome_crypto-271506</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://dev.chromium.org/chromium-os/packages/libchrome">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libchromeos-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://dev.chromium.org/chromium-os/platform">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libchromeos-use-flags-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libdaemon-0.14</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://0pointer.de/lennart/projects/libdaemon/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libdrm-2.4.54</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://dri.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#X'>Custom License X</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libdrm-tests-2.4.54</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://dri.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#X'>Custom License X</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libevdev-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libevent-2.0.21</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://libevent.org/">homepage</a></span>
-<div class="licence">
-<pre>Copyright Attribution License chromiumos-overlay/licenses/copyright-attribution/dev-libs/libevent:
-
-Copyright (c) 2002, 2003 Niels Provos &lt;provos@citi.umich.edu&gt;
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libffi-3.0.11</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sourceware.org/libffi/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libffi-3.0.11/LICENSE:
-
-libffi - Copyright (c) 1996-2012 Anthony Green, Red Hat, Inc and others.
-See source files for details.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-``Software''), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libfontenc-1.1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libfontenc-1.1.0/COPYING:
-
-Copyright (c) 1998-2001 by Juliusz Chroboczek
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libftdi-1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.intra2net.com/en/developer/libftdi/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libgcrypt-1.4.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnupg.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libglade-2.6.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnome.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libgpg-error-1.10</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnupg.org/related_software/libgpg-error">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libICE-1.0.7</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libICE-1.0.7/COPYING:
-
-Copyright 1993, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Author: Ralph Mor, X Consortium
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libjpeg-turbo-1.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://libjpeg-turbo.virtualgl.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License debian/copyright:
-
-This is Debian's prepackaged version of the `jpeg library' by the Independent
-JPEG Group.
-
-This package was created by Mark Mickan &lt;mmickan@debian.org&gt; from sources
-which can be found at ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
-
-It is partly based on the libjpeg6a package originally put together by
-Andy Guy &lt;awpguy@acs.ucalgary.ca&gt; and later maintained by Mark Mickan.
-
-Current Debian maintainer is Bill Allombert &lt;ballombe@debian.org&gt;.
-
-LEGAL ISSUES [ from README supplied with source - MM ]
-============
-
-In plain English:
-
-1. We don't promise that this software works. (But if you find any bugs,
- please let us know!)
-2. You can use this software for whatever you want. You don't have to pay us.
-3. You may not pretend that you wrote this software. If you use it in a
- program, you must acknowledge somewhere in your documentation that
- you've used the IJG code.
-
-In legalese:
-
-The authors make NO WARRANTY or representation, either express or implied,
-with respect to this software, its quality, accuracy, merchantability, or
-fitness for a particular purpose. This software is provided "AS IS", and you,
-its user, assume the entire risk as to its quality and accuracy.
-
-This software is copyright (C) 1991-2010, Thomas G. Lane, Guido Vollbeding.
-All Rights Reserved except as specified below.
-
-Permission is hereby granted to use, copy, modify, and distribute this
-software (or portions thereof) for any purpose, without fee, subject to these
-conditions:
-(1) If any part of the source code for this software is distributed, then this
-README file must be included, with this copyright and no-warranty notice
-unaltered; and any additions, deletions, or changes to the original files
-must be clearly indicated in accompanying documentation.
-(2) If only executable code is distributed, then the accompanying
-documentation must state that "this software is based in part on the work of
-the Independent JPEG Group".
-(3) Permission for use of this software is granted only if the user accepts
-full responsibility for any undesirable consequences; the authors accept
-NO LIABILITY for damages of any kind.
-
-These conditions apply to any software derived from or based on the IJG code,
-not just to the unmodified library. If you use our work, you ought to
-acknowledge us.
-
-Permission is NOT granted for the use of any IJG author's name or company name
-in advertising or publicity relating to this software or products derived from
-it. This software may be referred to only as "the Independent JPEG Group's
-software".
-
-We specifically permit and encourage the use of this software as the basis of
-commercial products, provided that all warranty or liability claims are
-assumed by the product vendor.
-
-
-ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
-sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
-ansi2knr.c is NOT covered by the above copyright and conditions, but instead
-by the usual distribution terms of the Free Software Foundation; principally,
-that you must include source code if you redistribute it. (See the file
-ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
-of any program generated from the IJG code, this does not limit you more than
-the foregoing paragraphs do.
-
-The Unix configuration script "configure" was produced with GNU Autoconf.
-It is copyright by the Free Software Foundation but is freely distributable.
-The same holds for its supporting scripts (config.guess, config.sub,
-ltmain.sh). Another support script, install-sh, is copyright by X Consortium
-but is also freely distributable.
-
-The IJG distribution formerly included code to read and write GIF files.
-To avoid entanglement with the Unisys LZW patent, GIF reading support has
-been removed altogether, and the GIF writer has been simplified to produce
-"uncompressed GIFs". This technique does not use the LZW algorithm; the
-resulting GIF files are larger than usual, but are readable by all standard
-GIF decoders.
-
-We are required to state that
- "The Graphics Interchange Format(c) is the Copyright property of
- CompuServe Incorporated. GIF(sm) is a Service Mark property of
- CompuServe Incorporated."
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libjpeg-turbo-1.2.0/release/License.rtf:
-
-{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
-{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}}
-{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}
-\margl1440\margr1440\vieww9820\viewh8480\viewkind0
-\deftab720
-\pard\pardeftab720
-
-\f0\fs24 \cf0 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\
-\
-\pard\tx220\tx720\pardeftab720\li720\fi-720
-\ls1\ilvl0\cf0 {\listtext \'95 }Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\
-{\listtext \'95 }Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\
-{\listtext \'95 }Neither the name of the libjpeg-turbo Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\
-\pard\pardeftab720\qc
-\cf0 \
-\pard\pardeftab720
-\cf0 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\
-}
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libjpeg-turbo-1.2.0/release/copyright:
-
-libjpeg-turbo is released under a BSD-style license (see README and README-turbo.txt)
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libmbim-1.9.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://cgit.freedesktop.org/libmbim/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libmtp-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://libmtp.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libnetfilter_queue-1.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.netfilter.org/projects/libnetfilter_queue/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libnfnetlink-1.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.netfilter.org/projects/libnfnetlink/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libnih-1.0.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://launchpad.net/libnih">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libnl-1.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://people.suug.ch/~tgr/libnl/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libnl-3.2.24</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.infradead.org/~tgr/libnl/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libp11-0.2.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.opensc-project.org/libp11/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libpcap-1.5.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.tcpdump.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libpcap-1.5.3/LICENSE:
-
-License: BSD
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- 3. The names of the authors may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libpciaccess-0.12.902</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libpciaccess-0.12.902/COPYING:
-
-(C) Copyright IBM Corporation 2006, 2007
-(C) Copyright Eric Anholt 2006
-Copyright (c) 2007, 2008, 2009, 2011, Oracle and/or its affiliates.
-Copyright 2009 Red Hat, Inc.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation on
-the rights to use, copy, modify, merge, publish, distribute, sub license,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-
-------------------------------------------------------------------------------
-
-Copyright (c) 2008 Juan Romero Pardines
-Copyright (c) 2008 Mark Kettenis
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-------------------------------------------------------------------------------
-
-Copyright (C) 2000 The XFree86 Project, Inc. All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from the
-XFree86 Project.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libpcre-8.30</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.pcre.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License pcre-8.30/COPYING:
-
-PCRE LICENCE
-
-Please see the file LICENCE in the PCRE distribution for licensing details.
-
-End
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License pcre-8.30/LICENCE:
-
-PCRE LICENCE
-------------
-
-PCRE is a library of functions to support regular expressions whose syntax
-and semantics are as close as possible to those of the Perl 5 language.
-
-Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
-specified below. The documentation for PCRE, supplied in the "doc"
-directory, is distributed under the same terms as the software itself.
-
-The basic library functions are written in C and are freestanding. Also
-included in the distribution is a set of C++ wrapper functions, and a
-just-in-time compiler that can be used to optimize pattern matching. These
-are both optional features that can be omitted when the library is built.
-
-
-THE BASIC LIBRARY FUNCTIONS
----------------------------
-
-Written by: Philip Hazel
-Email local part: ph10
-Email domain: cam.ac.uk
-
-University of Cambridge Computing Service,
-Cambridge, England.
-
-Copyright (c) 1997-2012 University of Cambridge
-All rights reserved.
-
-
-PCRE JUST-IN-TIME COMPILATION SUPPORT
--------------------------------------
-
-Written by: Zoltan Herczeg
-Email local part: hzmester
-Emain domain: freemail.hu
-
-Copyright(c) 2010-2012 Zoltan Herczeg
-All rights reserved.
-
-
-STACK-LESS JUST-IN-TIME COMPILER
---------------------------------
-
-Written by: Zoltan Herczeg
-Email local part: hzmester
-Emain domain: freemail.hu
-
-Copyright(c) 2009-2012 Zoltan Herczeg
-All rights reserved.
-
-
-THE C++ WRAPPER FUNCTIONS
--------------------------
-
-Contributed by: Google Inc.
-
-Copyright (c) 2007-2012, Google Inc.
-All rights reserved.
-
-
-THE "BSD" LICENCE
------------------
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the name of the University of Cambridge nor the name of Google
- Inc. nor the names of their contributors may be used to endorse or
- promote products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-End
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License pcre-8.30/cmake/COPYING-CMAKE-SCRIPTS:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libpng-1.2.49</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.libpng.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libpng-1.2.49/LICENSE:
-
-
-This copy of the libpng notices is provided for your convenience. In case of
-any discrepancy between this copy and the notices in the file png.h that is
-included in the libpng distribution, the latter shall prevail.
-
-COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
-
-If you modify libpng you may insert additional notices immediately following
-this sentence.
-
-This code is released under the libpng license.
-
-libpng versions 1.2.6, August 15, 2004, through 1.2.49, March 29, 2012, are
-Copyright (c) 2004, 2006-2009 Glenn Randers-Pehrson, and are
-distributed according to the same disclaimer and license as libpng-1.2.5
-with the following individual added to the list of Contributing Authors
-
- Cosmin Truta
-
-libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are
-Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
-distributed according to the same disclaimer and license as libpng-1.0.6
-with the following individuals added to the list of Contributing Authors
-
- Simon-Pierre Cadieux
- Eric S. Raymond
- Gilles Vollant
-
-and with the following additions to the disclaimer:
-
- There is no warranty against interference with your enjoyment of the
- library or against infringement. There is no warranty that our
- efforts or the library will fulfill any of your particular purposes
- or needs. This library is provided with all faults, and the entire
- risk of satisfactory quality, performance, accuracy, and effort is with
- the user.
-
-libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
-Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are
-distributed according to the same disclaimer and license as libpng-0.96,
-with the following individuals added to the list of Contributing Authors:
-
- Tom Lane
- Glenn Randers-Pehrson
- Willem van Schaik
-
-libpng versions 0.89, June 1996, through 0.96, May 1997, are
-Copyright (c) 1996, 1997 Andreas Dilger
-Distributed according to the same disclaimer and license as libpng-0.88,
-with the following individuals added to the list of Contributing Authors:
-
- John Bowler
- Kevin Bracey
- Sam Bushell
- Magnus Holmgren
- Greg Roelofs
- Tom Tanner
-
-libpng versions 0.5, May 1995, through 0.88, January 1996, are
-Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
-
-For the purposes of this copyright and license, "Contributing Authors"
-is defined as the following set of individuals:
-
- Andreas Dilger
- Dave Martindale
- Guy Eric Schalnat
- Paul Schmidt
- Tim Wegner
-
-The PNG Reference Library is supplied "AS IS". The Contributing Authors
-and Group 42, Inc. disclaim all warranties, expressed or implied,
-including, without limitation, the warranties of merchantability and of
-fitness for any purpose. The Contributing Authors and Group 42, Inc.
-assume no liability for direct, indirect, incidental, special, exemplary,
-or consequential damages, which may result from the use of the PNG
-Reference Library, even if advised of the possibility of such damage.
-
-Permission is hereby granted to use, copy, modify, and distribute this
-source code, or portions hereof, for any purpose, without fee, subject
-to the following restrictions:
-
-1. The origin of this source code must not be misrepresented.
-
-2. Altered versions must be plainly marked as such and must not
- be misrepresented as being the original source.
-
-3. This Copyright notice may not be removed or altered from any
- source or altered source distribution.
-
-The Contributing Authors and Group 42, Inc. specifically permit, without
-fee, and encourage the use of this source code as a component to
-supporting the PNG file format in commercial products. If you use this
-source code in a product, acknowledgment is not required but would be
-appreciated.
-
-
-A "png_get_copyright" function is available, for convenient use in "about"
-boxes and the like:
-
- printf("%s",png_get_copyright(NULL));
-
-Also, the PNG logo (in PNG format, of course) is supplied in the
-files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
-
-Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a
-certification mark of the Open Source Initiative.
-
-Glenn Randers-Pehrson
-glennrp at users.sourceforge.net
-March 29, 2012
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libpng-1.2.49/contrib/gregbook/COPYING:
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libpng-1.2.49/contrib/gregbook/LICENSE:
-
- ---------------------------------------------------------------------------
-
- Copyright (c) 1998-2008 Greg Roelofs. All rights reserved.
-
- This software is provided "as is," without warranty of any kind,
- express or implied. In no event shall the author or contributors
- be held liable for any damages arising in any way from the use of
- this software.
-
- The contents of this file are DUAL-LICENSED. You may modify and/or
- redistribute this software according to the terms of one of the
- following two licenses (at your option):
-
-
- LICENSE 1 ("BSD-like with advertising clause"):
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute
- it freely, subject to the following restrictions:
-
- 1. Redistributions of source code must retain the above copyright
- notice, disclaimer, and this list of conditions.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, disclaimer, and this list of conditions in the documenta-
- tion and/or other materials provided with the distribution.
- 3. All advertising materials mentioning features or use of this
- software must display the following acknowledgment:
-
- This product includes software developed by Greg Roelofs
- and contributors for the book, "PNG: The Definitive Guide,"
- published by O'Reilly and Associates.
-
-
- LICENSE 2 (GNU GPL v2 or later):
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- ---------------------------------------------------------------------------
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#as-is'>Gentoo Package Stock License as-is</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libpthread-stubs-0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libpthread-stubs-0.1/COPYING:
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libscrypt-1.1.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.tarsnap.com/scrypt.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libSM-1.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libSM-1.2.0/COPYING:
-
-Copyright 2002 Sun Microsystems, Inc. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Copyright 1993, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libtool-2.4.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/libtool/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libusb-1.0.18</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://libusb.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libusb-compat-0.1.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://libusb.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libv4l-0.8.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://git.linuxtv.org/v4l-utils.git">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libva-1.3.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.freedesktop.org/wiki/Software/vaapi">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libva-1.3.1/COPYING:
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sub license, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice (including the
- next paragraph) shall be included in all copies or substantial portions
- of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
- ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libva-1.3.1/debian.upstream/copyright:
-
-This package was debianized by Waldo Bastian &lt;waldo.bastian@intel.com&gt; on
-Mon, 18 Jun 2007 21:35:31 -0700.
-
-It was downloaded from &lt;url://example.com&gt;
-
-Upstream Author(s):
-
- Waldo Bastian &lt;waldo.bastian@intel.com&gt;
- Jonathan Bian &lt;jonathan.bian@intel.com&gt;
-
-Copyright:
-
- (C) Copyright IBM Corporation 2004
- Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
- Copyright 2000 VA Linux Systems, Inc.
- Copyright 2007 Intel Corportation
-
-License:
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sub license, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice (including the
- next paragraph) shall be included in all copies or substantial portions
- of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
- ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-The Debian packaging is (C) 2007, Intel Corporation and
-is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
-
-# Please also look if there are files or directories which have a
-# different copyright/license attached and list them here.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libva-intel-driver-1.3.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.freedesktop.org/wiki/Software/vaapi">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libva-intel-driver-1.3.1/COPYING:
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sub license, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice (including the
- next paragraph) shall be included in all copies or substantial portions
- of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
- ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libva-intel-driver-1.3.1/debian.upstream/copyright:
-
-This package is maintained by:
-Gwenole Beauchesne &lt;gwenole.beauchesne@intel.com&gt;
-
-
-License:
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sub license, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice (including the
- next paragraph) shall be included in all copies or substantial portions
- of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
- ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libX11-1.6.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libX11-1.6.0/COPYING:
-
-The following is the 'standard copyright' agreed upon by most contributors,
-and is currently the canonical license preferred by the X.Org Foundation.
-This is a slight variant of the common MIT license form published by the
-Open Source Initiative at http://www.opensource.org/licenses/mit-license.php
-
-Copyright holders of new code should use this license statement where
-possible, and insert their name to this list. Please sort by surname
-for people, and by the full name for other entities (e.g. Juliusz
-Chroboczek sorts before Intel Corporation sorts before Daniel Stone).
-
-See each individual source file or directory for the license that applies
-to that file.
-
-Copyright (C) 2003-2006,2008 Jamey Sharp, Josh Triplett
-Copyright © 2009 Red Hat, Inc.
-Copyright 1990-1992,1999,2000,2004,2009,2010 Oracle and/or its affiliates.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
- ----------------------------------------------------------------------
-
-The following licenses are 'legacy' - usually MIT/X11 licenses with the name
-of the copyright holder(s) in the license statement:
-
-Copyright 1984-1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-X Window System is a trademark of The Open Group.
-
- ----------------------------------------
-
-Copyright 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
-Copyright 2000 The XFree86 Project, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from the X Consortium.
-
-Copyright 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
-Digital Equipment Corporation
-
-Portions Copyright 1990, 1991 by Tektronix, Inc.
-
-Permission to use, copy, modify and distribute this documentation for
-any purpose and without fee is hereby granted, provided that the above
-copyright notice appears in all copies and that both that copyright notice
-and this permission notice appear in all copies, and that the names of
-Digital and Tektronix not be used in in advertising or publicity pertaining
-to this documentation without specific, written prior permission.
-Digital and Tektronix makes no representations about the suitability
-of this documentation for any purpose.
-It is provided ``as is'' without express or implied warranty.
-
- ----------------------------------------
-
-Copyright (c) 1999-2000 Free Software Foundation, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-FREE SOFTWARE FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the Free Software Foundation
-shall not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization from the
-Free Software Foundation.
-
- ----------------------------------------
-
-Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- All Rights Reserved
-
-This file is a component of an X Window System-specific implementation
-of Xcms based on the TekColor Color Management System. TekColor is a
-trademark of Tektronix, Inc. The term "TekHVC" designates a particular
-color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
-foreign patents pending). Permission is hereby granted to use, copy,
-modify, sell, and otherwise distribute this software and its
-documentation for any purpose and without fee, provided that:
-
-1. This copyright, permission, and disclaimer notice is reproduced in
- all copies of this software and any modification thereof and in
- supporting documentation;
-2. Any color-handling application which displays TekHVC color
- cooordinates identifies these as TekHVC color coordinates in any
- interface that displays these coordinates and in any associated
- documentation;
-3. The term "TekHVC" is always used, and is only used, in association
- with the mathematical derivations of the TekHVC Color Space,
- including those provided in this file and any equivalent pathways and
- mathematical derivations, regardless of digital (e.g., floating point
- or integer) representation.
-
-Tektronix makes no representation about the suitability of this software
-for any purpose. It is provided "as is" and with all faults.
-
-TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
-INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-(c) Copyright 1995 FUJITSU LIMITED
-This is source code modified by FUJITSU LIMITED under the Joint
-Development Agreement for the CDE/Motif PST.
-
- ----------------------------------------
-
-Copyright 1992 by Oki Technosystems Laboratory, Inc.
-Copyright 1992 by Fuji Xerox Co., Ltd.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Oki Technosystems
-Laboratory and Fuji Xerox not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-Oki Technosystems Laboratory and Fuji Xerox make no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-OKI TECHNOSYSTEMS LABORATORY AND FUJI XEROX DISCLAIM ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OKI TECHNOSYSTEMS
-LABORATORY AND FUJI XEROX BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1990, 1991, 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-
-Copyright (c) 1995 David E. Wexelblat. All rights reserved
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL DAVID E. WEXELBLAT BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of David E. Wexelblat shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from David E. Wexelblat.
-
- ----------------------------------------
-
-Copyright 1990, 1991 by OMRON Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name OMRON not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. OMRON makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL OMRON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
-Digital Equipment Corporation
-
-Portions Copyright 1990, 1991 by Tektronix, Inc
-
-Rewritten for X.org by Chris Lee &lt;clee@freedesktop.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this documentation
-for any purpose and without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-Chris Lee makes no representations about the suitability for any purpose
-of the information in this document. It is provided \`\`as-is'' without
-express or implied warranty.
-
- ----------------------------------------
-
-Copyright 1993 by Digital Equipment Corporation, Maynard, Massachusetts,
-Copyright 1994 by FUJITSU LIMITED
-Copyright 1994 by Sony Corporation
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital, FUJITSU
-LIMITED and Sony Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-
-DIGITAL, FUJITSU LIMITED AND SONY CORPORATION DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL, FUJITSU LIMITED
-AND SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-
-Copyright 1991 by the Open Software Foundation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Open Software Foundation
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. Open Software
-Foundation makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-OPEN SOFTWARE FOUNDATION DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1990, 1991, 1992,1993, 1994 by FUJITSU LIMITED
-Copyright 1993, 1994 by Sony Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of FUJITSU LIMITED and Sony Corporation
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. FUJITSU LIMITED and
-Sony Corporation makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-FUJITSU LIMITED AND SONY CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL FUJITSU LIMITED OR SONY CORPORATION BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
-USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright (c) 1993, 1995 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1991, 1992, 1993, 1994 by FUJITSU LIMITED
-Copyright 1993 by Digital Equipment Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of FUJITSU LIMITED and
-Digital Equipment Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission. FUJITSU LIMITED and Digital Equipment Corporation
-makes no representations about the suitability of this software for
-any purpose. It is provided "as is" without express or implied
-warranty.
-
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1992, 1993 by FUJITSU LIMITED
-Copyright 1993 by Fujitsu Open Systems Solutions, Inc.
-Copyright 1994 by Sony Corporation
-
-Permission to use, copy, modify, distribute and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED,
-Fujitsu Open Systems Solutions, Inc. and Sony Corporation not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-FUJITSU LIMITED, Fujitsu Open Systems Solutions, Inc. and
-Sony Corporation make no representations about the suitability of
-this software for any purpose. It is provided "as is" without
-express or implied warranty.
-
-FUJITSU LIMITED, FUJITSU OPEN SYSTEMS SOLUTIONS, INC. AND SONY
-CORPORATION DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL FUJITSU OPEN SYSTEMS SOLUTIONS, INC., FUJITSU LIMITED
-AND SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1987, 1988, 1990, 1993 by Digital Equipment Corporation,
-Maynard, Massachusetts,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1993 by SunSoft, Inc.
-Copyright 1999-2000 by Bruno Haible
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the names of SunSoft, Inc. and
-Bruno Haible not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission. SunSoft, Inc. and Bruno Haible make no representations
-about the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-SunSoft Inc. AND Bruno Haible DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL SunSoft, Inc. OR Bruno Haible BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1991 by the Open Software Foundation
-Copyright 1993 by the TOSHIBA Corp.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Open Software Foundation and TOSHIBA
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. Open Software
-Foundation and TOSHIBA make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-OPEN SOFTWARE FOUNDATION AND TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN OR TOSHIBA BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca.,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Wyse not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-WYSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
- ----------------------------------------
-
-
-Copyright 1991 by the Open Software Foundation
-Copyright 1993, 1994 by the Sony Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Open Software Foundation and
-Sony Corporation not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-Open Software Foundation and Sony Corporation make no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-OPEN SOFTWARE FOUNDATION AND SONY CORPORATION DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OPEN
-SOFTWARE FOUNDATIONN OR SONY CORPORATION BE LIABLE FOR ANY SPECIAL,
-INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1992, 1993 by FUJITSU LIMITED
-Copyright 1993 by Fujitsu Open Systems Solutions, Inc.
-
-Permission to use, copy, modify, distribute and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED and
-Fujitsu Open Systems Solutions, Inc. not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission.
-FUJITSU LIMITED and Fujitsu Open Systems Solutions, Inc. makes no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED AND FUJITSU OPEN SYSTEMS SOLUTIONS, INC. DISCLAIMS ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJITSU OPEN SYSTEMS
-SOLUTIONS, INC. AND FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1993, 1994 by Sony Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Sony Corporation
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-Sony Corporation makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without
-express or implied warranty.
-
-SONY CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1986, 1998 The Open Group
-Copyright (c) 2000 The XFree86 Project, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-X CONSORTIUM OR THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium or of the
-XFree86 Project shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the X Consortium and the XFree86 Project.
-
- ----------------------------------------
-
-Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
- and Nippon Telegraph and Telephone Corporation
-Copyright 1991 by the Open Software Foundation
-Copyright 1993 by the FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of OMRON, NTT Software, NTT, and
-Open Software Foundation not be used in advertising or publicity
-pertaining to distribution of the software without specific,
-written prior permission. OMRON, NTT Software, NTT, and Open Software
-Foundation make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-OMRON, NTT SOFTWARE, NTT, AND OPEN SOFTWARE FOUNDATION
-DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
-SHALL OMRON, NTT SOFTWARE, NTT, OR OPEN SOFTWARE FOUNDATION BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca,
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL AND WYSE DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL DIGITAL OR WYSE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-
-Copyright 1991, 1992 by Fuji Xerox Co., Ltd.
-Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Fuji Xerox,
-FUJITSU LIMITED not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. Fuji Xerox, FUJITSU LIMITED make no representations
-about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJI XEROX, FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJI XEROX,
-FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
-OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 2006 Josh Triplett
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
- ----------------------------------------
-
-(c) Copyright 1996 by Sebastien Marineau and Holger Veit
- &lt;marineau@genie.uottawa.ca&gt;
- &lt;Holger.Veit@gmd.de&gt;
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-HOLGER VEIT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of Sebastien Marineau or Holger Veit
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Holger Veit or
-Sebastien Marineau.
-
- ----------------------------------------
-
-Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
- and Nippon Telegraph and Telephone Corporation
-Copyright 1991 by the Open Software Foundation
-Copyright 1993 by the TOSHIBA Corp.
-Copyright 1993, 1994 by Sony Corporation
-Copyright 1993, 1994 by the FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of OMRON, NTT Software, NTT, Open
-Software Foundation, and Sony Corporation not be used in advertising
-or publicity pertaining to distribution of the software without specific,
-written prior permission. OMRON, NTT Software, NTT, Open Software
-Foundation, and Sony Corporation make no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-OMRON, NTT SOFTWARE, NTT, OPEN SOFTWARE FOUNDATION, AND SONY
-CORPORATION DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
-SHALL OMRON, NTT SOFTWARE, NTT, OPEN SOFTWARE FOUNDATION, OR SONY
-CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright 2000 by Bruno Haible
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Bruno Haible not
-be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. Bruno Haible
-makes no representations about the suitability of this software for
-any purpose. It is provided "as is" without express or implied
-warranty.
-
-Bruno Haible DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
-NO EVENT SHALL Bruno Haible BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright © 2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- ----------------------------------------
-
-Copyright (c) 2007-2009, Troy D. Hanson
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ----------------------------------------
-
-Copyright 1992, 1993 by TOSHIBA Corp.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of TOSHIBA not be used in advertising
-or publicity pertaining to distribution of the software without specific,
-written prior permission. TOSHIBA make no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
- ----------------------------------------
-
-Copyright IBM Corporation 1993
-
-All Rights Reserved
-
-License to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of IBM not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS, AND
-NONINFRINGEMENT OF THIRD PARTY RIGHTS, IN NO EVENT SHALL
-IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
- ----------------------------------------
-
-Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
- and Nippon Telegraph and Telephone Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of OMRON, NTT Software, and NTT
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. OMRON, NTT Software,
-and NTT make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-OMRON, NTT SOFTWARE, AND NTT, DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL OMRON, NTT SOFTWARE, OR NTT, BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libX11-1.6.0/src/xlibi18n/lcUniConv/COPYRIGHT:
-
-This notice applies to the files in this directory. They are taken from
-the libiconv-1.1 package, which is covered by the LGPL license. The files
-in this directory have been placed under the following copyright, with
-permission from the Free Software Foundation.
-
-
-Copyright (c) 1999-2000 Free Software Foundation, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-FREE SOFTWARE FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the Free Software Foundation
-shall not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization from the
-Free Software Foundation.
-
-
-Notes:
-
-1. This copyright applies only to the files in this directory, and not to
-the remaining files in libiconv.
-
-2. The Free Software Foundation does not encourage the use of the above
-license for newly written software.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXau-1.0.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXau-1.0.6/COPYING:
-
-Copyright 1988, 1993, 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libxcb-1.9.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xcb.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libxcb-1.9.1/COPYING:
-
-Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated
-documentation files (the "Software"), to deal in the
-Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute,
-sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall
-be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
-BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors
-or their institutions shall not be used in advertising or
-otherwise to promote the sale, use or other dealings in this
-Software without prior written authorization from the
-authors.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXcomposite-0.4.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXcomposite-0.4.3/COPYING:
-
-
-Copyright © 2001,2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXcursor-1.1.14</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXcursor-1.1.14/COPYING:
-
-Copyright © 2002 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXdamage-1.1.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXdamage-1.1.3/COPYING:
-
-
-Copyright © 2001,2003 Keith Packard
-Copyright © 2007 Eric Anholt
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXdmcp-1.1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXdmcp-1.1.0/COPYING:
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Author: Keith Packard, MIT X Consortium
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXext-1.3.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXext-1.3.2/COPYING:
-
-Copyright 1986, 1987, 1988, 1989, 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Digital Equipment Corporation
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
-Equipment Corporation.
-
-Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc.
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Copyright 1992 Network Computing Devices
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of NCD. not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. NCD. makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Copyright 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts,
-and Olivetti Research Limited, Cambridge, England.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital or Olivetti
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-Copyright 1986, 1987, 1988 by Hewlett-Packard Corporation
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Hewlett-Packard not be used in
-advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-Hewlett-Packard makes no representations about the
-suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-This software is not subject to any license of the American
-Telephone and Telegraph Company or of the Regents of the
-University of California.
-
-Copyright (c) 1994, 1995 Hewlett-Packard Company
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the Hewlett-Packard
-Company shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the Hewlett-Packard Company.
-
-Copyright Digital Equipment Corporation, 1996
-
-Permission to use, copy, modify, distribute, and sell this
-documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice and this permission
-notice appear in all copies. Digital Equipment Corporation
-makes no representations about the suitability for any purpose
-of the information in this document. This documentation is
-provided ``as is'' without express or implied warranty.
-
-Copyright (c) 1999, 2005, 2006, 2013, Oracle and/or its affiliates.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Copyright (c) 1989 X Consortium, Inc. and Digital Equipment Corporation.
-Copyright (c) 1992 X Consortium, Inc. and Intergraph Corporation.
-Copyright (c) 1993 X Consortium, Inc. and Silicon Graphics, Inc.
-Copyright (c) 1994, 1995 X Consortium, Inc. and Hewlett-Packard Company.
-
-Permission to use, copy, modify, and distribute this documentation for
-any purpose and without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-Digital Equipment Corporation, Intergraph Corporation, Silicon
-Graphics, Hewlett-Packard, and the X Consortium make no
-representations about the suitability for any purpose of the
-information in this document. This documentation is provided ``as is''
-without express or implied warranty.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXfixes-5.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXfixes-5.0.1/COPYING:
-
-
-Copyright © 2001,2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXfont-1.4.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXfont-1.4.4/COPYING:
-
-Copyright © 2007 Red Hat, Inc
-Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Copyright (c) 1997 by Mark Leisher
-Copyright (c) 1998-2003 by Juliusz Chroboczek
-Copyright (c) 1998 Go Watanabe, All rights reserved.
-Copyright (c) 1998 Kazushi (Jam) Marukawa, All rights reserved.
-Copyright (c) 1998 Takuya SHIOZAKI, All rights reserved.
-Copyright (c) 1998 X-TrueType Server Project, All rights reserved.
-Copyright (c) 2003-2004 After X-TT Project, All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-Copyright 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-
-Copyright 1989 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright 1999 SuSE, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of SuSE not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. SuSE makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1990 Network Computing Devices
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Network Computing Devices not be used
-in advertising or publicity pertaining to distribution of the software
-without specific, written prior permission. Network Computing Devices
-makes no representations about the suitability of this software for any
-purpose. It is provided "as is" without express or implied warranty.
-
-NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL,
-INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1990 Network Computing Devices
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Network Computing Devices, or Digital
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-NETWORK COMPUTING DEVICES, AND DIGITAL AND DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES,
-OR DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
-
-[Note: clause 3 in the following license, the "advertising clause", was
-rescinded by Berkeley in 1999. See
-&lt;ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change&gt;]
-
-Copyright (c) 1991, 1993
- The Regents of the University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
-4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
-
-Copyright (c) 1998-1999 Shunsuke Akiyama &lt;akiyama@jp.FreeBSD.org&gt;.
-All rights reserved.
-Copyright (c) 1998-1999 X-TrueType Server Project, All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
-
-Copyright © 2004 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-/* lib/font/fontfile/gunzip.c
- written by Mark Eichin &lt;eichin@kitten.gen.ma.us&gt; September 1996.
- intended for inclusion in X11 public releases. */
-
-
-Copyright (c) 1999 The XFree86 Project Inc.
-
-All Rights Reserved.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The XFree86 Project
-Inc. shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from The XFree86 Project Inc..
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXft-2.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXft-2.2.0/COPYING:
-
-
-Copyright © 2001,2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXi-1.7.1.901</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXi-1.7.1.901/COPYING:
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Hewlett-Packard not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-Copyright 2008 Peter Hutterer
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the author shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the author.
-
-Copyright © 2009 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXinerama-1.1.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXinerama-1.1.3/COPYING:
-
-Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Copyright 2003 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Digital Equipment Corporation
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
-Equipment Corporation.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libxkbfile-1.0.7</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libxkbfile-1.0.7/COPYING:
-
-Copyright (c) 1994-1996 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libxml2-2.9.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.xmlsoft.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libxml2-2.9.1/COPYING:
-
-Except where otherwise noted in the source code (e.g. the files hash.c,
-list.c and the trio files, which are covered by a similar licence but
-with different Copyright notices) all the files are:
-
- Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is fur-
-nished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
-NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libxml2-2.9.1/Copyright:
-
-Except where otherwise noted in the source code (e.g. the files hash.c,
-list.c and the trio files, which are covered by a similar licence but
-with different Copyright notices) all the files are:
-
- Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is fur-
-nished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
-NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXmu-1.1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXmu-1.1.0/COPYING:
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
------------
-
-Xmu/StrToBmap.c and Xmu/GrayPixmap.c also have:
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
------------
-
-And Xmu/Clip.c has:
-
-Copyright (c) 1998 by The XFree86 Project, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from the
-XFree86 Project.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXpm-3.5.9</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXpm-3.5.9/COPYING:
-
-Copyright (C) 1989-95 GROUPE BULL
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of GROUPE BULL shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from GROUPE BULL.
-
-Copyright (C) 1998 Arnaud LE HORS
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-Arnaud LE HORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Arnaud LE HORS shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from Arnaud LE HORS.
-
-Copyright (C) 19896 Lorens Younes
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-Lorens Younes BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Lorens Younes shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from Lorens Younes.
-
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License libXpm-3.5.9/COPYRIGHT:
-
-/*
- * Copyright (C) 1989-95 GROUPE BULL
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of GROUPE BULL shall not be
- * used in advertising or otherwise to promote the sale, use or other dealings
- * in this Software without prior written authorization from GROUPE BULL.
- */
-
-Arnaud LE HORS BULL Research FRANCE -- Koala Project
- (XPM - X PixMap format version 2 &amp; 3)
- Internet: lehors@sophia.inria.fr
-Surface Mail: Arnaud LE HORS, INRIA - Sophia Antipolis,
- 2004, route des Lucioles, 06565 Valbonne Cedex -- FRANCE
- Voice phone: (33) 93.65.77.71, Fax: (33) 93 65 77 66, Telex: 97 00 50 F
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXrandr-1.4.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXrandr-1.4.1/COPYING:
-
-Copyright © 2000, Compaq Computer Corporation,
-Copyright © 2002, Hewlett Packard, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Compaq or HP not be used in advertising
-or publicity pertaining to distribution of the software without specific,
-written prior permission. HP makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Copyright © 2000 Compaq Computer Corporation, Inc.
-Copyright © 2002 Hewlett-Packard Company, Inc.
-Copyright © 2006 Intel Corporation
-Copyright © 2008 Red Hat, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
-Copyright © 2000 Compaq Computer Corporation, Inc.
-Copyright © 2002 Hewlett Packard Company, Inc.
-Copyright © 2006 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXrender-0.9.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXrender-0.9.8/COPYING:
-
-
-Copyright © 2001,2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-Copyright © 2000 SuSE, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of SuSE not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. SuSE makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXt-1.1.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXt-1.1.4/COPYING:
-
-
-Copyright © 2001,2003 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-Copyright (c) 1993, 2011, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-Copyright 1987, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright (c) 1993, 1994 X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall not
-be used in advertising or otherwise to promote the sale, use or other
-dealing in this Software without prior written authorization from the
-X Consortium.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXtst-1.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXtst-1.2.0/COPYING:
-
-Copyright 1990, 1991 by UniSoft Group Limited
-Copyright 1992, 1993, 1995, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-***************************************************************************
-
-Copyright 1995 Network Computing Devices
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Network Computing Devices
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-NETWORK COMPUTING DEVICES DISCLAIMs ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-***************************************************************************
-
-Copyright 2005 Red Hat, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Red Hat not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Red Hat makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">libXxf86vm-1.1.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License libXxf86vm-1.1.3/COPYING:
-
-Copyright (c) 1995 Kaleb S. KEITHLEY
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES
-OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Kaleb S. KEITHLEY
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-from Kaleb S. KEITHLEY.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">Linux-2.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.kernel.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">linux-headers-3.12</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.kernel.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">llvm-3.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://llvm.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License llvm-3.2.src/LICENSE.TXT:
-
-==============================================================================
-LLVM Release License
-==============================================================================
-University of Illinois/NCSA
-Open Source License
-
-Copyright (c) 2003-2012 University of Illinois at Urbana-Champaign.
-All rights reserved.
-
-Developed by:
-
- LLVM Team
-
- University of Illinois at Urbana-Champaign
-
- http://llvm.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimers.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimers in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the names of the LLVM Team, University of Illinois at
- Urbana-Champaign, nor the names of its contributors may be used to
- endorse or promote products derived from this Software without specific
- prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
-
-==============================================================================
-Copyrights and Licenses for Third Party Software Distributed with LLVM:
-==============================================================================
-The LLVM software contains code written by third parties. Such software will
-have its own individual LICENSE.TXT file in the directory in which it appears.
-This file will describe the copyrights, license, and restrictions which apply
-to that code.
-
-The disclaimer of warranty in the University of Illinois Open Source License
-applies to all code in the LLVM Distribution, and nothing in any of the
-other licenses gives permission to use the names of the LLVM Team or the
-University of Illinois to endorse or promote products derived from this
-Software.
-
-The following pieces of software have additional or alternate copyrights,
-licenses, and/or restrictions:
-
-Program Directory
-------- ---------
-Autoconf llvm/autoconf
- llvm/projects/ModuleMaker/autoconf
- llvm/projects/sample/autoconf
-CellSPU backend llvm/lib/Target/CellSPU/README.txt
-Google Test llvm/utils/unittest/googletest
-OpenBSD regex llvm/lib/Support/{reg*, COPYRIGHT.regex}
-pyyaml tests llvm/test/YAMLParser/{*.data, LICENSE.TXT}
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License llvm-3.2.src/autoconf/LICENSE.TXT:
-
-------------------------------------------------------------------------------
-Autoconf Files
-------------------------------------------------------------------------------
-All autoconf files are licensed under the LLVM license with the following
-additions:
-
-llvm/autoconf/install-sh:
- This script is licensed under the LLVM license, with the following
- additional copyrights and restrictions:
-
- Copyright 1991 by the Massachusetts Institute of Technology
-
- Permission to use, copy, modify, distribute, and sell this software and its
- documentation for any purpose is hereby granted without fee, provided that
- the above copyright notice appear in all copies and that both that
- copyright notice and this permission notice appear in supporting
- documentation, and that the name of M.I.T. not be used in advertising or
- publicity pertaining to distribution of the software without specific,
- written prior permission. M.I.T. makes no representations about the
- suitability of this software for any purpose. It is provided "as is"
- without express or implied warranty.
-
-Please see the source files for additional copyrights.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License llvm-3.2.src/include/llvm/Support/LICENSE.TXT:
-
-LLVM System Interface Library
--------------------------------------------------------------------------------
-The LLVM System Interface Library is licensed under the Illinois Open Source
-License and has the following additional copyright:
-
-Copyright (C) 2004 eXtensible Systems, Inc.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License llvm-3.2.src/lib/Support/COPYRIGHT.regex:
-
-$OpenBSD: COPYRIGHT,v 1.3 2003/06/02 20:18:36 millert Exp $
-
-Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved.
-This software is not subject to any license of the American Telephone
-and Telegraph Company or of the Regents of the University of California.
-
-Permission is granted to anyone to use this software for any purpose on
-any computer system, and to alter it and redistribute it, subject
-to the following restrictions:
-
-1. The author is not responsible for the consequences of use of this
- software, no matter how awful, even if they arise from flaws in it.
-
-2. The origin of this software must not be misrepresented, either by
- explicit claim or by omission. Since few users ever read sources,
- credits must appear in the documentation.
-
-3. Altered versions must be plainly marked as such, and must not be
- misrepresented as being the original software. Since few users
- ever read sources, credits must appear in the documentation.
-
-4. This notice may not be removed or altered.
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-/*-
- * Copyright (c) 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)COPYRIGHT 8.1 (Berkeley) 3/16/94
- */
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License llvm-3.2.src/projects/sample/autoconf/LICENSE.TXT:
-
-------------------------------------------------------------------------------
-Autoconf Files
-------------------------------------------------------------------------------
-All autoconf files are licensed under the LLVM license with the following
-additions:
-
-llvm/autoconf/install-sh:
- This script is licensed under the LLVM license, with the following
- additional copyrights and restrictions:
-
- Copyright 1991 by the Massachusetts Institute of Technology
-
- Permission to use, copy, modify, distribute, and sell this software and its
- documentation for any purpose is hereby granted without fee, provided that
- the above copyright notice appear in all copies and that both that
- copyright notice and this permission notice appear in supporting
- documentation, and that the name of M.I.T. not be used in advertising or
- publicity pertaining to distribution of the software without specific,
- written prior permission. M.I.T. makes no representations about the
- suitability of this software for any purpose. It is provided "as is"
- without express or implied warranty.
-
-Please see the source files for additional copyrights.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License llvm-3.2.src/test/YAMLParser/LICENSE.txt:
-
-Copyright (c) 2006 Kirill Simonov
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License llvm-3.2.src/utils/unittest/googletest/LICENSE.TXT:
-
-Copyright 2008, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Gentoo Package Stock License UoI-NCSA:
-
-Copyright (c) &lt;YEAR&gt; &lt;OWNER ORGANIZATION NAME&gt;. All rights reserved.
-
-Developed by: &lt;NAME OF DEVELOPMENT GROUP&gt;
- &lt;NAME OF INSTITUTION&gt;
- &lt;URL FOR DEVELOPMENT GROUP/INSTITUTION&gt;
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal with the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimers.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimers in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the names of &lt;NAME OF DEVELOPMENT GROUP&gt;, &lt;NAME OF
- INSTITUTION&gt;, nor the names of its contributors may be used to endorse
- or promote products derived from this Software without specific prior
- written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-WITH THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">lmbench-3.0_alpha9</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.bitmover.com/lmbench/whatis_lmbench.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">lohitfonts-cros-2.5.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://fedorahosted.org/lohit">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License lohitfonts-cros-2.5.0/LICENSE:
-
-Copyright 2011 Lohit Fonts Project contributors
- &lt;http://fedorahosted.org/lohit&gt;,
-with Reserved Font Name Lohit.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION &amp; CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#OFL-1.1'>Gentoo Package Stock License OFL-1.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">lrzsz-0.12.20</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.ohse.de/uwe/software/lrzsz.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">lshw-02.17b</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://ezix.org/project/wiki/HardwareLiSter">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">lsof-4.81</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License lsof:
-
-ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ#1.9
-
-Copyright 2002 Purdue Research Foundation, West Lafayette,
-Indiana 47907. All rights reserved.
-
-Written by Victor A. Abell
-
-This software is not subject to any license of the American
-Telephone and Telegraph Company or the Regents of the
-University of California.
-
-Permission is granted to anyone to use this software for
-any purpose on any computer system, and to alter it and
-redistribute it freely, subject to the following
-restrictions:
-
-1. Neither the authors nor Purdue University are responsible
- for any consequences of the use of this software.
-
-2. The origin of this software must not be misrepresented,
- either by explicit claim or by omission. Credit to the
- authors and Purdue University must appear in documentation
- and sources.
-
-3. Altered versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
-4. This notice may not be removed or altered.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">lvm2-2.02.97</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sources.redhat.com/lvm2/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">lzo-2.06</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.oberhumer.com/opensource/lzo/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">m2crypto-0.21.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://chandlerproject.org/bin/view/Projects/MeTooCrypto">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License M2Crypto-0.21.1/LICENCE:
-
-Copyright (c) 1999-2004 Ng Pheng Siong. All rights reserved.
-
-Portions copyright (c) 2004-2006 Open Source Applications Foundation.
-All rights reserved.
-
-Portions copyright (c) 2005-2006 Vrije Universiteit Amsterdam.
-All rights reserved.
-
-Copyright (c) 2008-2010 Heikki Toivonen. All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation.
-
-THE AUTHOR PROVIDES THIS SOFTWARE ``AS IS'' AND ANY EXPRESSED OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License M2Crypto-0.21.1/M2Crypto.egg-info/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: M2Crypto
-Version: 0.21.1
-Summary: M2Crypto: A Python crypto and SSL toolkit
-Home-page: http://chandlerproject.org/Projects/MeTooCrypto
-Author: Heikki Toivonen
-Author-email: heikki@osafoundation.org
-License: BSD-style license
-Description: M2Crypto is the most complete Python wrapper for OpenSSL featuring RSA, DSA,
- DH, EC, HMACs, message digests, symmetric ciphers (including AES); SSL
- functionality to implement clients and servers; HTTPS extensions to Python's
- httplib, urllib, and xmlrpclib; unforgeable HMAC'ing AuthCookies for web
- session management; FTP/TLS client and server; S/MIME; ZServerSSL: A HTTPS
- server for Zope and ZSmime: An S/MIME messenger for Zope. M2Crypto can also be
- used to provide SSL for Twisted.
-Platform: any
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: C
-Classifier: Programming Language :: Python
-Classifier: Topic :: Security :: Cryptography
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License M2Crypto-0.21.1/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: M2Crypto
-Version: 0.21.1
-Summary: M2Crypto: A Python crypto and SSL toolkit
-Home-page: http://chandlerproject.org/Projects/MeTooCrypto
-Author: Heikki Toivonen
-Author-email: heikki@osafoundation.org
-License: BSD-style license
-Description: M2Crypto is the most complete Python wrapper for OpenSSL featuring RSA, DSA,
- DH, EC, HMACs, message digests, symmetric ciphers (including AES); SSL
- functionality to implement clients and servers; HTTPS extensions to Python's
- httplib, urllib, and xmlrpclib; unforgeable HMAC'ing AuthCookies for web
- session management; FTP/TLS client and server; S/MIME; ZServerSSL: A HTTPS
- server for Zope and ZSmime: An S/MIME messenger for Zope. M2Crypto can also be
- used to provide SSL for Twisted.
-Platform: any
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: C
-Classifier: Programming Language :: Python
-Classifier: Topic :: Security :: Cryptography
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">m4-1.4.16</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/m4/m4.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">madison-cromo-plugin-0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">make-3.82</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/make/make.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mako-0.7.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.makotemplates.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License Mako-0.7.3/LICENSE:
-
-This is the MIT license: http://www.opensource.org/licenses/mit-license.php
-
-Copyright (C) 2006-2012 the Mako authors and contributors &lt;see AUTHORS file&gt;.
-Mako is a trademark of Michael Bayer.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this
-software and associated documentation files (the "Software"), to deal in the Software
-without restriction, including without limitation the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or
-substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Mako-0.7.3/Mako.egg-info/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: Mako
-Version: 0.7.3
-Summary: A super-fast templating language that borrows the best ideas from the existing templating languages.
-Home-page: http://www.makotemplates.org/
-Author: Mike Bayer
-Author-email: mike@zzzcomputing.com
-License: MIT
-Description: =========================
- Mako Templates for Python
- =========================
-
- Mako is a template library written in Python. It provides a familiar, non-XML
- syntax which compiles into Python modules for maximum performance. Mako's
- syntax and API borrows from the best ideas of many others, including Django
- templates, Cheetah, Myghty, and Genshi. Conceptually, Mako is an embedded
- Python (i.e. Python Server Page) language, which refines the familiar ideas
- of componentized layout and inheritance to produce one of the most
- straightforward and flexible models available, while also maintaining close
- ties to Python calling and scoping semantics.
-
- Nutshell
- ========
-
- ::
-
- &lt;%inherit file="base.html"/&gt;
- &lt;%
- rows = [[v for v in range(0,10)] for row in range(0,10)]
- %&gt;
- &lt;table&gt;
- % for row in rows:
- ${makerow(row)}
- % endfor
- &lt;/table&gt;
-
- &lt;%def name="makerow(row)"&gt;
- &lt;tr&gt;
- % for name in row:
- &lt;td&gt;${name}&lt;/td&gt;\
- % endfor
- &lt;/tr&gt;
- &lt;/%def&gt;
-
- Philosophy
- ===========
-
- Python is a great scripting language. Don't reinvent the wheel...your templates can handle it !
-
- Documentation
- ==============
-
- See documentation for Mako at http://www.makotemplates.org/docs/
-
- License
- ========
-
- Mako is licensed under an MIT-style license (see LICENSE).
- Other incorporated projects may be licensed under different licenses.
- All licenses allow for non-commercial and commercial use.
-
-Keywords: templates
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Environment :: Web Environment
-Classifier: Intended Audience :: Developers
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
-Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Mako-0.7.3/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: Mako
-Version: 0.7.3
-Summary: A super-fast templating language that borrows the best ideas from the existing templating languages.
-Home-page: http://www.makotemplates.org/
-Author: Mike Bayer
-Author-email: mike@zzzcomputing.com
-License: MIT
-Description: =========================
- Mako Templates for Python
- =========================
-
- Mako is a template library written in Python. It provides a familiar, non-XML
- syntax which compiles into Python modules for maximum performance. Mako's
- syntax and API borrows from the best ideas of many others, including Django
- templates, Cheetah, Myghty, and Genshi. Conceptually, Mako is an embedded
- Python (i.e. Python Server Page) language, which refines the familiar ideas
- of componentized layout and inheritance to produce one of the most
- straightforward and flexible models available, while also maintaining close
- ties to Python calling and scoping semantics.
-
- Nutshell
- ========
-
- ::
-
- &lt;%inherit file="base.html"/&gt;
- &lt;%
- rows = [[v for v in range(0,10)] for row in range(0,10)]
- %&gt;
- &lt;table&gt;
- % for row in rows:
- ${makerow(row)}
- % endfor
- &lt;/table&gt;
-
- &lt;%def name="makerow(row)"&gt;
- &lt;tr&gt;
- % for name in row:
- &lt;td&gt;${name}&lt;/td&gt;\
- % endfor
- &lt;/tr&gt;
- &lt;/%def&gt;
-
- Philosophy
- ===========
-
- Python is a great scripting language. Don't reinvent the wheel...your templates can handle it !
-
- Documentation
- ==============
-
- See documentation for Mako at http://www.makotemplates.org/docs/
-
- License
- ========
-
- Mako is licensed under an MIT-style license (see LICENSE).
- Other incorporated projects may be licensed under different licenses.
- All licenses allow for non-commercial and commercial use.
-
-Keywords: templates
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Environment :: Web Environment
-Classifier: Intended Audience :: Developers
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
-Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">markupsafe-0.18</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pypi.python.org/pypi/MarkupSafe">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License MarkupSafe-0.18/LICENSE:
-
-Copyright (c) 2010 by Armin Ronacher and contributors. See AUTHORS
-for more details.
-
-Some rights reserved.
-
-Redistribution and use in source and binary forms of the software as well
-as documentation, with or without modification, are permitted provided
-that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
-* The names of the contributors may not be used to endorse or
- promote products derived from this software without specific
- prior written permission.
-
-THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
-NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License MarkupSafe-0.18/MarkupSafe.egg-info/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: MarkupSafe
-Version: 0.18
-Summary: Implements a XML/HTML/XHTML Markup safe string for Python
-Home-page: http://github.com/mitsuhiko/markupsafe
-Author: Armin Ronacher
-Author-email: armin.ronacher@active-4.com
-License: BSD
-Description: MarkupSafe
- ==========
-
- Implements a unicode subclass that supports HTML strings:
-
- &gt;&gt;&gt; from markupsafe import Markup, escape
- &gt;&gt;&gt; escape("&lt;script&gt;alert(document.cookie);&lt;/script&gt;")
- Markup(u'&amp;lt;script&amp;gt;alert(document.cookie);&amp;lt;/script&amp;gt;')
- &gt;&gt;&gt; tmpl = Markup("&lt;em&gt;%s&lt;/em&gt;")
- &gt;&gt;&gt; tmpl % "Peter &gt; Lustig"
- Markup(u'&lt;em&gt;Peter &amp;gt; Lustig&lt;/em&gt;')
-
- If you want to make an object unicode that is not yet unicode
- but don't want to lose the taint information, you can use the
- `soft_unicode` function. (On Python 3 you can also use `soft_str` which
- is a different name for the same function).
-
- &gt;&gt;&gt; from markupsafe import soft_unicode
- &gt;&gt;&gt; soft_unicode(42)
- u'42'
- &gt;&gt;&gt; soft_unicode(Markup('foo'))
- Markup(u'foo')
-
- Objects can customize their HTML markup equivalent by overriding
- the `__html__` function:
-
- &gt;&gt;&gt; class Foo(object):
- ... def __html__(self):
- ... return '&lt;strong&gt;Nice&lt;/strong&gt;'
- ...
- &gt;&gt;&gt; escape(Foo())
- Markup(u'&lt;strong&gt;Nice&lt;/strong&gt;')
- &gt;&gt;&gt; Markup(Foo())
- Markup(u'&lt;strong&gt;Nice&lt;/strong&gt;')
-
- Since MarkupSafe 0.10 there is now also a separate escape function
- called `escape_silent` that returns an empty string for `None` for
- consistency with other systems that return empty strings for `None`
- when escaping (for instance Pylons' webhelpers).
-
- If you also want to use this for the escape method of the Markup
- object, you can create your own subclass that does that::
-
- from markupsafe import Markup, escape_silent as escape
-
- class SilentMarkup(Markup):
- __slots__ = ()
-
- @classmethod
- def escape(cls, s):
- return cls(escape(s))
-
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Environment :: Web Environment
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: BSD License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Topic :: Text Processing :: Markup :: HTML
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License MarkupSafe-0.18/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: MarkupSafe
-Version: 0.18
-Summary: Implements a XML/HTML/XHTML Markup safe string for Python
-Home-page: http://github.com/mitsuhiko/markupsafe
-Author: Armin Ronacher
-Author-email: armin.ronacher@active-4.com
-License: BSD
-Description: MarkupSafe
- ==========
-
- Implements a unicode subclass that supports HTML strings:
-
- &gt;&gt;&gt; from markupsafe import Markup, escape
- &gt;&gt;&gt; escape("&lt;script&gt;alert(document.cookie);&lt;/script&gt;")
- Markup(u'&amp;lt;script&amp;gt;alert(document.cookie);&amp;lt;/script&amp;gt;')
- &gt;&gt;&gt; tmpl = Markup("&lt;em&gt;%s&lt;/em&gt;")
- &gt;&gt;&gt; tmpl % "Peter &gt; Lustig"
- Markup(u'&lt;em&gt;Peter &amp;gt; Lustig&lt;/em&gt;')
-
- If you want to make an object unicode that is not yet unicode
- but don't want to lose the taint information, you can use the
- `soft_unicode` function. (On Python 3 you can also use `soft_str` which
- is a different name for the same function).
-
- &gt;&gt;&gt; from markupsafe import soft_unicode
- &gt;&gt;&gt; soft_unicode(42)
- u'42'
- &gt;&gt;&gt; soft_unicode(Markup('foo'))
- Markup(u'foo')
-
- Objects can customize their HTML markup equivalent by overriding
- the `__html__` function:
-
- &gt;&gt;&gt; class Foo(object):
- ... def __html__(self):
- ... return '&lt;strong&gt;Nice&lt;/strong&gt;'
- ...
- &gt;&gt;&gt; escape(Foo())
- Markup(u'&lt;strong&gt;Nice&lt;/strong&gt;')
- &gt;&gt;&gt; Markup(Foo())
- Markup(u'&lt;strong&gt;Nice&lt;/strong&gt;')
-
- Since MarkupSafe 0.10 there is now also a separate escape function
- called `escape_silent` that returns an empty string for `None` for
- consistency with other systems that return empty strings for `None`
- when escaping (for instance Pylons' webhelpers).
-
- If you also want to use this for the escape method of the Markup
- object, you can create your own subclass that does that::
-
- from markupsafe import Markup, escape_silent as escape
-
- class SilentMarkup(Markup):
- __slots__ = ()
-
- @classmethod
- def escape(cls, s):
- return cls(escape(s))
-
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Environment :: Web Environment
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: BSD License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Topic :: Text Processing :: Markup :: HTML
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">marvell_sd8787-14.64.2.47</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.marvell.com/">homepage</a></span>
-<div class="licence">
-<pre>Custom License Marvell-sd8787:
-
-Copyright (C) 2010, Marvell International Ltd.
-
-All Rights Reserved.
-
-This file is provided by Marvell International Ltd. "AS IS".
-Reverse engineering of this file is strictly prohibited.
-Redistribution and use in its original form are permitted.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mawk-1.3.4_p20100625</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://invisible-island.net/mawk/mawk.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mem-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">memento_softwareupdate-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">memtester-4.2.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pyropus.ca/software/memtester/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mesa-10.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://mesa3d.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License Mesa-10.3/docs/COPYING:
-
-
-Some parts of Mesa are copyrighted under the GNU LGPL. See the
-Mesa/docs/COPYRIGHT file for details.
-
-The following is the standard GNU copyright file.
-----------------------------------------------------------------------
-
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL. It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
- Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
- Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs. This
-license, the GNU Library General Public License, applies to certain
-designated libraries. This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
- The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it. Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program. However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
- Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-
- However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.) The hope is that this
-will lead to faster development of free libraries.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, while the latter only
-works together with the library.
-
- Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License"). Each licensee is
-addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- c) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- d) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the library's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Mesa-10.3/docs/license.html:
-
-&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
-&lt;html lang="en"&gt;
-&lt;head&gt;
- &lt;meta http-equiv="content-type" content="text/html; charset=utf-8"&gt;
- &lt;title&gt;License / Copyright Information&lt;/title&gt;
- &lt;link rel="stylesheet" type="text/css" href="mesa.css"&gt;
-&lt;/head&gt;
-&lt;body&gt;
-
-&lt;div class="header"&gt;
- &lt;h1&gt;The Mesa 3D Graphics Library&lt;/h1&gt;
-&lt;/div&gt;
-
-&lt;iframe src="contents.html"&gt;&lt;/iframe&gt;
-&lt;div class="content"&gt;
-
-&lt;h1&gt;Disclaimer&lt;/h1&gt;
-
-&lt;p&gt;
-Mesa is a 3-D graphics library with an API which is very similar to
-that of &lt;a href="http://www.opengl.org/"&gt;OpenGL&lt;/a&gt;.*
-To the extent that Mesa utilizes the OpenGL command syntax or state
-machine, it is being used with authorization from &lt;a
-href="http://www.sgi.com/"&gt;Silicon Graphics,
-Inc.&lt;/a&gt;(SGI). However, the author does not possess an OpenGL license
-from SGI, and makes no claim that Mesa is in any way a compatible
-replacement for OpenGL or associated with SGI. Those who want a
-licensed implementation of OpenGL should contact a licensed
-vendor.
-&lt;/p&gt;
-
-&lt;p&gt;
-Please do not refer to the library as &lt;em&gt;MesaGL&lt;/em&gt; (for legal
-reasons). It's just &lt;em&gt;Mesa&lt;/em&gt; or &lt;em&gt;The Mesa 3-D graphics
-library&lt;/em&gt;. &lt;br&gt;
-&lt;/p&gt;
-
-&lt;p&gt;
-* OpenGL is a trademark of &lt;a href="http://www.sgi.com/"
-&gt;Silicon Graphics Incorporated&lt;/a&gt;.
-&lt;/p&gt;
-
-
-
-&lt;h1&gt;License / Copyright Information&lt;/h1&gt;
-
-&lt;p&gt;
-The Mesa distribution consists of several components. Different copyrights
-and licenses apply to different components. For example, some demo programs
-are copyrighted by SGI, some of the Mesa device drivers are copyrighted by
-their authors. See below for a list of Mesa's main components and the license
-for each.
-&lt;/p&gt;
-&lt;p&gt;
-The core Mesa library is licensed according to the terms of the MIT license.
-This allows integration with the XFree86, Xorg and DRI projects.
-&lt;/p&gt;
-&lt;p&gt;
-The default Mesa license is as follows:
-&lt;/p&gt;
-
-&lt;pre&gt;
-Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-&lt;/pre&gt;
-
-
-&lt;h1&gt;Attention, Contributors&lt;/h1&gt;
-
-&lt;p&gt;
-When contributing to the Mesa project you must agree to the licensing terms
-of the component to which you're contributing.
-The following section lists the primary components of the Mesa distribution
-and their respective licenses.
-&lt;/p&gt;
-
-
-&lt;h1&gt;Mesa Component Licenses&lt;/h1&gt;
-
-&lt;pre&gt;
-Component Location License
-------------------------------------------------------------------
-Main Mesa code src/mesa/ Mesa (MIT)
-
-Device drivers src/mesa/drivers/* MIT, generally
-
-Ext headers include/GL/glext.h Khronos
- include/GL/glxext.h
-
-C11 thread include/c11/threads*.h Boost (permissive)
-emulation
-&lt;/pre&gt;
-
-&lt;p&gt;
-In general, consult the source files for license terms.
-&lt;/p&gt;
-
-&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#SGI-B-2.0'>Gentoo Package Stock License SGI-B-2.0</a></li>
-<li><a href='#LGPL-3'>Gentoo Package Stock License LGPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mesa-progs-8.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://mesa3d.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">metrics-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mime-types-9</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">minicom-2.7</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://alioth.debian.org/projects/minicom">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">minifakedns-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.activestate.com/recipes/491264-mini-fake-dns-server/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#PSF-2'>Gentoo Package Stock License PSF-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mkfontdir-1.0.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License mkfontdir-1.0.6/COPYING:
-
-Copyright 1993, 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
------------------------------------------------------------------------------
-
-Copyright 2005 Red Hat, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Red Hat not be used in
-advertising or publicity pertaining to distribution of the software
-without specific, written prior permission. Red Hat makes no
-representations about the suitability of this software for any
-purpose. It is provided "as is" without express or implied warranty.
-
-RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
-NO EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
-USE OR PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ml-anjalioldlipi-0.740</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://sites.google.com/site/cibu/anjalioldlipi-font">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License ml-anjalioldlipi-0.740/LICENSE:
-
-Copyright 2004 Kevin &amp; Siji, 2007-2011 Cibu Johny
-with reserved font name AnjaliOldLipi.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION &amp; CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#OFL-1.1'>Gentoo Package Stock License OFL-1.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mmc-utils-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://chromium.googlesource.com/chromiumos/third_party/mmc-utils">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">modem-diagnostics-0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">modem-utilities-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">modemmanager-classic-interfaces-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">modemmanager-next-1.3.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://mail.gnome.org/archives/networkmanager-list/2008-July/msg00274.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mosys-1.2.03</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://mosys.googlecode.com/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mtdev-1.1.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://bitmath.org/code/mtdev/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License mtdev-1.1.2/COPYING:
-
-mtdev - Multitouch Protocol Translation Library (MIT license)
-
-Copyright (C) 2010 Henrik Rydberg &lt;rydberg@euromail.se&gt;
-Copyright (C) 2010 Canonical Ltd.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mtools-4.0.15</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://mtools.linux.lu/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mtpd-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mtplot-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">mttools-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">my-padauk-2.50</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&amp;id=padauk">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#OFL-1.1'>Gentoo Package Stock License OFL-1.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ncurses-5.9</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/ncurses/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License ncurses-5.9/Ada95/package/debian/copyright:
-
-Upstream source http://invisible-island.net/ncurses/ncurses-examples.html
-
-Current ncurses maintainer: Thomas Dickey &lt;dickey@invisible-island.net&gt;
-
--------------------------------------------------------------------------------
- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, distribute with modifications, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
- THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the name(s) of the above copyright
- holders shall not be used in advertising or otherwise to promote the
- sale, use or other dealings in this Software without prior written
- authorization.
--------------------------------------------------------------------------------
-
-Files: install-sh
-Copyright: 1994 X Consortium
-Licence: other-BSD
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to
- deal in the Software without restriction, including without limitation the
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
- TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the name of the X Consortium shall not
- be used in advertising or otherwise to promote the sale, use or other deal-
- ings in this Software without prior written authorization from the X Consor-
- tium.
-
- FSF changes to this file are in the public domain.
-
- Calling this script install-sh is preferred over install.sh, to prevent
- `make' implicit rules from creating a file called install from it
- when there is no Makefile.
-
- This script is compatible with the BSD install script, but was written
- from scratch. It can only install one file at a time, a restriction
- shared with many OS's install programs.
-
-On Debian systems, the complete text of the GNU General
-Public License can be found in '/usr/share/common-licenses/GPL-2'
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License ncurses-5.9/test/package/debian/copyright:
-
-Upstream source http://invisible-island.net/ncurses/ncurses-examples.html
-
-Current ncurses maintainer: Thomas Dickey &lt;dickey@invisible-island.net&gt;
-
--------------------------------------------------------------------------------
- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, distribute with modifications, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
- THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the name(s) of the above copyright
- holders shall not be used in advertising or otherwise to promote the
- sale, use or other dealings in this Software without prior written
- authorization.
--------------------------------------------------------------------------------
-
-Files: install-sh
-Copyright: 1994 X Consortium
-Licence: other-BSD
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to
- deal in the Software without restriction, including without limitation the
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
- TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the name of the X Consortium shall not
- be used in advertising or otherwise to promote the sale, use or other deal-
- ings in this Software without prior written authorization from the X Consor-
- tium.
-
- FSF changes to this file are in the public domain.
-
- Calling this script install-sh is preferred over install.sh, to prevent
- `make' implicit rules from creating a file called install from it
- when there is no Makefile.
-
- This script is compatible with the BSD install script, but was written
- from scratch. It can only install one file at a time, a restriction
- shared with many OS's install programs.
-
-On Debian systems, the complete text of the GNU General
-Public License can be found in '/usr/share/common-licenses/GPL-2'
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">net-tools-1.60_p20120127084908</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://net-tools.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">netifaces-0.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://alastairs-place.net/netifaces/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License netifaces-0.8/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: netifaces
-Version: 0.8
-Summary: Portable network interface information.
-Home-page: http://alastairs-place.net/netifaces
-Author: Alastair Houghton
-Author-email: alastair@alastairs-place.net
-License: MIT License
-Description: netifaces provides a (hopefully portable-ish) way for Python programmers to
- get access to a list of the network interfaces on the local machine, and to
- obtain the addresses of those network interfaces.
-
- The package has been tested on Mac OS X, Windows XP, Windows Vista, Linux
- and Solaris.
-
- It should work on other UNIX-like systems provided they implement
- either getifaddrs() or support the SIOCGIFxxx socket options, although the
- data provided by the socket options is normally less complete.
-
-Platform: UNKNOWN
-Classifier: Development Status :: 4 - Beta
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Topic :: System :: Networking
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License netifaces-0.8/netifaces.egg-info/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: netifaces
-Version: 0.8
-Summary: Portable network interface information.
-Home-page: http://alastairs-place.net/netifaces
-Author: Alastair Houghton
-Author-email: alastair@alastairs-place.net
-License: MIT License
-Description: netifaces provides a (hopefully portable-ish) way for Python programmers to
- get access to a list of the network interfaces on the local machine, and to
- obtain the addresses of those network interfaces.
-
- The package has been tested on Mac OS X, Windows XP, Windows Vista, Linux
- and Solaris.
-
- It should work on other UNIX-like systems provided they implement
- either getifaddrs() or support the SIOCGIFxxx socket options, although the
- data provided by the socket options is normally less complete.
-
-Platform: UNKNOWN
-Classifier: Development Status :: 4 - Beta
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Topic :: System :: Networking
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">netperf-2.4.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.netperf.org/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License netperf:
-
-
-
- Copyright (C) 1993 Hewlett-Packard Company
- ALL RIGHTS RESERVED.
-
- The enclosed software and documentation includes copyrighted works
- of Hewlett-Packard Co. For as long as you comply with the following
- limitations, you are hereby authorized to (i) use, reproduce, and
- modify the software and documentation, and to (ii) distribute the
- software and documentation, including modifications, for
- non-commercial purposes only.
-
- 1. The enclosed software and documentation is made available at no
- charge in order to advance the general development of
- high-performance networking products.
-
- 2. You may not delete any copyright notices contained in the
- software or documentation. All hard copies, and copies in
- source code or object code form, of the software or
- documentation (including modifications) must contain at least
- one of the copyright notices.
-
- 3. The enclosed software and documentation has not been subjected
- to testing and quality control and is not a Hewlett-Packard Co.
- product. At a future time, Hewlett-Packard Co. may or may not
- offer a version of the software and documentation as a product.
-
- 4. THE SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS".
- HEWLETT-PACKARD COMPANY DOES NOT WARRANT THAT THE USE,
- REPRODUCTION, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR
- DOCUMENTATION WILL NOT INFRINGE A THIRD PARTY'S INTELLECTUAL
- PROPERTY RIGHTS. HP DOES NOT WARRANT THAT THE SOFTWARE OR
- DOCUMENTATION IS ERROR FREE. HP DISCLAIMS ALL WARRANTIES,
- EXPRESS AND IMPLIED, WITH REGARD TO THE SOFTWARE AND THE
- DOCUMENTATION. HP SPECIFICALLY DISCLAIMS ALL WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
- 5. HEWLETT-PACKARD COMPANY WILL NOT IN ANY EVENT BE LIABLE FOR ANY
- DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
- (INCLUDING LOST PROFITS) RELATED TO ANY USE, REPRODUCTION,
- MODIFICATION, OR DISTRIBUTION OF THE SOFTWARE OR DOCUMENTATION.
-
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">notofonts-20140130</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">nspr-4.10.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.mozilla.org/projects/nspr/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#MPL-2.0'>Gentoo Package Stock License MPL-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">nss-3.16</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.mozilla.org/projects/security/pki/nss/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#MPL-2.0'>Gentoo Package Stock License MPL-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">nss-3.16</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.mozilla.org/projects/security/pki/nss/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#MPL-2.0'>Gentoo Package Stock License MPL-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ntfs3g-2012.1.15</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.tuxera.com/community/ntfs-3g-download/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">numpy-1.7.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://numpy.scipy.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License numpy-1.7.1/LICENSE.txt:
-
-Copyright (c) 2005-2011, NumPy Developers.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
- * Neither the name of the NumPy Developers nor the names of any
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License numpy-1.7.1/PKG-INFO:
-
-Metadata-Version: 1.1
-Name: numpy
-Version: 1.7.1
-Summary: NumPy: array processing for numbers, strings, records, and objects.
-Home-page: http://www.numpy.org
-Author: NumPy Developers
-Author-email: numpy-discussion@scipy.org
-License: BSD
-Download-URL: http://sourceforge.net/projects/numpy/files/NumPy/
-Description: NumPy is a general-purpose array-processing package designed to
- efficiently manipulate large multi-dimensional arrays of arbitrary
- records without sacrificing too much speed for small multi-dimensional
- arrays. NumPy is built on the Numeric code base and adds features
- introduced by numarray as well as an extended C-API and the ability to
- create arrays of arbitrary type which also makes NumPy suitable for
- interfacing with general-purpose data-base applications.
-
- There are also basic facilities for discrete fourier transform,
- basic linear algebra and random number generation.
-
-Platform: Windows
-Platform: Linux
-Platform: Solaris
-Platform: Mac OS-X
-Platform: Unix
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Science/Research
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved
-Classifier: Programming Language :: C
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-Classifier: Topic :: Software Development
-Classifier: Topic :: Scientific/Engineering
-Classifier: Operating System :: Microsoft :: Windows
-Classifier: Operating System :: POSIX
-Classifier: Operating System :: Unix
-Classifier: Operating System :: MacOS
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License numpy-1.7.1/doc/source/license.rst:
-
-*************
-Numpy License
-*************
-
-Copyright (c) 2005, NumPy Developers
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
-* Neither the name of the NumPy Developers nor the names of any
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License numpy-1.7.1/doc/sphinxext/LICENSE.txt:
-
--------------------------------------------------------------------------------
- The files
- - numpydoc.py
- - docscrape.py
- - docscrape_sphinx.py
- - phantom_import.py
- have the following license:
-
-Copyright (C) 2008 Stefan van der Walt &lt;stefan@mentat.za.net&gt;, Pauli Virtanen &lt;pav@iki.fi&gt;
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------------------
- The files
- - compiler_unparse.py
- - comment_eater.py
- - traitsdoc.py
- have the following license:
-
-This software is OSI Certified Open Source Software.
-OSI Certified is a certification mark of the Open Source Initiative.
-
-Copyright (c) 2006, Enthought, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of Enthought, Inc. nor the names of its contributors may
- be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
--------------------------------------------------------------------------------
- The file
- - plot_directive.py
- originates from Matplotlib (http://matplotlib.sf.net/) which has
- the following license:
-
-Copyright (c) 2002-2008 John D. Hunter; All Rights Reserved.
-
-1. This LICENSE AGREEMENT is between John D. Hunter (“JDH”), and the Individual or Organization (“Licensee”) accessing and otherwise using matplotlib software in source or binary form and its associated documentation.
-
-2. Subject to the terms and conditions of this License Agreement, JDH hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use matplotlib 0.98.3 alone or in any derivative version, provided, however, that JDH’s License Agreement and JDH’s notice of copyright, i.e., “Copyright (c) 2002-2008 John D. Hunter; All Rights Reserved” are retained in matplotlib 0.98.3 alone or in any derivative version prepared by Licensee.
-
-3. In the event Licensee prepares a derivative work that is based on or incorporates matplotlib 0.98.3 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to matplotlib 0.98.3.
-
-4. JDH is making matplotlib 0.98.3 available to Licensee on an “AS IS” basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB 0.98.3 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB 0.98.3 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING MATPLOTLIB 0.98.3, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.
-
-7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between JDH and Licensee. This License Agreement does not grant permission to use JDH trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.
-
-8. By copying, installing or otherwise using matplotlib 0.98.3, Licensee agrees to be bound by the terms and conditions of this License Agreement.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">oem-customization-0.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">opencryptoki-2.2.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sourceforge.net/projects/opencryptoki">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License CPL-0.5:
-
-
-Common Public License Version 0.5
-
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON
- PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
- THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
- 1. DEFINITIONS
-
- "Contribution" means:
-
- a) in the case of the initial Contributor, the initial code and
- documentation distributed under this Agreement, and
-
- b) in the case of each subsequent Contributor:
-
- i) changes to the Program, and
-
- ii) additions to the Program;
-
- where such changes and/or additions to the Program originate from
- and are distributed by that particular Contributor. A Contribution
- 'originates' from a Contributor if it was added to the Program by
- such Contributor itself or anyone acting on such Contributor's
- behalf. Contributions do not include additions to the Program
- which: (i) are separate modules of software distributed in
- conjunction with the Program under their own license agreement, and
- (ii) are not derivative works of the Program.
-
- "Contributor" means any person or entity that distributes the Program.
-
- "Licensed Patents " mean patent claims licensable by a Contributor
- which are necessarily infringed by the use or sale of its Contribution
- alone or when combined with the Program.
-
- "Program" means the Contributions distributed in accordance with this
- Agreement.
-
- "Recipient" means anyone who receives the Program under this
- Agreement, including all Contributors.
-
- 2. GRANT OF RIGHTS
-
- a) Subject to the terms of this Agreement, each Contributor hereby
- grants Recipient a non-exclusive, worldwide, royalty-free copyright
- license to reproduce, prepare derivative works of, publicly
- display, publicly perform, distribute and sublicense the
- Contribution of such Contributor, if any, and such derivative
- works, in source code and object code form.
-
- b) Subject to the terms of this Agreement, each Contributor hereby
- grants Recipient a non-exclusive, worldwide, royalty-free patent
- license under Licensed Patents to make, use, sell, offer to sell,
- import and otherwise transfer the Contribution of such Contributor,
- if any, in source code and object code form. This patent license
- shall apply to the combination of the Contribution and the Program
- if, at the time the Contribution is added by the Contributor, such
- addition of the Contribution causes such combination to be covered
- by the Licensed Patents. The patent license shall not apply to any
- other combinations which include the Contribution. No hardware per
- se is licensed hereunder.
-
- c) Recipient understands that although each Contributor grants the
- licenses to its Contributions set forth herein, no assurances are
- provided by any Contributor that the Program does not infringe the
- patent or other intellectual property rights of any other entity.
- Each Contributor disclaims any liability to Recipient for claims
- brought by any other entity based on infringement of intellectual
- property rights or otherwise. As a condition to exercising the
- rights and licenses granted hereunder, each Recipient hereby
- assumes sole responsibility to secure any other intellectual
- property rights needed, if any. For example, if a third party
- patent license is required to allow Recipient to distribute the
- Program, it is Recipient's responsibility to acquire that license
- before distributing the Program.
-
- d) Each Contributor represents that to its knowledge it has
- sufficient copyright rights in its Contribution, if any, to grant
- the copyright license set forth in this Agreement.
-
- 3. REQUIREMENTS
-
- A Contributor may choose to distribute the Program in object code form
- under its own license agreement, provided that:
-
- a) it complies with the terms and conditions of this Agreement; and
-
- b) its license agreement:
-
- i) effectively disclaims on behalf of all Contributors all
- warranties and conditions, express and implied, including
- warranties or conditions of title and non-infringement, and implied
- warranties or conditions of merchantability and fitness for a
- particular purpose;
-
- ii) effectively excludes on behalf of all Contributors all
- liability for damages, including direct, indirect, special,
- incidental and consequential damages, such as lost profits;
-
- iii) states that any provisions which differ from this Agreement
- are offered by that Contributor alone and not by any other party;
- and
-
- iv) states that source code for the Program is available from such
- Contributor, and informs licensees how to obtain it in a reasonable
- manner on or through a medium customarily used for software
- exchange.
-
- When the Program is made available in source code form:
-
- a) it must be made available under this Agreement; and
-
- b) a copy of this Agreement must be included with each copy of the
- Program.
-
- Contributors may not remove or alter any copyright notices contained
- within the Program.
-
- Each Contributor must identify itself as the originator of its
- Contribution, if any, in a manner that reasonably allows subsequent
- Recipients to identify the originator of the Contribution.
-
- 4. COMMERCIAL DISTRIBUTION
-
- Commercial distributors of software may accept certain
- responsibilities with respect to end users, business partners and the
- like. While this license is intended to facilitate the commercial use
- of the Program, the Contributor who includes the Program in a
- commercial product offering should do so in a manner which does not
- create potential liability for other Contributors. Therefore, if a
- Contributor includes the Program in a commercial product offering,
- such Contributor ("Commercial Contributor") hereby agrees to defend
- and indemnify every other Contributor ("Indemnified Contributor")
- against any losses, damages and costs (collectively "Losses") arising
- from claims, lawsuits and other legal actions brought by a third party
- against the Indemnified Contributor to the extent caused by the acts
- or omissions of such Commercial Contributor in connection with its
- distribution of the Program in a commercial product offering. The
- obligations in this section do not apply to any claims or Losses
- relating to any actual or alleged intellectual property infringement.
- In order to qualify, an Indemnified Contributor must: a) promptly
- notify the Commercial Contributor in writing of such claim, and b)
- allow the Commercial Contributor to control, and cooperate with the
- Commercial Contributor in, the defense and any related settlement
- negotiations. The Indemnified Contributor may participate in any such
- claim at its own expense.
-
- For example, a Contributor might include the Program in a commercial
- product offering, Product X. That Contributor is then a Commercial
- Contributor. If that Commercial Contributor then makes performance
- claims, or offers warranties related to Product X, those performance
- claims and warranties are such Commercial Contributor's responsibility
- alone. Under this section, the Commercial Contributor would have to
- defend claims against the other Contributors related to those
- performance claims and warranties, and if a court requires any other
- Contributor to pay any damages as a result, the Commercial Contributor
- must pay those damages.
-
- 5. NO WARRANTY
-
- EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
- PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
- WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
- OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
- responsible for determining the appropriateness of using and
- distributing the Program and assumes all risks associated with its
- exercise of rights under this Agreement, including but not limited to
- the risks and costs of program errors, compliance with applicable
- laws, damage to or loss of data, programs or equipment, and
- unavailability or interruption of operations.
-
- 6. DISCLAIMER OF LIABILITY
-
- EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
- ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
- WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
- DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
- HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- 7. GENERAL
-
- If any provision of this Agreement is invalid or unenforceable under
- applicable law, it shall not affect the validity or enforceability of
- the remainder of the terms of this Agreement, and without further
- action by the parties hereto, such provision shall be reformed to the
- minimum extent necessary to make such provision valid and enforceable.
-
- If Recipient institutes patent litigation against a Contributor with
- respect to a patent applicable to software (including a cross-claim or
- counterclaim in a lawsuit), then any patent licenses granted by that
- Contributor to such Recipient under this Agreement shall terminate as
- of the date such litigation is filed. In addition, If Recipient
- institutes patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Program
- itself (excluding combinations of the Program with other software or
- hardware) infringes such Recipient's patent(s), then such Recipient's
- rights granted under Section 2(b) shall terminate as of the date such
- litigation is filed.
-
- All Recipient's rights under this Agreement shall terminate if it
- fails to comply with any of the material terms or conditions of this
- Agreement and does not cure such failure in a reasonable period of
- time after becoming aware of such noncompliance. If all Recipient's
- rights under this Agreement terminate, Recipient agrees to cease use
- and distribution of the Program as soon as reasonably practicable.
- However, Recipient's obligations under this Agreement and any licenses
- granted by Recipient relating to the Program shall continue and
- survive.
-
- Everyone is permitted to copy and distribute copies of this Agreement,
- but in order to avoid inconsistency the Agreement is copyrighted and
- may only be modified in the following manner. The Agreement Steward
- reserves the right to publish new versions (including revisions) of
- this Agreement from time to time. No one other than the Agreement
- Steward has the right to modify this Agreement. IBM is the initial
- Agreement Steward. IBM may assign the responsibility to serve as the
- Agreement Steward to a suitable separate entity. Each new version of
- the Agreement will be given a distinguishing version number. The
- Program (including Contributions) may always be distributed subject to
- the version of the Agreement under which it was received. In addition,
- after a new version of the Agreement is published, Contributor may
- elect to distribute the Program (including its Contributions) under
- the new version. Except as expressly stated in Sections 2(a) and 2(b)
- above, Recipient receives no rights or licenses to the intellectual
- property of any Contributor under this Agreement, whether expressly,
- by implication, estoppel or otherwise. All rights in the Program not
- expressly granted under this Agreement are reserved.
-
- This Agreement is governed by the laws of the State of New York and
- the intellectual property laws of the United States of America. No
- party to this Agreement will bring a legal action under this Agreement
- more than one year after the cause of action arose. Each party waives
- its rights to a jury trial in any resulting litigation.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">opencv-2.3.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://opencv.willowgarage.com">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License OpenCV-2.3.0/3rdparty/ilmimf/LICENSE:
-
-Copyright (c) 2004, Industrial Light &amp; Magic, a division of Lucasfilm
-Entertainment Company Ltd. Portions contributed and copyright held by
-others as indicated. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above
- copyright notice, this list of conditions and the following
- disclaimer.
-
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided with
- the distribution.
-
- * Neither the name of Industrial Light &amp; Magic nor the names of
- any other contributors to this software may be used to endorse or
- promote products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License OpenCV-2.3.0/3rdparty/libjasper/LICENSE:
-
-JasPer License Version 2.0
-
-Copyright (c) 2001-2006 Michael David Adams
-Copyright (c) 1999-2000 Image Power, Inc.
-Copyright (c) 1999-2000 The University of British Columbia
-
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person (the
-"User") obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge,
-publish, distribute, and/or sell copies of the Software, and to permit
-persons to whom the Software is furnished to do so, subject to the
-following conditions:
-
-1. The above copyright notices and this permission notice (which
-includes the disclaimer below) shall be included in all copies or
-substantial portions of the Software.
-
-2. The name of a copyright holder shall not be used to endorse or
-promote products derived from the Software without specific prior
-written permission.
-
-THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
-LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
-THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
-"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
-PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE
-PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE
-THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY.
-EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS
-BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL
-PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS
-GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE
-ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE
-IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL
-SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES,
-AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL
-SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH
-THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH,
-PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH
-RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY
-EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License OpenCV-2.3.0/doc/license.txt:
-
-IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
-
- By downloading, copying, installing or using the software you agree to this license.
- If you do not agree to this license, do not download, install,
- copy or use the software.
-
-
- License Agreement
- For Open Source Computer Vision Library
-
-Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
-Copyright (C) 2008-2011, Willow Garage Inc., all rights reserved.
-Third party copyrights are property of their respective owners.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistribution's of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- * Redistribution's in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- * The name of the copyright holders may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-This software is provided by the copyright holders and contributors "as is" and
-any express or implied warranties, including, but not limited to, the implied
-warranties of merchantability and fitness for a particular purpose are disclaimed.
-In no event shall the Intel Corporation or contributors be liable for any direct,
-indirect, incidental, special, exemplary, or consequential damages
-(including, but not limited to, procurement of substitute goods or services;
-loss of use, data, or profits; or business interruption) however caused
-and on any theory of liability, whether in contract, strict liability,
-or tort (including negligence or otherwise) arising in any way out of
-the use of this software, even if advised of the possibility of such damage.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">opensc-0.12.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.opensc-project.org/opensc/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">openssh-6.4_p1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.openssh.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License openssh-6.4p1/LICENCE:
-
-This file is part of the OpenSSH software.
-
-The licences which components of this software fall under are as
-follows. First, we will summarize and say that all components
-are under a BSD licence, or a licence more free than that.
-
-OpenSSH contains no GPL code.
-
-1)
- * Copyright (c) 1995 Tatu Ylonen &lt;ylo@cs.hut.fi&gt;, Espoo, Finland
- * All rights reserved
- *
- * As far as I am concerned, the code I have written for this software
- * can be used freely for any purpose. Any derived versions of this
- * software must be clearly marked as such, and if the derived work is
- * incompatible with the protocol description in the RFC file, it must be
- * called by a name other than "ssh" or "Secure Shell".
-
- [Tatu continues]
- * However, I am not implying to give any licenses to any patents or
- * copyrights held by third parties, and the software includes parts that
- * are not under my direct control. As far as I know, all included
- * source code is used in accordance with the relevant license agreements
- * and can be used freely for any purpose (the GNU license being the most
- * restrictive); see below for details.
-
- [However, none of that term is relevant at this point in time. All of
- these restrictively licenced software components which he talks about
- have been removed from OpenSSH, i.e.,
-
- - RSA is no longer included, found in the OpenSSL library
- - IDEA is no longer included, its use is deprecated
- - DES is now external, in the OpenSSL library
- - GMP is no longer used, and instead we call BN code from OpenSSL
- - Zlib is now external, in a library
- - The make-ssh-known-hosts script is no longer included
- - TSS has been removed
- - MD5 is now external, in the OpenSSL library
- - RC4 support has been replaced with ARC4 support from OpenSSL
- - Blowfish is now external, in the OpenSSL library
-
- [The licence continues]
-
- Note that any information and cryptographic algorithms used in this
- software are publicly available on the Internet and at any major
- bookstore, scientific library, and patent office worldwide. More
- information can be found e.g. at "http://www.cs.hut.fi/crypto".
-
- The legal status of this program is some combination of all these
- permissions and restrictions. Use only at your own responsibility.
- You will be responsible for any legal consequences yourself; I am not
- making any claims whether possessing or using this is legal or not in
- your country, and I am not taking any responsibility on your behalf.
-
-
- NO WARRANTY
-
- BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
- OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
- TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
- REPAIR OR CORRECTION.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
- INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
- OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
- TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
- YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
- PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGES.
-
-2)
- The 32-bit CRC compensation attack detector in deattack.c was
- contributed by CORE SDI S.A. under a BSD-style license.
-
- * Cryptographic attack detector for ssh - source code
- *
- * Copyright (c) 1998 CORE SDI S.A., Buenos Aires, Argentina.
- *
- * All rights reserved. Redistribution and use in source and binary
- * forms, with or without modification, are permitted provided that
- * this copyright notice is retained.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES ARE DISCLAIMED. IN NO EVENT SHALL CORE SDI S.A. BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR
- * CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OR MISUSE OF THIS
- * SOFTWARE.
- *
- * Ariel Futoransky &lt;futo@core-sdi.com&gt;
- * &lt;http://www.core-sdi.com&gt;
-
-3)
- ssh-keyscan was contributed by David Mazieres under a BSD-style
- license.
-
- * Copyright 1995, 1996 by David Mazieres &lt;dm@lcs.mit.edu&gt;.
- *
- * Modification and redistribution in source and binary forms is
- * permitted provided that due credit is given to the author and the
- * OpenBSD project by leaving this copyright notice intact.
-
-4)
- The Rijndael implementation by Vincent Rijmen, Antoon Bosselaers
- and Paulo Barreto is in the public domain and distributed
- with the following license:
-
- * @version 3.0 (December 2000)
- *
- * Optimised ANSI C code for the Rijndael cipher (now AES)
- *
- * @author Vincent Rijmen &lt;vincent.rijmen@esat.kuleuven.ac.be&gt;
- * @author Antoon Bosselaers &lt;antoon.bosselaers@esat.kuleuven.ac.be&gt;
- * @author Paulo Barreto &lt;paulo.barreto@terra.com.br&gt;
- *
- * This code is hereby placed in the public domain.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-5)
- One component of the ssh source code is under a 3-clause BSD license,
- held by the University of California, since we pulled these parts from
- original Berkeley code.
-
- * Copyright (c) 1983, 1990, 1992, 1993, 1995
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
-
-6)
- Remaining components of the software are provided under a standard
- 2-term BSD licence with the following names as copyright holders:
-
- Markus Friedl
- Theo de Raadt
- Niels Provos
- Dug Song
- Aaron Campbell
- Damien Miller
- Kevin Steves
- Daniel Kouril
- Wesley Griffin
- Per Allansson
- Nils Nordman
- Simon Wilkinson
-
- Portable OpenSSH additionally includes code from the following copyright
- holders, also under the 2-term BSD license:
-
- Ben Lindstrom
- Tim Rice
- Andre Lucas
- Chris Adams
- Corinna Vinschen
- Cray Inc.
- Denis Parker
- Gert Doering
- Jakob Schlyter
- Jason Downs
- Juha Yrjölä
- Michael Stone
- Networks Associates Technology, Inc.
- Solar Designer
- Todd C. Miller
- Wayne Schroeder
- William Jones
- Darren Tucker
- Sun Microsystems
- The SCO Group
- Daniel Walsh
- Red Hat, Inc
- Simon Vallet / Genoscope
-
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-8) Portable OpenSSH contains the following additional licenses:
-
- a) md5crypt.c, md5crypt.h
-
- * "THE BEER-WARE LICENSE" (Revision 42):
- * &lt;phk@login.dknet.dk&gt; wrote this file. As long as you retain this
- * notice you can do whatever you want with this stuff. If we meet
- * some day, and you think this stuff is worth it, you can buy me a
- * beer in return. Poul-Henning Kamp
-
- b) snprintf replacement
-
- * Copyright Patrick Powell 1995
- * This code is based on code written by Patrick Powell
- * (papowell@astart.com) It may be used for any purpose as long as this
- * notice remains intact on all source code distributions
-
- c) Compatibility code (openbsd-compat)
-
- Apart from the previously mentioned licenses, various pieces of code
- in the openbsd-compat/ subdirectory are licensed as follows:
-
- Some code is licensed under a 3-term BSD license, to the following
- copyright holders:
-
- Todd C. Miller
- Theo de Raadt
- Damien Miller
- Eric P. Allman
- The Regents of the University of California
- Constantin S. Svintsoff
-
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
-
- Some code is licensed under an ISC-style license, to the following
- copyright holders:
-
- Internet Software Consortium.
- Todd C. Miller
- Reyk Floeter
- Chad Mynhier
-
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE
- * FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- Some code is licensed under a MIT-style license to the following
- copyright holders:
-
- Free Software Foundation, Inc.
-
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-
-------
-$OpenBSD: LICENCE,v 1.19 2004/08/30 09:18:08 markus Exp $
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">openssh-server-init-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">openssl-1.0.1h</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.openssl.org/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License openssl:
-
-
- LICENSE ISSUES
- ==============
-
- The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
- the OpenSSL License and the original SSLeay license apply to the toolkit.
- See below for the actual license texts. Actually both licenses are BSD-style
- Open Source licenses. In case of any license issues related to OpenSSL
- please contact openssl-core@openssl.org.
-
- OpenSSL License
- ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">openvpn-2.3.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://openvpn.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">p2p-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pam-1.1.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://fedorahosted.org/linux-pam/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pam_pwdfile-0.99</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://cpbotha.net/pam_pwdfile.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pambase-20101024</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org/proj/en/base/pam/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pango-1.32.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.pango.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2+'>Gentoo Package Stock License LGPL-2+</a></li>
-<li><a href='#LGPL-2'>Gentoo Package Stock License LGPL-2</a></li>
-<li><a href='#FTL'>Gentoo Package Stock License FTL</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">parted-3.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/parted">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">patch-2.6.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/patch/patch.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pax-utils-0.8.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://hardened.gentoo.org/pax-utils.xml">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pciutils-3.1.10</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://mj.ucw.cz/sw/pciutils/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pepper-flash-14.0.0.145</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://git-scm.com/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Google-TOS'>Gentoo Package Stock License Google-TOS</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">perceptualdiff-1.1.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pdiff.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">perf-3.14</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://perf.wiki.kernel.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">permission_broker-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pexpect-2.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pexpect.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License pexpect-2.4/LICENSE:
-
-Free, open source, and all that good stuff.
-Pexpect Copyright (c) 2008 Noah Spurrier
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License pexpect-2.4/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: pexpect
-Version: 2.4
-Summary: Pexpect is a pure Python Expect. It allows easy control of other applications.
-Home-page: http://pexpect.sourceforge.net/
-Author: Noah Spurrier
-Author-email: noah@noah.org
-License: MIT license
-Description: UNKNOWN
-Platform: UNIX
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pixman-0.28.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License pixman-0.28.2/COPYING:
-
-The following is the MIT license, agreed upon by most contributors.
-Copyright holders of new code should use this license statement where
-possible. They may also add themselves to the list below.
-
-/*
- * Copyright 1987, 1988, 1989, 1998 The Open Group
- * Copyright 1987, 1988, 1989 Digital Equipment Corporation
- * Copyright 1999, 2004, 2008 Keith Packard
- * Copyright 2000 SuSE, Inc.
- * Copyright 2000 Keith Packard, member of The XFree86 Project, Inc.
- * Copyright 2004, 2005, 2007, 2008, 2009, 2010 Red Hat, Inc.
- * Copyright 2004 Nicholas Miell
- * Copyright 2005 Lars Knoll &amp; Zack Rusin, Trolltech
- * Copyright 2005 Trolltech AS
- * Copyright 2007 Luca Barbato
- * Copyright 2008 Aaron Plattner, NVIDIA Corporation
- * Copyright 2008 Rodrigo Kumpera
- * Copyright 2008 André Tupinambá
- * Copyright 2008 Mozilla Corporation
- * Copyright 2008 Frederic Plourde
- * Copyright 2009, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2009, 2010 Nokia Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pkcs11-helper-1.07</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.opensc-project.org/pkcs11-helper">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">platform2-0.0.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ply-image-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">popt-1.16</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://rpm5.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License popt-1.16/COPYING:
-
-Copyright (c) 1998 Red Hat Software
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">portage-2.1.11.50</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org/proj/en/portage/index.xml">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">portage-utils-0.53</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org/doc/en/portage-utils.xml">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">powertop-2.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://01.org/powertop/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ppp-2.4.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.samba.org/ppp">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License dhcp/COPYING:
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) 19yy &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License ppp-2.4.5/pppd/plugins/pppoatm/COPYING:
-
-The files ans.c, atm.h, atmres.h, atmsap.h, misc.c, text2atm.c and
-text2qos.c are taken from the linux-atm libraries. These are
-Copyright 1995-2000 EPFL-LRC/ICA, and are licensed under the GNU Lesser
-General Public License.
-
-The file pppoatm.c contains its own copyright notice, and is licensed
-under the GPL.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License ppp-2.4.5/pppd/plugins/radius/COPYRIGHT:
-
-See the respective source files to find out which copyrights apply.
-
-------------------------------------------------------------------------------
-Copyright (C) 2002 Roaring Penguin Software Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies and supporting
-documentation, the name of Roaring Penguin Software Inc. not be used
-in advertising or publicity pertaining to distribution of the program
-without specific prior permission, and notice be given in supporting
-documentation that copying and distribution is by permission of
-Roaring Penguin Software Inc..
-
-Roaring Penguin Software Inc. makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-------------------------------------------------------------------------------
-Copyright (C) 1995,1996,1997,1998 Lars Fenneberg &lt;lf@elemental.net&gt;
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this copyright and
-permission notice appear on all copies and supporting documentation, the
-name of Lars Fenneberg not be used in advertising or publicity pertaining to
-distribution of the program without specific prior permission, and notice be
-given in supporting documentation that copying and distribution is by
-permission of Lars Fenneberg.
-
-Lars Fenneberg makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or implied
-warranty.
-
-------------------------------------------------------------------------------
-Copyright 1992 Livingston Enterprises, Inc.
-Livingston Enterprises, Inc. 6920 Koll Center Parkway Pleasanton, CA 94566
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this copyright
-and permission notice appear on all copies and supporting documentation,
-the name of Livingston Enterprises, Inc. not be used in advertising or
-publicity pertaining to distribution of the program without specific
-prior permission, and notice be given in supporting documentation that
-copying and distribution is by permission of Livingston Enterprises, Inc.
-
-Livingston Enterprises, Inc. makes no representations about the suitability
-of this software for any purpose. It is provided "as is" without express
-or implied warranty.
-------------------------------------------------------------------------------
-[C] The Regents of the University of Michigan and Merit Network, Inc. 1992,
-1993, 1994, 1995 All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided
-that the above copyright notice and this permission notice appear in all
-copies of the software and derivative works or modified versions thereof,
-and that both the copyright notice and this permission and disclaimer
-notice appear in supporting documentation.
-
-THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
-EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE REGENTS OF THE
-UNIVERSITY OF MICHIGAN AND MERIT NETWORK, INC. DO NOT WARRANT THAT THE
-FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET LICENSEE'S REQUIREMENTS OR
-THAT OPERATION WILL BE UNINTERRUPTED OR ERROR FREE. The Regents of the
-University of Michigan and Merit Network, Inc. shall not be liable for any
-special, indirect, incidental or consequential damages with respect to any
-claim by Licensee or any third party arising from use of the software.
-------------------------------------------------------------------------------
-Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991.
-All rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-------------------------------------------------------------------------------
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">procps-3.3.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://procps.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">protobuf-2.3.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/protobuf/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">protobuf-python-2.3.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/protobuf/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">protofiles-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">psmisc-22.20</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://psmisc.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">punybench-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://chromium.googlesource.com/chromiumos/platform/punybench">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pv-1.3.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.ivarch.com/programs/pv.shtml">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License Artistic-2:
-
- The Artistic License 2.0
-
- Copyright (c) 2000-2006, The Perl Foundation.
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-Preamble
-
-This license establishes the terms under which a given free software
-Package may be copied, modified, distributed, and/or redistributed.
-The intent is that the Copyright Holder maintains some artistic
-control over the development of that Package while still keeping the
-Package available as open source and free software.
-
-You are always permitted to make arrangements wholly outside of this
-license directly with the Copyright Holder of a given Package. If the
-terms of this license do not permit the full use that you propose to
-make of the Package, you should contact the Copyright Holder and seek
-a different licensing arrangement.
-
-Definitions
-
- "Copyright Holder" means the individual(s) or organization(s)
- named in the copyright notice for the entire Package.
-
- "Contributor" means any party that has contributed code or other
- material to the Package, in accordance with the Copyright Holder's
- procedures.
-
- "You" and "your" means any person who would like to copy,
- distribute, or modify the Package.
-
- "Package" means the collection of files distributed by the
- Copyright Holder, and derivatives of that collection and/or of
- those files. A given Package may consist of either the Standard
- Version, or a Modified Version.
-
- "Distribute" means providing a copy of the Package or making it
- accessible to anyone else, or in the case of a company or
- organization, to others outside of your company or organization.
-
- "Distributor Fee" means any fee that you charge for Distributing
- this Package or providing support for this Package to another
- party. It does not mean licensing fees.
-
- "Standard Version" refers to the Package if it has not been
- modified, or has been modified only in ways explicitly requested
- by the Copyright Holder.
-
- "Modified Version" means the Package, if it has been changed, and
- such changes were not explicitly requested by the Copyright
- Holder.
-
- "Original License" means this Artistic License as Distributed with
- the Standard Version of the Package, in its current version or as
- it may be modified by The Perl Foundation in the future.
-
- "Source" form means the source code, documentation source, and
- configuration files for the Package.
-
- "Compiled" form means the compiled bytecode, object code, binary,
- or any other form resulting from mechanical transformation or
- translation of the Source form.
-
-
-Permission for Use and Modification Without Distribution
-
-(1) You are permitted to use the Standard Version and create and use
-Modified Versions for any purpose without restriction, provided that
-you do not Distribute the Modified Version.
-
-
-Permissions for Redistribution of the Standard Version
-
-(2) You may Distribute verbatim copies of the Source form of the
-Standard Version of this Package in any medium without restriction,
-either gratis or for a Distributor Fee, provided that you duplicate
-all of the original copyright notices and associated disclaimers. At
-your discretion, such verbatim copies may or may not include a
-Compiled form of the Package.
-
-(3) You may apply any bug fixes, portability changes, and other
-modifications made available from the Copyright Holder. The resulting
-Package will still be considered the Standard Version, and as such
-will be subject to the Original License.
-
-
-Distribution of Modified Versions of the Package as Source
-
-(4) You may Distribute your Modified Version as Source (either gratis
-or for a Distributor Fee, and with or without a Compiled form of the
-Modified Version) provided that you clearly document how it differs
-from the Standard Version, including, but not limited to, documenting
-any non-standard features, executables, or modules, and provided that
-you do at least ONE of the following:
-
- (a) make the Modified Version available to the Copyright Holder
- of the Standard Version, under the Original License, so that the
- Copyright Holder may include your modifications in the Standard
- Version.
-
- (b) ensure that installation of your Modified Version does not
- prevent the user installing or running the Standard Version. In
- addition, the Modified Version must bear a name that is different
- from the name of the Standard Version.
-
- (c) allow anyone who receives a copy of the Modified Version to
- make the Source form of the Modified Version available to others
- under
-
- (i) the Original License or
-
- (ii) a license that permits the licensee to freely copy,
- modify and redistribute the Modified Version using the same
- licensing terms that apply to the copy that the licensee
- received, and requires that the Source form of the Modified
- Version, and of any works derived from it, be made freely
- available in that license fees are prohibited but Distributor
- Fees are allowed.
-
-
-Distribution of Compiled Forms of the Standard Version
-or Modified Versions without the Source
-
-(5) You may Distribute Compiled forms of the Standard Version without
-the Source, provided that you include complete instructions on how to
-get the Source of the Standard Version. Such instructions must be
-valid at the time of your distribution. If these instructions, at any
-time while you are carrying out such distribution, become invalid, you
-must provide new instructions on demand or cease further distribution.
-If you provide valid instructions or cease distribution within thirty
-days after you become aware that the instructions are invalid, then
-you do not forfeit any of your rights under this license.
-
-(6) You may Distribute a Modified Version in Compiled form without
-the Source, provided that you comply with Section 4 with respect to
-the Source of the Modified Version.
-
-
-Aggregating or Linking the Package
-
-(7) You may aggregate the Package (either the Standard Version or
-Modified Version) with other packages and Distribute the resulting
-aggregation provided that you do not charge a licensing fee for the
-Package. Distributor Fees are permitted, and licensing fees for other
-components in the aggregation are permitted. The terms of this license
-apply to the use and Distribution of the Standard or Modified Versions
-as included in the aggregation.
-
-(8) You are permitted to link Modified and Standard Versions with
-other works, to embed the Package in a larger work of your own, or to
-build stand-alone binary or bytecode versions of applications that
-include the Package, and Distribute the result without restriction,
-provided the result does not expose a direct interface to the Package.
-
-
-Items That are Not Considered Part of a Modified Version
-
-(9) Works (including, but not limited to, modules and scripts) that
-merely extend or make use of the Package, do not, by themselves, cause
-the Package to be a Modified Version. In addition, such works are not
-considered parts of the Package itself, and are not subject to the
-terms of this license.
-
-
-General Provisions
-
-(10) Any use, modification, and distribution of the Standard or
-Modified Versions is governed by this Artistic License. By using,
-modifying or distributing the Package, you accept this license. Do not
-use, modify, or distribute the Package, if you do not accept this
-license.
-
-(11) If your Modified Version has been derived from a Modified
-Version made by someone other than you, you are nevertheless required
-to ensure that your Modified Version complies with the requirements of
-this license.
-
-(12) This license does not grant you the right to use any trademark,
-service mark, tradename, or logo of the Copyright Holder.
-
-(13) This license includes the non-exclusive, worldwide,
-free-of-charge patent license to make, have made, use, offer to sell,
-sell, import and otherwise transfer the Package with respect to any
-patent claims licensable by the Copyright Holder that are necessarily
-infringed by the Package. If you institute patent litigation
-(including a cross-claim or counterclaim) against any party alleging
-that the Package constitutes direct or contributory patent
-infringement, then this Artistic License to you shall terminate on the
-date that such litigation is filed.
-
-(14) Disclaimer of Warranty:
-THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
-IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
-NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
-LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pycairo-1.10.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://cairographics.org/pycairo/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#LGPL-3'>Gentoo Package Stock License LGPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pygobject-2.18.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.pygtk.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pygtk-2.14.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.pygtk.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pyserial-2.5_rc2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pyserial.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License PYTHON:
-
-HISTORY OF THE SOFTWARE
-=======================
-
-Python was created in the early 1990s by Guido van Rossum at Stichting
-Mathematisch Centrum (CWI) in the Netherlands as a successor of a
-language called ABC. Guido is Python's principal author, although it
-includes many contributions from others. The last version released
-from CWI was Python 1.2. In 1995, Guido continued his work on Python
-at the Corporation for National Research Initiatives (CNRI) in Reston,
-Virginia where he released several versions of the software. Python
-1.6 was the last of the versions released by CNRI. In 2000, Guido and
-the Python core developement team moved to BeOpen.com to form the
-BeOpen PythonLabs team (www.pythonlabs.com). Python 2.0 is the first
-release from PythonLabs. Thanks to the many outside volunteers who
-have worked under Guido's direction to make this release possible.
-
-
-
-BEOPEN.COM TERMS AND CONDITIONS FOR PYTHON 2.0
-==============================================
-
-BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
------------------------------------------------------
-
-1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
-office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
-Individual or Organization ("Licensee") accessing and otherwise using
-this software in source or binary form and its associated
-documentation ("the Software").
-
-2. Subject to the terms and conditions of this BeOpen Python License
-Agreement, BeOpen hereby grants Licensee a non-exclusive,
-royalty-free, world-wide license to reproduce, analyze, test, perform
-and/or display publicly, prepare derivative works, distribute, and
-otherwise use the Software alone or in any derivative version,
-provided, however, that the BeOpen Python License is retained in the
-Software, alone or in any derivative version prepared by Licensee.
-
-3. BeOpen is making the Software available to Licensee on an "AS IS"
-basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
-SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
-AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
-DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-5. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-6. This License Agreement shall be governed by and interpreted in all
-respects by the law of the State of California, excluding conflict of
-law provisions. Nothing in this License Agreement shall be deemed to
-create any relationship of agency, partnership, or joint venture
-between BeOpen and Licensee. This License Agreement does not grant
-permission to use BeOpen trademarks or trade names in a trademark
-sense to endorse or promote products or services of Licensee, or any
-third party. As an exception, the "BeOpen Python" logos available at
-http://www.pythonlabs.com/logos.html may be used according to the
-permissions granted on that web page.
-
-7. By copying, installing or otherwise using the software, Licensee
-agrees to be bound by the terms and conditions of this License
-Agreement.
-
-
-CNRI OPEN SOURCE LICENSE AGREEMENT
-----------------------------------
-
-Python 1.6 CNRI OPEN SOURCE LICENSE AGREEMENT
-
-IMPORTANT: PLEASE READ THE FOLLOWING AGREEMENT CAREFULLY. BY CLICKING
-ON "ACCEPT" WHERE INDICATED BELOW, OR BY COPYING, INSTALLING OR
-OTHERWISE USING PYTHON 1.6 SOFTWARE, YOU ARE DEEMED TO HAVE AGREED TO
-THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT.
-
-1. This LICENSE AGREEMENT is between the Corporation for National
-Research Initiatives, having an office at 1895 Preston White Drive,
-Reston, VA 20191 ("CNRI"), and the Individual or Organization
-("Licensee") accessing and otherwise using Python 1.6 software in
-source or binary form and its associated documentation, as released at
-the www.python.org Internet site on September 5, 2000 ("Python 1.6").
-
-2. Subject to the terms and conditions of this License Agreement, CNRI
-hereby grants Licensee a nonexclusive, royalty-free, world-wide
-license to reproduce, analyze, test, perform and/or display publicly,
-prepare derivative works, distribute, and otherwise use Python 1.6
-alone or in any derivative version, provided, however, that CNRI's
-License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
-1995-2000 Corporation for National Research Initiatives; All Rights
-Reserved" are retained in Python 1.6 alone or in any derivative
-version prepared by
-
-Licensee. Alternately, in lieu of CNRI's License Agreement, Licensee
-may substitute the following text (omitting the quotes): "Python 1.6
-is made available subject to the terms and conditions in CNRI's
-License Agreement. This Agreement together with Python 1.6 may be
-located on the Internet using the following unique, persistent
-identifier (known as a handle): 1895.22/1012. This Agreement may also
-be obtained from a proxy server on the Internet using the following
-URL: http://hdl.handle.net/1895.22/1012".
-
-3. In the event Licensee prepares a derivative work that is based on
-or incorporates Python 1.6 or any part thereof, and wants to make the
-derivative work available to others as provided herein, then Licensee
-hereby agrees to include in any such work a brief summary of the
-changes made to Python 1.6.
-
-4. CNRI is making Python 1.6 available to Licensee on an "AS IS"
-basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6 WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-1.6 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A
-RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6, OR
-ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-7. This License Agreement shall be governed by and interpreted in all
-respects by the law of the State of Virginia, excluding conflict of
-law provisions. Nothing in this License Agreement shall be deemed to
-create any relationship of agency, partnership, or joint venture
-between CNRI and Licensee. This License Agreement does not grant
-permission to use CNRI trademarks or trade name in a trademark sense
-to endorse or promote products or services of Licensee, or any third
-party.
-
-8. By clicking on the "ACCEPT" button where indicated, or by copying,
-installing or otherwise using Python 1.6, Licensee agrees to be bound
-by the terms and conditions of this License Agreement.
-
-ACCEPT
-
-
-CWI PERMISSIONS STATEMENT AND DISCLAIMER
-----------------------------------------
-
-Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
-The Netherlands. All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">python-2.7.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.python.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License Python-2.7.3/Doc/license.rst:
-
-.. highlightlang:: none
-
-.. _history-and-license:
-
-*******************
-History and License
-*******************
-
-
-History of the software
-=======================
-
-Python was created in the early 1990s by Guido van Rossum at Stichting
-Mathematisch Centrum (CWI, see http://www.cwi.nl/) in the Netherlands as a
-successor of a language called ABC. Guido remains Python's principal author,
-although it includes many contributions from others.
-
-In 1995, Guido continued his work on Python at the Corporation for National
-Research Initiatives (CNRI, see http://www.cnri.reston.va.us/) in Reston,
-Virginia where he released several versions of the software.
-
-In May 2000, Guido and the Python core development team moved to BeOpen.com to
-form the BeOpen PythonLabs team. In October of the same year, the PythonLabs
-team moved to Digital Creations (now Zope Corporation; see
-http://www.zope.com/). In 2001, the Python Software Foundation (PSF, see
-http://www.python.org/psf/) was formed, a non-profit organization created
-specifically to own Python-related Intellectual Property. Zope Corporation is a
-sponsoring member of the PSF.
-
-All Python releases are Open Source (see http://www.opensource.org/ for the Open
-Source Definition). Historically, most, but not all, Python releases have also
-been GPL-compatible; the table below summarizes the various releases.
-
-+----------------+--------------+-----------+------------+-----------------+
-| Release | Derived from | Year | Owner | GPL compatible? |
-+================+==============+===========+============+=================+
-| 0.9.0 thru 1.2 | n/a | 1991-1995 | CWI | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 1.3 thru 1.5.2 | 1.2 | 1995-1999 | CNRI | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 1.6 | 1.5.2 | 2000 | CNRI | no |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.0 | 1.6 | 2000 | BeOpen.com | no |
-+----------------+--------------+-----------+------------+-----------------+
-| 1.6.1 | 1.6 | 2001 | CNRI | no |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.1 | 2.0+1.6.1 | 2001 | PSF | no |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.0.1 | 2.0+1.6.1 | 2001 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.1.1 | 2.1+2.0.1 | 2001 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.2 | 2.1.1 | 2001 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.1.2 | 2.1.1 | 2002 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.1.3 | 2.1.2 | 2002 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.2.1 | 2.2 | 2002 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.2.2 | 2.2.1 | 2002 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.2.3 | 2.2.2 | 2002-2003 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.3 | 2.2.2 | 2002-2003 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.3.1 | 2.3 | 2002-2003 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.3.2 | 2.3.1 | 2003 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.3.3 | 2.3.2 | 2003 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.3.4 | 2.3.3 | 2004 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.3.5 | 2.3.4 | 2005 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.4 | 2.3 | 2004 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.4.1 | 2.4 | 2005 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.4.2 | 2.4.1 | 2005 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.4.3 | 2.4.2 | 2006 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.4.4 | 2.4.3 | 2006 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.5 | 2.4 | 2006 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.5.1 | 2.5 | 2007 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.5.2 | 2.5.1 | 2008 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.5.3 | 2.5.2 | 2008 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.6 | 2.5 | 2008 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.6.1 | 2.6 | 2008 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.6.2 | 2.6.1 | 2009 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.6.3 | 2.6.2 | 2009 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.6.4 | 2.6.3 | 2010 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-| 2.7 | 2.6 | 2010 | PSF | yes |
-+----------------+--------------+-----------+------------+-----------------+
-
-.. note::
-
- GPL-compatible doesn't mean that we're distributing Python under the GPL. All
- Python licenses, unlike the GPL, let you distribute a modified version without
- making your changes open source. The GPL-compatible licenses make it possible to
- combine Python with other software that is released under the GPL; the others
- don't.
-
-Thanks to the many outside volunteers who have worked under Guido's direction to
-make these releases possible.
-
-
-Terms and conditions for accessing or otherwise using Python
-============================================================
-
-
-.. centered:: PSF LICENSE AGREEMENT FOR PYTHON |release|
-
-#. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and
- the Individual or Organization ("Licensee") accessing and otherwise using Python
- |release| software in source or binary form and its associated documentation.
-
-#. Subject to the terms and conditions of this License Agreement, PSF hereby
- grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
- analyze, test, perform and/or display publicly, prepare derivative works,
- distribute, and otherwise use Python |release| alone or in any derivative
- version, provided, however, that PSF's License Agreement and PSF's notice of
- copyright, i.e., "Copyright © 2001-2012 Python Software Foundation; All Rights
- Reserved" are retained in Python |release| alone or in any derivative version
- prepared by Licensee.
-
-#. In the event Licensee prepares a derivative work that is based on or
- incorporates Python |release| or any part thereof, and wants to make the
- derivative work available to others as provided herein, then Licensee hereby
- agrees to include in any such work a brief summary of the changes made to Python
- |release|.
-
-#. PSF is making Python |release| available to Licensee on an "AS IS" basis.
- PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF
- EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR
- WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
- USE OF PYTHON |release| WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
-
-#. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON |release|
- FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF
- MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON |release|, OR ANY DERIVATIVE
- THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-#. This License Agreement will automatically terminate upon a material breach of
- its terms and conditions.
-
-#. Nothing in this License Agreement shall be deemed to create any relationship
- of agency, partnership, or joint venture between PSF and Licensee. This License
- Agreement does not grant permission to use PSF trademarks or trade name in a
- trademark sense to endorse or promote products or services of Licensee, or any
- third party.
-
-#. By copying, installing or otherwise using Python |release|, Licensee agrees
- to be bound by the terms and conditions of this License Agreement.
-
-
-.. centered:: BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
-
-
-.. centered:: BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
-
-#. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an office at
- 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization
- ("Licensee") accessing and otherwise using this software in source or binary
- form and its associated documentation ("the Software").
-
-#. Subject to the terms and conditions of this BeOpen Python License Agreement,
- BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license
- to reproduce, analyze, test, perform and/or display publicly, prepare derivative
- works, distribute, and otherwise use the Software alone or in any derivative
- version, provided, however, that the BeOpen Python License is retained in the
- Software, alone or in any derivative version prepared by Licensee.
-
-#. BeOpen is making the Software available to Licensee on an "AS IS" basis.
- BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF
- EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR
- WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
- USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
-
-#. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR
- ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING,
- MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF
- ADVISED OF THE POSSIBILITY THEREOF.
-
-#. This License Agreement will automatically terminate upon a material breach of
- its terms and conditions.
-
-#. This License Agreement shall be governed by and interpreted in all respects
- by the law of the State of California, excluding conflict of law provisions.
- Nothing in this License Agreement shall be deemed to create any relationship of
- agency, partnership, or joint venture between BeOpen and Licensee. This License
- Agreement does not grant permission to use BeOpen trademarks or trade names in a
- trademark sense to endorse or promote products or services of Licensee, or any
- third party. As an exception, the "BeOpen Python" logos available at
- http://www.pythonlabs.com/logos.html may be used according to the permissions
- granted on that web page.
-
-#. By copying, installing or otherwise using the software, Licensee agrees to be
- bound by the terms and conditions of this License Agreement.
-
-
-.. centered:: CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
-
-#. This LICENSE AGREEMENT is between the Corporation for National Research
- Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191
- ("CNRI"), and the Individual or Organization ("Licensee") accessing and
- otherwise using Python 1.6.1 software in source or binary form and its
- associated documentation.
-
-#. Subject to the terms and conditions of this License Agreement, CNRI hereby
- grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
- analyze, test, perform and/or display publicly, prepare derivative works,
- distribute, and otherwise use Python 1.6.1 alone or in any derivative version,
- provided, however, that CNRI's License Agreement and CNRI's notice of copyright,
- i.e., "Copyright © 1995-2001 Corporation for National Research Initiatives; All
- Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version
- prepared by Licensee. Alternately, in lieu of CNRI's License Agreement,
- Licensee may substitute the following text (omitting the quotes): "Python 1.6.1
- is made available subject to the terms and conditions in CNRI's License
- Agreement. This Agreement together with Python 1.6.1 may be located on the
- Internet using the following unique, persistent identifier (known as a handle):
- 1895.22/1013. This Agreement may also be obtained from a proxy server on the
- Internet using the following URL: http://hdl.handle.net/1895.22/1013."
-
-#. In the event Licensee prepares a derivative work that is based on or
- incorporates Python 1.6.1 or any part thereof, and wants to make the derivative
- work available to others as provided herein, then Licensee hereby agrees to
- include in any such work a brief summary of the changes made to Python 1.6.1.
-
-#. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" basis. CNRI
- MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE,
- BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY
- OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF
- PYTHON 1.6.1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
-
-#. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 1.6.1 FOR
- ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF
- MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, OR ANY DERIVATIVE
- THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-#. This License Agreement will automatically terminate upon a material breach of
- its terms and conditions.
-
-#. This License Agreement shall be governed by the federal intellectual property
- law of the United States, including without limitation the federal copyright
- law, and, to the extent such U.S. federal law does not apply, by the law of the
- Commonwealth of Virginia, excluding Virginia's conflict of law provisions.
- Notwithstanding the foregoing, with regard to derivative works based on Python
- 1.6.1 that incorporate non-separable material that was previously distributed
- under the GNU General Public License (GPL), the law of the Commonwealth of
- Virginia shall govern this License Agreement only as to issues arising under or
- with respect to Paragraphs 4, 5, and 7 of this License Agreement. Nothing in
- this License Agreement shall be deemed to create any relationship of agency,
- partnership, or joint venture between CNRI and Licensee. This License Agreement
- does not grant permission to use CNRI trademarks or trade name in a trademark
- sense to endorse or promote products or services of Licensee, or any third
- party.
-
-#. By clicking on the "ACCEPT" button where indicated, or by copying, installing
- or otherwise using Python 1.6.1, Licensee agrees to be bound by the terms and
- conditions of this License Agreement.
-
-
-.. centered:: ACCEPT
-
-
-.. centered:: CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
-
-Copyright © 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The
-Netherlands. All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and that
-the name of Stichting Mathematisch Centrum or CWI not be used in advertising or
-publicity pertaining to distribution of the software without specific, written
-prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Licenses and Acknowledgements for Incorporated Software
-=======================================================
-
-This section is an incomplete, but growing list of licenses and acknowledgements
-for third-party software incorporated in the Python distribution.
-
-
-Mersenne Twister
-----------------
-
-The :mod:`_random` module includes code based on a download from
-http://www.math.keio.ac.jp/ matumoto/MT2002/emt19937ar.html. The following are
-the verbatim comments from the original code::
-
- A C-program for MT19937, with initialization improved 2002/1/26.
- Coded by Takuji Nishimura and Makoto Matsumoto.
-
- Before using, initialize the state by using init_genrand(seed)
- or init_by_array(init_key, key_length).
-
- Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- 3. The names of its contributors may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
- Any feedback is very welcome.
- http://www.math.keio.ac.jp/matumoto/emt.html
- email: matumoto@math.keio.ac.jp
-
-
-Sockets
--------
-
-The :mod:`socket` module uses the functions, :func:`getaddrinfo`, and
-:func:`getnameinfo`, which are coded in separate source files from the WIDE
-Project, http://www.wide.ad.jp/. ::
-
- Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
- GAI_ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
- FOR GAI_ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON GAI_ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN GAI_ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-
-Floating point exception control
---------------------------------
-
-The source for the :mod:`fpectl` module includes the following notice::
-
- ---------------------------------------------------------------------
- / Copyright (c) 1996. \
- | The Regents of the University of California. |
- | All rights reserved. |
- | |
- | Permission to use, copy, modify, and distribute this software for |
- | any purpose without fee is hereby granted, provided that this en- |
- | tire notice is included in all copies of any software which is or |
- | includes a copy or modification of this software and in all |
- | copies of the supporting documentation for such software. |
- | |
- | This work was produced at the University of California, Lawrence |
- | Livermore National Laboratory under contract no. W-7405-ENG-48 |
- | between the U.S. Department of Energy and The Regents of the |
- | University of California for the operation of UC LLNL. |
- | |
- | DISCLAIMER |
- | |
- | This software was prepared as an account of work sponsored by an |
- | agency of the United States Government. Neither the United States |
- | Government nor the University of California nor any of their em- |
- | ployees, makes any warranty, express or implied, or assumes any |
- | liability or responsibility for the accuracy, completeness, or |
- | usefulness of any information, apparatus, product, or process |
- | disclosed, or represents that its use would not infringe |
- | privately-owned rights. Reference herein to any specific commer- |
- | cial products, process, or service by trade name, trademark, |
- | manufacturer, or otherwise, does not necessarily constitute or |
- | imply its endorsement, recommendation, or favoring by the United |
- | States Government or the University of California. The views and |
- | opinions of authors expressed herein do not necessarily state or |
- | reflect those of the United States Government or the University |
- | of California, and shall not be used for advertising or product |
- \ endorsement purposes. /
- ---------------------------------------------------------------------
-
-
-MD5 message digest algorithm
-----------------------------
-
-The source code for the :mod:`md5` module contains the following notice::
-
- Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved.
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- L. Peter Deutsch
- ghost@aladdin.com
-
- Independent implementation of MD5 (RFC 1321).
-
- This code implements the MD5 Algorithm defined in RFC 1321, whose
- text is available at
- http://www.ietf.org/rfc/rfc1321.txt
- The code is derived from the text of the RFC, including the test suite
- (section A.5) but excluding the rest of Appendix A. It does not include
- any code or documentation that is identified in the RFC as being
- copyrighted.
-
- The original and principal author of md5.h is L. Peter Deutsch
- &lt;ghost@aladdin.com&gt;. Other authors are noted in the change history
- that follows (in reverse chronological order):
-
- 2002-04-13 lpd Removed support for non-ANSI compilers; removed
- references to Ghostscript; clarified derivation from RFC 1321;
- now handles byte order either statically or dynamically.
- 1999-11-04 lpd Edited comments slightly for automatic TOC extraction.
- 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5);
- added conditionalization for C++ compilation from Martin
- Purschke &lt;purschke@bnl.gov&gt;.
- 1999-05-03 lpd Original version.
-
-
-Asynchronous socket services
-----------------------------
-
-The :mod:`asynchat` and :mod:`asyncore` modules contain the following notice::
-
- Copyright 1996 by Sam Rushing
-
- All Rights Reserved
-
- Permission to use, copy, modify, and distribute this software and
- its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that copyright notice and this permission
- notice appear in supporting documentation, and that the name of Sam
- Rushing not be used in advertising or publicity pertaining to
- distribution of the software without specific, written prior
- permission.
-
- SAM RUSHING DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
- NO EVENT SHALL SAM RUSHING BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
- OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Cookie management
------------------
-
-The :mod:`Cookie` module contains the following notice::
-
- Copyright 2000 by Timothy O'Malley &lt;timo@alum.mit.edu&gt;
-
- All Rights Reserved
-
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that copyright notice and this permission
- notice appear in supporting documentation, and that the name of
- Timothy O'Malley not be used in advertising or publicity
- pertaining to distribution of the software without specific, written
- prior permission.
-
- Timothy O'Malley DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS, IN NO EVENT SHALL Timothy O'Malley BE LIABLE FOR
- ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-
-
-Execution tracing
------------------
-
-The :mod:`trace` module contains the following notice::
-
- portions copyright 2001, Autonomous Zones Industries, Inc., all rights...
- err... reserved and offered to the public under the terms of the
- Python 2.2 license.
- Author: Zooko O'Whielacronx
- http://zooko.com/
- mailto:zooko@zooko.com
-
- Copyright 2000, Mojam Media, Inc., all rights reserved.
- Author: Skip Montanaro
-
- Copyright 1999, Bioreason, Inc., all rights reserved.
- Author: Andrew Dalke
-
- Copyright 1995-1997, Automatrix, Inc., all rights reserved.
- Author: Skip Montanaro
-
- Copyright 1991-1995, Stichting Mathematisch Centrum, all rights reserved.
-
-
- Permission to use, copy, modify, and distribute this Python software and
- its associated documentation for any purpose without fee is hereby
- granted, provided that the above copyright notice appears in all copies,
- and that both that copyright notice and this permission notice appear in
- supporting documentation, and that the name of neither Automatrix,
- Bioreason or Mojam Media be used in advertising or publicity pertaining to
- distribution of the software without specific, written prior permission.
-
-
-UUencode and UUdecode functions
--------------------------------
-
-The :mod:`uu` module contains the following notice::
-
- Copyright 1994 by Lance Ellinghouse
- Cathedral City, California Republic, United States of America.
- All Rights Reserved
- Permission to use, copy, modify, and distribute this software and its
- documentation for any purpose and without fee is hereby granted,
- provided that the above copyright notice appear in all copies and that
- both that copyright notice and this permission notice appear in
- supporting documentation, and that the name of Lance Ellinghouse
- not be used in advertising or publicity pertaining to distribution
- of the software without specific, written prior permission.
- LANCE ELLINGHOUSE DISCLAIMS ALL WARRANTIES WITH REGARD TO
- THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS, IN NO EVENT SHALL LANCE ELLINGHOUSE CENTRUM BE LIABLE
- FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- Modified by Jack Jansen, CWI, July 1995:
- - Use binascii module to do the actual line-by-line conversion
- between ascii and binary. This results in a 1000-fold speedup. The C
- version is still 5 times faster, though.
- - Arguments more compliant with Python standard
-
-
-XML Remote Procedure Calls
---------------------------
-
-The :mod:`xmlrpclib` module contains the following notice::
-
- The XML-RPC client interface is
-
- Copyright (c) 1999-2002 by Secret Labs AB
- Copyright (c) 1999-2002 by Fredrik Lundh
-
- By obtaining, using, and/or copying this software and/or its
- associated documentation, you agree that you have read, understood,
- and will comply with the following terms and conditions:
-
- Permission to use, copy, modify, and distribute this software and
- its associated documentation for any purpose and without fee is
- hereby granted, provided that the above copyright notice appears in
- all copies, and that both that copyright notice and this permission
- notice appear in supporting documentation, and that the name of
- Secret Labs AB or the author not be used in advertising or publicity
- pertaining to distribution of the software without specific, written
- prior permission.
-
- SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
- TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT-
- ABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR
- BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
- DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- OF THIS SOFTWARE.
-
-
-test_epoll
-----------
-
-The :mod:`test_epoll` contains the following notice::
-
- Copyright (c) 2001-2006 Twisted Matrix Laboratories.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Select kqueue
--------------
-
-The :mod:`select` and contains the following notice for the kqueue interface::
-
- Copyright (c) 2000 Doug White, 2006 James Knight, 2007 Christian Heimes
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-
-strtod and dtoa
----------------
-
-The file :file:`Python/dtoa.c`, which supplies C functions dtoa and
-strtod for conversion of C doubles to and from strings, is derived
-from the file of the same name by David M. Gay, currently available
-from http://www.netlib.org/fp/. The original file, as retrieved on
-March 16, 2009, contains the following copyright and licensing
-notice::
-
- /****************************************************************
- *
- * The author of this software is David M. Gay.
- *
- * Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose without fee is hereby granted, provided that this entire notice
- * is included in all copies of any software which is or includes a copy
- * or modification of this software and in all copies of the supporting
- * documentation for such software.
- *
- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
- * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- ***************************************************************/
-
-
-OpenSSL
--------
-
-The modules :mod:`hashlib`, :mod:`posix`, :mod:`ssl`, :mod:`crypt` use
-the OpenSSL library for added performance if made available by the
-operating system. Additionally, the Windows installers for Python
-include a copy of the OpenSSL libraries, so we include a copy of the
-OpenSSL license here::
-
-
- LICENSE ISSUES
- ==============
-
- The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
- the OpenSSL License and the original SSLeay license apply to the toolkit.
- See below for the actual license texts. Actually both licenses are BSD-style
- Open Source licenses. In case of any license issues related to OpenSSL
- please contact openssl-core@openssl.org.
-
- OpenSSL License
- ---------------
-
- /* ====================================================================
- * Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
- /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-
-expat
------
-
-The :mod:`pyexpat` extension is built using an included copy of the expat
-sources unless the build is configured ``--with-system-expat``::
-
- Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
- and Clark Cooper
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-libffi
-------
-
-The :mod:`_ctypes` extension is built using an included copy of the libffi
-sources unless the build is configured ``--with-system-libffi``::
-
- Copyright (c) 1996-2008 Red Hat, Inc and others.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
-
-
-zlib
-----
-
-The :mod:`zlib` extension is built using an included copy of the zlib
-sources if the zlib version found on the system is too old to be
-used for the build::
-
- Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- jloup@gzip.org madler@alumni.caltech.edu
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Python-2.7.3/LICENSE:
-
-A. HISTORY OF THE SOFTWARE
-==========================
-
-Python was created in the early 1990s by Guido van Rossum at Stichting
-Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
-as a successor of a language called ABC. Guido remains Python's
-principal author, although it includes many contributions from others.
-
-In 1995, Guido continued his work on Python at the Corporation for
-National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
-in Reston, Virginia where he released several versions of the
-software.
-
-In May 2000, Guido and the Python core development team moved to
-BeOpen.com to form the BeOpen PythonLabs team. In October of the same
-year, the PythonLabs team moved to Digital Creations (now Zope
-Corporation, see http://www.zope.com). In 2001, the Python Software
-Foundation (PSF, see http://www.python.org/psf/) was formed, a
-non-profit organization created specifically to own Python-related
-Intellectual Property. Zope Corporation is a sponsoring member of
-the PSF.
-
-All Python releases are Open Source (see http://www.opensource.org for
-the Open Source Definition). Historically, most, but not all, Python
-releases have also been GPL-compatible; the table below summarizes
-the various releases.
-
- Release Derived Year Owner GPL-
- from compatible? (1)
-
- 0.9.0 thru 1.2 1991-1995 CWI yes
- 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
- 1.6 1.5.2 2000 CNRI no
- 2.0 1.6 2000 BeOpen.com no
- 1.6.1 1.6 2001 CNRI yes (2)
- 2.1 2.0+1.6.1 2001 PSF no
- 2.0.1 2.0+1.6.1 2001 PSF yes
- 2.1.1 2.1+2.0.1 2001 PSF yes
- 2.2 2.1.1 2001 PSF yes
- 2.1.2 2.1.1 2002 PSF yes
- 2.1.3 2.1.2 2002 PSF yes
- 2.2.1 2.2 2002 PSF yes
- 2.2.2 2.2.1 2002 PSF yes
- 2.2.3 2.2.2 2003 PSF yes
- 2.3 2.2.2 2002-2003 PSF yes
- 2.3.1 2.3 2002-2003 PSF yes
- 2.3.2 2.3.1 2002-2003 PSF yes
- 2.3.3 2.3.2 2002-2003 PSF yes
- 2.3.4 2.3.3 2004 PSF yes
- 2.3.5 2.3.4 2005 PSF yes
- 2.4 2.3 2004 PSF yes
- 2.4.1 2.4 2005 PSF yes
- 2.4.2 2.4.1 2005 PSF yes
- 2.4.3 2.4.2 2006 PSF yes
- 2.4.4 2.4.3 2006 PSF yes
- 2.5 2.4 2006 PSF yes
- 2.5.1 2.5 2007 PSF yes
- 2.5.2 2.5.1 2008 PSF yes
- 2.5.3 2.5.2 2008 PSF yes
- 2.6 2.5 2008 PSF yes
- 2.6.1 2.6 2008 PSF yes
- 2.6.2 2.6.1 2009 PSF yes
- 2.6.3 2.6.2 2009 PSF yes
- 2.6.4 2.6.3 2009 PSF yes
- 2.6.5 2.6.4 2010 PSF yes
- 2.7 2.6 2010 PSF yes
-
-Footnotes:
-
-(1) GPL-compatible doesn't mean that we're distributing Python under
- the GPL. All Python licenses, unlike the GPL, let you distribute
- a modified version without making your changes open source. The
- GPL-compatible licenses make it possible to combine Python with
- other software that is released under the GPL; the others don't.
-
-(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
- because its license has a choice of law clause. According to
- CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
- is "not incompatible" with the GPL.
-
-Thanks to the many outside volunteers who have worked under Guido's
-direction to make these releases possible.
-
-
-B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
-===============================================================
-
-PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
---------------------------------------------
-
-1. This LICENSE AGREEMENT is between the Python Software Foundation
-("PSF"), and the Individual or Organization ("Licensee") accessing and
-otherwise using this software ("Python") in source or binary form and
-its associated documentation.
-
-2. Subject to the terms and conditions of this License Agreement, PSF hereby
-grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
-analyze, test, perform and/or display publicly, prepare derivative works,
-distribute, and otherwise use Python alone or in any derivative version,
-provided, however, that PSF's License Agreement and PSF's notice of copyright,
-i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python
-alone or in any derivative version prepared by Licensee.
-
-3. In the event Licensee prepares a derivative work that is based on
-or incorporates Python or any part thereof, and wants to make
-the derivative work available to others as provided herein, then
-Licensee hereby agrees to include in any such work a brief summary of
-the changes made to Python.
-
-4. PSF is making Python available to Licensee on an "AS IS"
-basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
-A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
-OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-7. Nothing in this License Agreement shall be deemed to create any
-relationship of agency, partnership, or joint venture between PSF and
-Licensee. This License Agreement does not grant permission to use PSF
-trademarks or trade name in a trademark sense to endorse or promote
-products or services of Licensee, or any third party.
-
-8. By copying, installing or otherwise using Python, Licensee
-agrees to be bound by the terms and conditions of this License
-Agreement.
-
-
-BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
--------------------------------------------
-
-BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
-
-1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
-office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
-Individual or Organization ("Licensee") accessing and otherwise using
-this software in source or binary form and its associated
-documentation ("the Software").
-
-2. Subject to the terms and conditions of this BeOpen Python License
-Agreement, BeOpen hereby grants Licensee a non-exclusive,
-royalty-free, world-wide license to reproduce, analyze, test, perform
-and/or display publicly, prepare derivative works, distribute, and
-otherwise use the Software alone or in any derivative version,
-provided, however, that the BeOpen Python License is retained in the
-Software, alone or in any derivative version prepared by Licensee.
-
-3. BeOpen is making the Software available to Licensee on an "AS IS"
-basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
-SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
-AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
-DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-5. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-6. This License Agreement shall be governed by and interpreted in all
-respects by the law of the State of California, excluding conflict of
-law provisions. Nothing in this License Agreement shall be deemed to
-create any relationship of agency, partnership, or joint venture
-between BeOpen and Licensee. This License Agreement does not grant
-permission to use BeOpen trademarks or trade names in a trademark
-sense to endorse or promote products or services of Licensee, or any
-third party. As an exception, the "BeOpen Python" logos available at
-http://www.pythonlabs.com/logos.html may be used according to the
-permissions granted on that web page.
-
-7. By copying, installing or otherwise using the software, Licensee
-agrees to be bound by the terms and conditions of this License
-Agreement.
-
-
-CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
----------------------------------------
-
-1. This LICENSE AGREEMENT is between the Corporation for National
-Research Initiatives, having an office at 1895 Preston White Drive,
-Reston, VA 20191 ("CNRI"), and the Individual or Organization
-("Licensee") accessing and otherwise using Python 1.6.1 software in
-source or binary form and its associated documentation.
-
-2. Subject to the terms and conditions of this License Agreement, CNRI
-hereby grants Licensee a nonexclusive, royalty-free, world-wide
-license to reproduce, analyze, test, perform and/or display publicly,
-prepare derivative works, distribute, and otherwise use Python 1.6.1
-alone or in any derivative version, provided, however, that CNRI's
-License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
-1995-2001 Corporation for National Research Initiatives; All Rights
-Reserved" are retained in Python 1.6.1 alone or in any derivative
-version prepared by Licensee. Alternately, in lieu of CNRI's License
-Agreement, Licensee may substitute the following text (omitting the
-quotes): "Python 1.6.1 is made available subject to the terms and
-conditions in CNRI's License Agreement. This Agreement together with
-Python 1.6.1 may be located on the Internet using the following
-unique, persistent identifier (known as a handle): 1895.22/1013. This
-Agreement may also be obtained from a proxy server on the Internet
-using the following URL: http://hdl.handle.net/1895.22/1013".
-
-3. In the event Licensee prepares a derivative work that is based on
-or incorporates Python 1.6.1 or any part thereof, and wants to make
-the derivative work available to others as provided herein, then
-Licensee hereby agrees to include in any such work a brief summary of
-the changes made to Python 1.6.1.
-
-4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
-basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
-A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
-OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-7. This License Agreement shall be governed by the federal
-intellectual property law of the United States, including without
-limitation the federal copyright law, and, to the extent such
-U.S. federal law does not apply, by the law of the Commonwealth of
-Virginia, excluding Virginia's conflict of law provisions.
-Notwithstanding the foregoing, with regard to derivative works based
-on Python 1.6.1 that incorporate non-separable material that was
-previously distributed under the GNU General Public License (GPL), the
-law of the Commonwealth of Virginia shall govern this License
-Agreement only as to issues arising under or with respect to
-Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
-License Agreement shall be deemed to create any relationship of
-agency, partnership, or joint venture between CNRI and Licensee. This
-License Agreement does not grant permission to use CNRI trademarks or
-trade name in a trademark sense to endorse or promote products or
-services of Licensee, or any third party.
-
-8. By clicking on the "ACCEPT" button where indicated, or by copying,
-installing or otherwise using Python 1.6.1, Licensee agrees to be
-bound by the terms and conditions of this License Agreement.
-
- ACCEPT
-
-
-CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
---------------------------------------------------
-
-Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
-The Netherlands. All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Python-2.7.3/Modules/_ctypes/darwin/LICENSE:
-
-Copyright (c) 2002 Jorge Acereda &lt;jacereda@users.sourceforge.net&gt; &amp;
- Peter O'Gorman &lt;ogorman@users.sourceforge.net&gt;
-
-Portions may be copyright others, see the AUTHORS file included with this
-distribution.
-
-Maintained by Peter O'Gorman &lt;ogorman@users.sourceforge.net&gt;
-
-Bug Reports and other queries should go to &lt;ogorman@users.sourceforge.net&gt;
-
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Python-2.7.3/Modules/_ctypes/libffi/LICENSE:
-
-libffi - Copyright (c) 1996-2009 Anthony Green, Red Hat, Inc and others.
-See source files for details.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-``Software''), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Python-2.7.3/Modules/_ctypes/libffi_msvc/LICENSE:
-
-libffi - Copyright (c) 1996-2003 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-``Software''), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Python-2.7.3/Modules/_ctypes/libffi_osx/LICENSE:
-
-libffi - Copyright (c) 1996-2003 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-``Software''), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Python-2.7.3/Modules/expat/COPYING:
-
-Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
- and Clark Cooper
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License Python-2.7.3/Tools/pybench/LICENSE:
-
-pybench License
----------------
-
-This copyright notice and license applies to all files in the pybench
-directory of the pybench distribution.
-
-Copyright (c), 1997-2006, Marc-Andre Lemburg (mal@lemburg.com)
-Copyright (c), 2000-2006, eGenix.com Software GmbH (info@egenix.com)
-
- All Rights Reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee or royalty is hereby
-granted, provided that the above copyright notice appear in all copies
-and that both that copyright notice and this permission notice appear
-in supporting documentation or portions thereof, including
-modifications, that you make.
-
-THE AUTHOR MARC-ANDRE LEMBURG DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
-INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE !
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#PSF-2'>Gentoo Package Stock License PSF-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">python-evdev-0.3.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://gvalkov.github.com/python-evdev/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License python-evdev-0.3.1/LICENSE:
-
-Copyright (c) 2012 Georgi Valkov. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- 3. Neither the name of author nor the names of its contributors may
- be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL GEORGI VALKOV BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">python-exec-0.3.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://bitbucket.org/mgorny/python-exec/">homepage</a></span>
-<div class="licence">
-<pre>Copyright Attribution License chromiumos-overlay/licenses/copyright-attribution/dev-lang/python-exec:
-
-Copyright 2012 Michał Górny
-All rights reserved
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted providing that the following conditions·
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">python-exec-2.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://bitbucket.org/mgorny/python-exec/">homepage</a></span>
-<div class="licence">
-<pre>Copyright Attribution License chromiumos-overlay/licenses/copyright-attribution/dev-lang/python-exec:
-
-Copyright 2012 Michał Górny
-All rights reserved
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted providing that the following conditions·
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">python-xlib-0.14</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://python-xlib.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pyudev-0.16.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://packages.python.org/pyudev/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pyusb-1.0.0_beta1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pyusb.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License pyusb-1.0.0b1/LICENSE:
-
-Copyright (C) 2009-2011 Wander Lairson Costa. All Rights Reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-OF SUCH DAMAGE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License pyusb-1.0.0b1/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: pyusb
-Version: 1.0.0b1
-Summary: Python USB access module
-Home-page: http://pyusb.sourceforge.net
-Author: Wander Lairson Costa
-Author-email: wander.lairson@gmail.com
-License: BSD
-Description:
- PyUSB offers easy USB devices communication in Python.
- It should work without additional code in any environment with
- Python &gt;= 2.4, ctypes and an pre-built usb backend library
- (currently, libusb 0.1.x, libusb 1.x, and OpenUSB).
-
-Platform: UNKNOWN
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">pyyaml-3.09</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pyyaml.org/wiki/PyYAML">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License PyYAML-3.09/LICENSE:
-
-Copyright (c) 2006 Kirill Simonov
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License PyYAML-3.09/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: PyYAML
-Version: 3.09
-Summary: YAML parser and emitter for Python
-Home-page: http://pyyaml.org/wiki/PyYAML
-Author: Kirill Simonov
-Author-email: xi@resolvent.net
-License: MIT
-Download-URL: http://pyyaml.org/download/pyyaml/PyYAML-3.09.tar.gz
-Description: YAML is a data serialization format designed for human readability
- and interaction with scripting languages. PyYAML is a YAML parser
- and emitter for Python.
-
- PyYAML features a complete YAML 1.1 parser, Unicode support, pickle
- support, capable extension API, and sensible error messages. PyYAML
- supports standard YAML tags and provides Python-specific tags that
- allow to represent an arbitrary Python object.
-
- PyYAML is applicable for a broad range of tasks from complex
- configuration files to object serialization and persistance.
-Platform: Any
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.3
-Classifier: Programming Language :: Python :: 2.4
-Classifier: Programming Language :: Python :: 2.5
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.0
-Classifier: Programming Language :: Python :: 3.1
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Topic :: Text Processing :: Markup
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">qemacs-0.4.0_pre20090420</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://savannah.nongnu.org/projects/qemacs">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">radvd-1.9.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://v6web.litech.org/radvd/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License radvd-1.9.8/COPYRIGHT:
-
- The author(s) grant permission for redistribution and use in source and
-binary forms, with or without modification, of the software and documentation
-provided that the following conditions are met:
-
-0. If you receive a version of the software that is specifically labelled
- as not being for redistribution (check the version message and/or README),
- you are not permitted to redistribute that version of the software in any
- way or form.
-1. All terms of all other applicable copyrights and licenses must be
- followed.
-2. Redistributions of source code must retain the authors' copyright
- notice(s), this list of conditions, and the following disclaimer.
-3. Redistributions in binary form must reproduce the authors' copyright
- notice(s), this list of conditions, and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-4. All advertising materials mentioning features or use of this software
- must display the following acknowledgement with the name(s) of the
- authors as specified in the copyright notice(s) substituted where
- indicated:
-
- This product includes software developed by the authors which are
- mentioned at the start of the source files and other contributors.
-
-5. Neither the name(s) of the author(s) nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">randrproto-1.4.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License randrproto-1.4.0/COPYING:
-
-Copyright © 2000 Compaq Computer Corporation
-Copyright © 2002 Hewlett-Packard Company
-Copyright © 2006 Intel Corporation
-Copyright © 2008 Red Hat, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">read-edid-1.4.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.polypux.org/projects/read-edid/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">readline-6.2_p1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">realtek-rt2800-firmware-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git">homepage</a></span>
-<div class="licence">
-<pre>Custom License ralink-firmware:
-
-Copyright (c) 2007, Ralink Technology Corporation
-All rights reserved.
-
-Redistribution. Redistribution and use in binary form, without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions must reproduce the above copyright notice and the
- following disclaimer in the documentation and/or other materials
- provided with the distribution.
-* Neither the name of Ralink Technology Corporation nor the names of its
- suppliers may be used to endorse or promote products derived from this
- software without specific prior written permission.
-* No reverse engineering, decompilation, or disassembly of this software
- is permitted.
-
-Limited patent license. Ralink Technology Corporation grants a world-wide,
-royalty-free, non-exclusive license under patents it now or hereafter
-owns or controls to make, have made, use, import, offer to sell and
-sell ("Utilize") this software, but solely to the extent that any
-such patent is necessary to Utilize the software alone, or in
-combination with an operating system licensed under an approved Open
-Source license as listed by the Open Source Initiative at
-http://opensource.org/licenses. The patent license shall not apply to
-any other combinations which include this software. No hardware per
-se is licensed hereunder.
-
-DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">recordproto-1.14.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License recordproto-1.14.1/COPYING:
-
-Copyright 1995 Network Computing Devices
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Network Computing Devices
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-NETWORK COMPUTING DEVICES DISCLAIMs ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">recover-duts-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">renderproto-0.11.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License renderproto-0.11.1/COPYING:
-
-Copyright © 2000 SuSE, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of SuSE not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. SuSE makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Author: Keith Packard, SuSE, Inc.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">resourceproto-1.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License resourceproto-1.2.0/COPYING:
-
-Copyright (c) 2002 XFree86 Inc
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the XFree86 Project.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">root-certificates-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">rootdev-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">rsync-3.0.9</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://rsync.samba.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">rsyslog-5.8.11</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.rsyslog.com/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-<li><a href='#LGPL-3'>Gentoo Package Stock License LGPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">rxvt-unicode-9.10</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://software.schmorp.de/pkg/rxvt-unicode.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">salsa-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sandbox-2.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gentoo.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sbc-1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://git.kernel.org/?p=bluetooth/sbc.git">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">scons-2.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.scons.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License scons-2.0.1/LICENSE.txt:
-
-Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License scons-2.0.1/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: scons
-Version: 2.0.1
-Summary: Open Source next-generation build tool.
-Home-page: http://www.scons.org/
-Author: Steven Knight
-Author-email: knight@baldmt.com
-License: UNKNOWN
-Description: Open Source next-generation build tool.
- Improved, cross-platform substitute for the classic Make
- utility. In short, SCons is an easier, more reliable
- and faster way to build software.
-Platform: UNKNOWN
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">screen-4.0.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/screen/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">scrnsaverproto-1.2.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License scrnsaverproto-1.2.1/COPYING:
-
-Copyright (c) 1992 X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-
-Author: Keith Packard, MIT X Consortium
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sed-4.2.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sed.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">selenium-2.29.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pypi.python.org/pypi/selenium/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">setproctitle-1.1.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/py-setproctitle/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License setproctitle-1.1.8/COPYRIGHT:
-
-Copyright (c) 2009-2012, Daniele Varrazzo &lt;daniele.varrazzo@gmail.com&gt;
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* The name of Daniele Varrazzo may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License setproctitle-1.1.8/PKG-INFO:
-
-Metadata-Version: 1.1
-Name: setproctitle
-Version: 1.1.8
-Summary: A library to allow customization of the process title.
-Home-page: http://code.google.com/p/py-setproctitle/
-Author: Daniele Varrazzo
-Author-email: daniele.varrazzo@gmail.com
-License: BSD
-Download-URL: http://pypi.python.org/pypi/setproctitle/
-Description: A ``setproctitle`` implementation for Python
- ============================================
-
- :author: Daniele Varrazzo
-
- The library allows a process to change its title (as displayed by system tools
- such as ``ps`` and ``top``).
-
- Changing the title is mostly useful in multi-process systems, for example
- when a master process is forked: changing the children's title allows to
- identify the task each process is busy with. The technique is used by
- PostgreSQL_ and the `OpenSSH Server`_ for example.
-
- The procedure is hardly portable across different systems. PostgreSQL provides
- a good `multi-platform implementation`__: this module is a Python wrapper
- around PostgreSQL code.
-
- - `Homepage &lt;http://code.google.com/p/py-setproctitle/&gt;`__
- - `Download &lt;http://pypi.python.org/pypi/setproctitle/&gt;`__
- - `Source repository &lt;https://github.com/dvarrazzo/py-setproctitle&gt;`__
- - `Bug tracker &lt;http://code.google.com/p/py-setproctitle/issues/list&gt;`__
-
-
- .. _PostgreSQL: http://www.postgresql.org
- .. _OpenSSH Server: http://www.openssh.com/
- .. __: http://doxygen.postgresql.org/ps__status_8c_source.html
-
-
- Installation
- ------------
-
- You can use ``easy_install`` to install the module: to perform a system-wide
- installation use::
-
- sudo easy_install setproctitle
-
- If you are an unprivileged user or you want to limit installation to a local
- environment, you can use the command::
-
- easy_install -d /target/path setproctitle
-
- Note that ``easy_install`` requires ``/target/path`` to be in your
- ``PYTHONPATH``.
-
-
- Python 3 support
- ~~~~~~~~~~~~~~~~
-
- As of version 1.1 the module works with Python 3. In order to install the
- module, you can use the `distribute`_ replacemente for ``easy_install``.
-
- In order to build and test the module under Python 3, the ``Makefile``
- contains some helper targets.
-
- .. _distribute: http://pypi.python.org/pypi/distribute
-
-
- Usage
- -----
-
- The ``setproctitle`` module exports the following functions:
-
- ``setproctitle(title)``
- Set *title* as the title for the current process.
-
- ``getproctitle()``
- Return the current process title.
-
-
- Environment variables
- ~~~~~~~~~~~~~~~~~~~~~
-
- A few environment variables can be used to customize the module behavior:
-
- ``SPT_NOENV``
- Avoid clobbering ``/proc/PID/environ``.
-
- On many platforms, setting the process title will clobber the
- ``environ`` memory area. ``os.environ`` will work as expected from within
- the Python process, but the content of the file ``/proc/PID/environ`` will
- be overwritten. If you require this file not to be broken you can set the
- ``SPT_NOENV`` environment variable to any non-empty value: in this case
- the maximum length for the title will be limited to the length of the
- command line.
-
- ``SPT_DEBUG``
- Print debug information on ``stderr``.
-
- If the module doesn't work as expected you can set this variable to a
- non-empty value to generate information useful for debugging. Note that
- the most useful information is printed when the module is imported, not
- when the functions are called.
-
-
- Module status
- -------------
-
- The module can be currently compiled and effectively used on the following
- platforms:
-
- - GNU/Linux
- - BSD
- - MacOS X
- - Windows
-
- Note that on Windows there is no way to change the process string:
- what the module does is to create a *Named Object* whose value can be read
- using a tool such as `Process Explorer`_ (contribution of a more useful tool
- to be used together with ``setproctitle`` would be well accepted).
-
- The module can probably work on HP-UX, but I haven't found any to test with.
- It is unlikely that it can work on Solaris instead.
-
- .. _Process Explorer: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
-
-
- Other known implementations and discussions
- -------------------------------------------
-
- - `procname`_: a module exposing the same functionality, but less portable
- and not well packaged.
- - `Issue 5672`_: where the introduction of such functionality into the stdlib
- is being discussed.
-
- .. _procname: http://code.google.com/p/procname/
- .. _Issue 5672: http://bugs.python.org/issue5672
-
-
- ..
- vim: set filetype=rst:
-
-
- Releases history
- ----------------
-
- Version 1.1.8
- ~~~~~~~~~~~~~
-
- - Added support for Python "diehard" 2.4.
- - Fixed build on Mac OS X 10.9 Maverick (issue #27).
-
-
- Version 1.1.7
- ~~~~~~~~~~~~~
-
- - Added PyPy support, courtesy of Ozan Turksever (http://www.logsign.net).
-
-
- Version 1.1.6
- ~~~~~~~~~~~~~
-
- - The module can be compiled again on Windows (issue #21).
-
-
- Version 1.1.5
- ~~~~~~~~~~~~~
-
- - No module bug, but a packaging issue: files ``README`` and ``HISTORY``
- added back into the distribution.
-
-
- Version 1.1.4
- ~~~~~~~~~~~~~
-
- - The module works correctly in embedded Python.
- - ``setproctitle()`` accepts a keyword argument.
- - Debug output support always compiled in: the variable ``SPT_DEBUG`` can be
- used to emit debug log.
-
-
- Version 1.1.3
- ~~~~~~~~~~~~~
-
- - Don't clobber environ if the variable ``SPT_NOENV`` is set (issue #16).
-
-
- Version 1.1.2
- ~~~~~~~~~~~~~
-
- - Find the setproctitle include file on OpenBSD (issue #11).
- - Skip test with unicode if the file system encoding wouldn't make it pass
- (issue #13).
-
-
- Version 1.1.1
- ~~~~~~~~~~~~~
-
- - Fixed segfault when the module is imported under mod_wsgi (issue #9).
-
-
- Version 1.1
- ~~~~~~~~~~~
-
- - The module works correctly with Python 3.
-
-
- Version 1.0.1
- ~~~~~~~~~~~~~
-
- - ``setproctitle()`` works even when Python messes up with argv, e.g. when run
- with the -m option (issue #8).
-
-
- Version 1.0
- ~~~~~~~~~~~
-
- No major change since the previous version. The module has been heavily used
- in production environment without any problem reported, so it's time to declare
- it stable.
-
-
- Version 0.4
- ~~~~~~~~~~~
-
- - Module works on BSD (tested on FreeBSD 7.2).
-
- - Module works on Windows. Many thanks to `Develer`_ for providing a neat `GCC
- package for Windows with Python integration`__ that made the Windows porting
- painless.
-
- .. _Develer: http://www.develer.com/
- .. __: http://www.develer.com/oss/GccWinBinaries
-
-
- Version 0.3
- ~~~~~~~~~~~
-
- - Module works on Mac OS X 10.2. Reported working on OS X 10.6 too.
-
-
- Version 0.2
- ~~~~~~~~~~~
-
- - Added ``prctl()`` call on Linux &gt;= 2.6.9 to update ``/proc/self/status``.
-
-
- Version 0.1
- ~~~~~~~~~~~
-
- - Initial public release.
-
-Platform: GNU/Linux
-Platform: BSD
-Platform: MacOS X
-Platform: Windows
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: BSD License
-Classifier: Programming Language :: C
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-Classifier: Operating System :: POSIX :: Linux
-Classifier: Operating System :: POSIX :: BSD
-Classifier: Operating System :: MacOS :: MacOS X
-Classifier: Operating System :: Microsoft :: Windows
-Classifier: Topic :: Software Development
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">setuptools-0.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pypi.python.org/pypi/setuptools">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License setuptools-0.8/PKG-INFO:
-
-Metadata-Version: 1.1
-Name: setuptools
-Version: 0.8
-Summary: Easily download, build, install, upgrade, and uninstall Python packages
-Home-page: https://pypi.python.org/pypi/setuptools
-Author: The fellowship of the packaging
-Author-email: distutils-sig@python.org
-License: PSF or ZPL
-Description: ===============================
- Installing and Using Setuptools
- ===============================
-
- .. contents:: **Table of Contents**
-
-
- -------------------------
- Installation Instructions
- -------------------------
-
- Upgrading from Distribute
- =========================
-
- Currently, Distribute disallows installing Setuptools 0.7+ over Distribute.
- You must first uninstall any active version of Distribute first (see
- `Uninstalling`_).
-
- Upgrading from Setuptools 0.6
- =============================
-
- Upgrading from prior versions of Setuptools is supported. Initial reports
- good success in this regard.
-
- Windows
- =======
-
- The recommended way to install setuptools on Windows is to download
- `ez_setup.py`_ and run it. The script will download the appropriate .egg
- file and install it for you.
-
- .. _ez_setup.py: https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py
-
- For best results, uninstall previous versions FIRST (see `Uninstalling`_).
-
- Once installation is complete, you will find an ``easy_install.exe`` program in
- your Python ``Scripts`` subdirectory. For simple invocation and best results,
- add this directory to your ``PATH`` environment variable, if it is not already
- present.
-
-
- Unix-based Systems including Mac OS X
- =====================================
-
- Download `ez_setup.py`_ and run it using the target Python version. The script
- will download the appropriate version and install it for you::
-
- &gt; wget https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py -O - | python
-
- Note that you will may need to invoke the command with superuser privileges to
- install to the system Python.
-
- Alternatively, on Python 2.6 and later, Setuptools may be installed to a
- user-local path::
-
- &gt; wget https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py
- &gt; python ez_setup.py --user
-
-
- Advanced Installation
- =====================
-
- For more advanced installation options, such as installing to custom
- locations or prefixes, download and extract the source
- tarball from `Setuptools on PyPI &lt;https://pypi.python.org/pypi/setuptools&gt;`_
- and run setup.py with any supported distutils and Setuptools options.
- For example::
-
- setuptools-0.8$ python setup.py --prefix=/opt/setuptools
-
- Use ``--help`` to get a full options list, but we recommend consulting
- the `EasyInstall manual`_ for detailed instructions, especially `the section
- on custom installation locations`_.
-
- .. _EasyInstall manual: https://pythonhosted.org/setuptools/EasyInstall
- .. _the section on custom installation locations: https://pythonhosted.org/setuptools/EasyInstall#custom-installation-locations
-
-
- Downloads
- =========
-
- All setuptools downloads can be found at `the project's home page in the Python
- Package Index`_. Scroll to the very bottom of the page to find the links.
-
- .. _the project's home page in the Python Package Index: https://pypi.python.org/pypi/setuptools
-
- In addition to the PyPI downloads, the development version of ``setuptools``
- is available from the `Bitbucket repo`_, and in-development versions of the
- `0.6 branch`_ are available as well.
-
- .. _Bitbucket repo: https://bitbucket.org/pypa/setuptools/get/default.tar.gz#egg=setuptools-dev
- .. _0.6 branch: http://svn.python.org/projects/sandbox/branches/setuptools-0.6/#egg=setuptools-dev06
-
- Uninstalling
- ============
-
- On Windows, if Setuptools was installed using an ``.exe`` or ``.msi``
- installer, simply use the uninstall feature of "Add/Remove Programs" in the
- Control Panel.
-
- Otherwise, to uninstall Setuptools or Distribute, regardless of the Python
- version, delete all ``setuptools*`` and ``distribute*`` files and
- directories from your system's ``site-packages`` directory
- (and any other ``sys.path`` directories) FIRST.
-
- If you are upgrading or otherwise plan to re-install Setuptools or Distribute,
- nothing further needs to be done. If you want to completely remove Setuptools,
- you may also want to remove the 'easy_install' and 'easy_install-x.x' scripts
- and associated executables installed to the Python scripts directory.
-
- --------------------------------
- Using Setuptools and EasyInstall
- --------------------------------
-
- Here are some of the available manuals, tutorials, and other resources for
- learning about Setuptools, Python Eggs, and EasyInstall:
-
- * `The EasyInstall user's guide and reference manual`_
- * `The setuptools Developer's Guide`_
- * `The pkg_resources API reference`_
- * `Package Compatibility Notes`_ (user-maintained)
- * `The Internal Structure of Python Eggs`_
-
- Questions, comments, and bug reports should be directed to the `distutils-sig
- mailing list`_. If you have written (or know of) any tutorials, documentation,
- plugins, or other resources for setuptools users, please let us know about
- them there, so this reference list can be updated. If you have working,
- *tested* patches to correct problems or add features, you may submit them to
- the `setuptools bug tracker`_.
-
- .. _setuptools bug tracker: https://bitbucket.org/pypa/setuptools/issues
- .. _Package Compatibility Notes: https://pythonhosted.org/setuptools/PackageNotes
- .. _The Internal Structure of Python Eggs: https://pythonhosted.org/setuptools/formats.html
- .. _The setuptools Developer's Guide: https://pythonhosted.org/setuptools/setuptools.html
- .. _The pkg_resources API reference: https://pythonhosted.org/setuptools/pkg_resources.html
- .. _The EasyInstall user's guide and reference manual: https://pythonhosted.org/setuptools/easy_install.html
- .. _distutils-sig mailing list: http://mail.python.org/pipermail/distutils-sig/
-
-
- -------
- Credits
- -------
-
- * The original design for the ``.egg`` format and the ``pkg_resources`` API was
- co-created by Phillip Eby and Bob Ippolito. Bob also implemented the first
- version of ``pkg_resources``, and supplied the OS X operating system version
- compatibility algorithm.
-
- * Ian Bicking implemented many early "creature comfort" features of
- easy_install, including support for downloading via Sourceforge and
- Subversion repositories. Ian's comments on the Web-SIG about WSGI
- application deployment also inspired the concept of "entry points" in eggs,
- and he has given talks at PyCon and elsewhere to inform and educate the
- community about eggs and setuptools.
-
- * Jim Fulton contributed time and effort to build automated tests of various
- aspects of ``easy_install``, and supplied the doctests for the command-line
- ``.exe`` wrappers on Windows.
-
- * Phillip J. Eby is the principal author and maintainer of setuptools, and
- first proposed the idea of an importable binary distribution format for
- Python application plugins.
-
- * Significant parts of the implementation of setuptools were funded by the Open
- Source Applications Foundation, to provide a plugin infrastructure for the
- Chandler PIM application. In addition, many OSAF staffers (such as Mike
- "Code Bear" Taylor) contributed their time and stress as guinea pigs for the
- use of eggs and setuptools, even before eggs were "cool". (Thanks, guys!)
-
- .. _files:
-
- =======
- CHANGES
- =======
-
- ---
- 0.8
- ---
-
- * Code base now runs on Python 2.4 - Python 3.3 without Python 2to3
- conversion.
-
- -----
- 0.7.8
- -----
-
- * Distribute #375: Yet another fix for yet another regression.
-
- -----
- 0.7.7
- -----
-
- * Distribute #375: Repair AttributeError created in last release (redo).
- * `Issue #30`_: Added test for get_cache_path.
-
- -----
- 0.7.6
- -----
-
- * Distribute #375: Repair AttributeError created in last release.
-
- -----
- 0.7.5
- -----
-
- * `Issue #21`_: Restore Python 2.4 compatibility in ``test_easy_install``.
- * Distribute #375: Merged additional warning from Distribute 0.6.46.
- * Now honor the environment variable
- ``SETUPTOOLS_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT`` in addition to the now
- deprecated ``DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT``.
-
- -----
- 0.7.4
- -----
-
- * Issue #20: Fix comparison of parsed SVN version on Python 3.
-
- -----
- 0.7.3
- -----
-
- * Issue #1: Disable installation of Windows-specific files on non-Windows systems.
- * Use new sysconfig module with Python 2.7 or &gt;=3.2.
-
- -----
- 0.7.2
- -----
-
- * Issue #14: Use markerlib when the `parser` module is not available.
- * Issue #10: ``ez_setup.py`` now uses HTTPS to download setuptools from PyPI.
-
- -----
- 0.7.1
- -----
-
- * Fix NameError (Issue #3) again - broken in bad merge.
-
- ---
- 0.7
- ---
-
- * Merged Setuptools and Distribute. See docs/merge.txt for details.
-
- Added several features that were slated for setuptools 0.6c12:
-
- * Index URL now defaults to HTTPS.
- * Added experimental environment marker support. Now clients may designate a
- PEP-426 environment marker for "extra" dependencies. Setuptools uses this
- feature in ``setup.py`` for optional SSL and certificate validation support
- on older platforms. Based on Distutils-SIG discussions, the syntax is
- somewhat tentative. There should probably be a PEP with a firmer spec before
- the feature should be considered suitable for use.
- * Added support for SSL certificate validation when installing packages from
- an HTTPS service.
-
- -----
- 0.7b4
- -----
-
- * Issue #3: Fixed NameError in SSL support.
-
- ------
- 0.6.49
- ------
-
- * Move warning check in ``get_cache_path`` to follow the directory creation
- to avoid errors when the cache path does not yet exist. Fixes the error
- reported in #375.
-
- ------
- 0.6.48
- ------
-
- * Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in
- 0.6.46 (redo).
-
- ------
- 0.6.47
- ------
-
- * Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in
- 0.6.46.
-
- ------
- 0.6.46
- ------
-
- * Issue #375: Issue a warning if the PYTHON_EGG_CACHE or otherwise
- customized egg cache location specifies a directory that's group- or
- world-writable.
-
- ------
- 0.6.45
- ------
-
- * Issue #379: ``distribute_setup.py`` now traps VersionConflict as well,
- restoring ability to upgrade from an older setuptools version.
-
- ------
- 0.6.44
- ------
-
- * ``distribute_setup.py`` has been updated to allow Setuptools 0.7 to
- satisfy use_setuptools.
-
- ------
- 0.6.43
- ------
-
- * Issue #378: Restore support for Python 2.4 Syntax (regression in 0.6.42).
-
- ------
- 0.6.42
- ------
-
- * External links finder no longer yields duplicate links.
- * Issue #337: Moved site.py to setuptools/site-patch.py (graft of very old
- patch from setuptools trunk which inspired PR #31).
-
- ------
- 0.6.41
- ------
-
- * Issue #27: Use public api for loading resources from zip files rather than
- the private method `_zip_directory_cache`.
- * Added a new function ``easy_install.get_win_launcher`` which may be used by
- third-party libraries such as buildout to get a suitable script launcher.
-
- ------
- 0.6.40
- ------
-
- * Issue #376: brought back cli.exe and gui.exe that were deleted in the
- previous release.
-
- ------
- 0.6.39
- ------
-
- * Add support for console launchers on ARM platforms.
- * Fix possible issue in GUI launchers where the subsystem was not supplied to
- the linker.
- * Launcher build script now refactored for robustness.
- * Issue #375: Resources extracted from a zip egg to the file system now also
- check the contents of the file against the zip contents during each
- invocation of get_resource_filename.
-
- ------
- 0.6.38
- ------
-
- * Issue #371: The launcher manifest file is now installed properly.
-
- ------
- 0.6.37
- ------
-
- * Issue #143: Launcher scripts, including easy_install itself, are now
- accompanied by a manifest on 32-bit Windows environments to avoid the
- Installer Detection Technology and thus undesirable UAC elevation described
- in `this Microsoft article
- &lt;http://technet.microsoft.com/en-us/library/cc709628%28WS.10%29.aspx&gt;`_.
-
- ------
- 0.6.36
- ------
-
- * Pull Request #35: In `Buildout issue 64
- &lt;https://github.com/buildout/buildout/issues/64&gt;`_, it was reported that
- under Python 3, installation of distutils scripts could attempt to copy
- the ``__pycache__`` directory as a file, causing an error, apparently only
- under Windows. Easy_install now skips all directories when processing
- metadata scripts.
-
- ------
- 0.6.35
- ------
-
-
- Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in
- how it parses version numbers.
-
- * Issue #278: Restored compatibility with distribute 0.6.22 and setuptools
- 0.6. Updated the documentation to match more closely with the version
- parsing as intended in setuptools 0.6.
-
- ------
- 0.6.34
- ------
-
- * Issue #341: 0.6.33 fails to build under Python 2.4.
-
- ------
- 0.6.33
- ------
-
- * Fix 2 errors with Jython 2.5.
- * Fix 1 failure with Jython 2.5 and 2.7.
- * Disable workaround for Jython scripts on Linux systems.
- * Issue #336: `setup.py` no longer masks failure exit code when tests fail.
- * Fix issue in pkg_resources where try/except around a platform-dependent
- import would trigger hook load failures on Mercurial. See pull request 32
- for details.
- * Issue #341: Fix a ResourceWarning.
-
- ------
- 0.6.32
- ------
-
- * Fix test suite with Python 2.6.
- * Fix some DeprecationWarnings and ResourceWarnings.
- * Issue #335: Backed out `setup_requires` superceding installed requirements
- until regression can be addressed.
-
- ------
- 0.6.31
- ------
-
- * Issue #303: Make sure the manifest only ever contains UTF-8 in Python 3.
- * Issue #329: Properly close files created by tests for compatibility with
- Jython.
- * Work around Jython bugs `#1980 &lt;http://bugs.jython.org/issue1980&gt;`_ and
- `#1981 &lt;http://bugs.jython.org/issue1981&gt;`_.
- * `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
- such as numpy does. This change should address
- `virtualenv #359 &lt;https://github.com/pypa/virtualenv/issues/359&gt;`_ as long
- as the system encoding is UTF-8 or the IO encoding is specified in the
- environment, i.e.::
-
- PYTHONIOENCODING=utf8 pip install numpy
-
- * Fix for encoding issue when installing from Windows executable on Python 3.
- * `Issue #323`_: Allow `setup_requires` requirements to supercede installed
- requirements. Added some new keyword arguments to existing pkg_resources
- methods. Also had to updated how __path__ is handled for namespace packages
- to ensure that when a new egg distribution containing a namespace package is
- placed on sys.path, the entries in __path__ are found in the same order they
- would have been in had that egg been on the path when pkg_resources was
- first imported.
-
- ------
- 0.6.30
- ------
-
- * `Issue #328`_: Clean up temporary directories in distribute_setup.py.
- * Fix fatal bug in distribute_setup.py.
-
- ------
- 0.6.29
- ------
-
- * Pull Request #14: Honor file permissions in zip files.
- * `Issue #327`_: Merged pull request #24 to fix a dependency problem with pip.
- * Merged pull request #23 to fix https://github.com/pypa/virtualenv/issues/301.
- * If Sphinx is installed, the `upload_docs` command now runs `build_sphinx`
- to produce uploadable documentation.
- * `Issue #326`_: `upload_docs` provided mangled auth credentials under Python 3.
- * `Issue #320`_: Fix check for "createable" in distribute_setup.py.
- * `Issue #305`_: Remove a warning that was triggered during normal operations.
- * `Issue #311`_: Print metadata in UTF-8 independent of platform.
- * `Issue #303`_: Read manifest file with UTF-8 encoding under Python 3.
- * `Issue #301`_: Allow to run tests of namespace packages when using 2to3.
- * `Issue #304`_: Prevent import loop in site.py under Python 3.3.
- * `Issue #283`_: Reenable scanning of `*.pyc` / `*.pyo` files on Python 3.3.
- * `Issue #299`_: The develop command didn't work on Python 3, when using 2to3,
- as the egg link would go to the Python 2 source. Linking to the 2to3'd code
- in build/lib makes it work, although you will have to rebuild the module
- before testing it.
- * `Issue #306`_: Even if 2to3 is used, we build in-place under Python 2.
- * `Issue #307`_: Prints the full path when .svn/entries is broken.
- * `Issue #313`_: Support for sdist subcommands (Python 2.7)
- * `Issue #314`_: test_local_index() would fail an OS X.
- * `Issue #310`_: Non-ascii characters in a namespace __init__.py causes errors.
- * `Issue #218`_: Improved documentation on behavior of `package_data` and
- `include_package_data`. Files indicated by `package_data` are now included
- in the manifest.
- * `distribute_setup.py` now allows a `--download-base` argument for retrieving
- distribute from a specified location.
-
- ------
- 0.6.28
- ------
-
- * `Issue #294`_: setup.py can now be invoked from any directory.
- * Scripts are now installed honoring the umask.
- * Added support for .dist-info directories.
- * `Issue #283`_: Fix and disable scanning of `*.pyc` / `*.pyo` files on
- Python 3.3.
-
- ------
- 0.6.27
- ------
-
- * Support current snapshots of CPython 3.3.
- * Distribute now recognizes README.rst as a standard, default readme file.
- * Exclude 'encodings' modules when removing modules from sys.modules.
- Workaround for #285.
- * `Issue #231`_: Don't fiddle with system python when used with buildout
- (bootstrap.py)
-
- ------
- 0.6.26
- ------
-
- * `Issue #183`_: Symlinked files are now extracted from source distributions.
- * `Issue #227`_: Easy_install fetch parameters are now passed during the
- installation of a source distribution; now fulfillment of setup_requires
- dependencies will honor the parameters passed to easy_install.
-
- ------
- 0.6.25
- ------
-
- * `Issue #258`_: Workaround a cache issue
- * `Issue #260`_: distribute_setup.py now accepts the --user parameter for
- Python 2.6 and later.
- * `Issue #262`_: package_index.open_with_auth no longer throws LookupError
- on Python 3.
- * `Issue #269`_: AttributeError when an exception occurs reading Manifest.in
- on late releases of Python.
- * `Issue #272`_: Prevent TypeError when namespace package names are unicode
- and single-install-externally-managed is used. Also fixes PIP `issue
- 449`_.
- * `Issue #273`_: Legacy script launchers now install with Python2/3 support.
-
- ------
- 0.6.24
- ------
-
- * `Issue #249`_: Added options to exclude 2to3 fixers
-
- ------
- 0.6.23
- ------
-
- * `Issue #244`_: Fixed a test
- * `Issue #243`_: Fixed a test
- * `Issue #239`_: Fixed a test
- * `Issue #240`_: Fixed a test
- * `Issue #241`_: Fixed a test
- * `Issue #237`_: Fixed a test
- * `Issue #238`_: easy_install now uses 64bit executable wrappers on 64bit Python
- * `Issue #208`_: Fixed parsed_versions, it now honors post-releases as noted in the documentation
- * `Issue #207`_: Windows cli and gui wrappers pass CTRL-C to child python process
- * `Issue #227`_: easy_install now passes its arguments to setup.py bdist_egg
- * `Issue #225`_: Fixed a NameError on Python 2.5, 2.4
-
- ------
- 0.6.21
- ------
-
- * `Issue #225`_: FIxed a regression on py2.4
-
- ------
- 0.6.20
- ------
-
- * `Issue #135`_: Include url in warning when processing URLs in package_index.
- * `Issue #212`_: Fix issue where easy_instal fails on Python 3 on windows installer.
- * `Issue #213`_: Fix typo in documentation.
-
- ------
- 0.6.19
- ------
-
- * `Issue 206`_: AttributeError: 'HTTPMessage' object has no attribute 'getheaders'
-
- ------
- 0.6.18
- ------
-
- * `Issue 210`_: Fixed a regression introduced by `Issue 204`_ fix.
-
- ------
- 0.6.17
- ------
-
- * Support 'DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT' environment
- variable to allow to disable installation of easy_install-${version} script.
- * Support Python &gt;=3.1.4 and &gt;=3.2.1.
- * `Issue 204`_: Don't try to import the parent of a namespace package in
- declare_namespace
- * `Issue 196`_: Tolerate responses with multiple Content-Length headers
- * `Issue 205`_: Sandboxing doesn't preserve working_set. Leads to setup_requires
- problems.
-
- ------
- 0.6.16
- ------
-
- * Builds sdist gztar even on Windows (avoiding `Issue 193`_).
- * `Issue 192`_: Fixed metadata omitted on Windows when package_dir
- specified with forward-slash.
- * `Issue 195`_: Cython build support.
- * `Issue 200`_: Issues with recognizing 64-bit packages on Windows.
-
- ------
- 0.6.15
- ------
-
- * Fixed typo in bdist_egg
- * Several issues under Python 3 has been solved.
- * `Issue 146`_: Fixed missing DLL files after easy_install of windows exe package.
-
- ------
- 0.6.14
- ------
-
- * `Issue 170`_: Fixed unittest failure. Thanks to Toshio.
- * `Issue 171`_: Fixed race condition in unittests cause deadlocks in test suite.
- * `Issue 143`_: Fixed a lookup issue with easy_install.
- Thanks to David and Zooko.
- * `Issue 174`_: Fixed the edit mode when its used with setuptools itself
-
- ------
- 0.6.13
- ------
-
- * `Issue 160`_: 2.7 gives ValueError("Invalid IPv6 URL")
- * `Issue 150`_: Fixed using ~/.local even in a --no-site-packages virtualenv
- * `Issue 163`_: scan index links before external links, and don't use the md5 when
- comparing two distributions
-
- ------
- 0.6.12
- ------
-
- * `Issue 149`_: Fixed various failures on 2.3/2.4
-
- ------
- 0.6.11
- ------
-
- * Found another case of SandboxViolation - fixed
- * `Issue 15`_ and 48: Introduced a socket timeout of 15 seconds on url openings
- * Added indexsidebar.html into MANIFEST.in
- * `Issue 108`_: Fixed TypeError with Python3.1
- * `Issue 121`_: Fixed --help install command trying to actually install.
- * `Issue 112`_: Added an os.makedirs so that Tarek's solution will work.
- * `Issue 133`_: Added --no-find-links to easy_install
- * Added easy_install --user
- * `Issue 100`_: Fixed develop --user not taking '.' in PYTHONPATH into account
- * `Issue 134`_: removed spurious UserWarnings. Patch by VanLindberg
- * `Issue 138`_: cant_write_to_target error when setup_requires is used.
- * `Issue 147`_: respect the sys.dont_write_bytecode flag
-
- ------
- 0.6.10
- ------
-
- * Reverted change made for the DistributionNotFound exception because
- zc.buildout uses the exception message to get the name of the
- distribution.
-
- -----
- 0.6.9
- -----
-
- * `Issue 90`_: unknown setuptools version can be added in the working set
- * `Issue 87`_: setupt.py doesn't try to convert distribute_setup.py anymore
- Initial Patch by arfrever.
- * `Issue 89`_: added a side bar with a download link to the doc.
- * `Issue 86`_: fixed missing sentence in pkg_resources doc.
- * Added a nicer error message when a DistributionNotFound is raised.
- * `Issue 80`_: test_develop now works with Python 3.1
- * `Issue 93`_: upload_docs now works if there is an empty sub-directory.
- * `Issue 70`_: exec bit on non-exec files
- * `Issue 99`_: now the standalone easy_install command doesn't uses a
- "setup.cfg" if any exists in the working directory. It will use it
- only if triggered by ``install_requires`` from a setup.py call
- (install, develop, etc).
- * `Issue 101`_: Allowing ``os.devnull`` in Sandbox
- * `Issue 92`_: Fixed the "no eggs" found error with MacPort
- (platform.mac_ver() fails)
- * `Issue 103`_: test_get_script_header_jython_workaround not run
- anymore under py3 with C or POSIX local. Contributed by Arfrever.
- * `Issue 104`_: remvoved the assertion when the installation fails,
- with a nicer message for the end user.
- * `Issue 100`_: making sure there's no SandboxViolation when
- the setup script patches setuptools.
-
- -----
- 0.6.8
- -----
-
- * Added "check_packages" in dist. (added in Setuptools 0.6c11)
- * Fixed the DONT_PATCH_SETUPTOOLS state.
-
- -----
- 0.6.7
- -----
-
- * `Issue 58`_: Added --user support to the develop command
- * `Issue 11`_: Generated scripts now wrap their call to the script entry point
- in the standard "if name == 'main'"
- * Added the 'DONT_PATCH_SETUPTOOLS' environment variable, so virtualenv
- can drive an installation that doesn't patch a global setuptools.
- * Reviewed unladen-swallow specific change from
- http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&amp;r=719
- and determined that it no longer applies. Distribute should work fine with
- Unladen Swallow 2009Q3.
- * `Issue 21`_: Allow PackageIndex.open_url to gracefully handle all cases of a
- httplib.HTTPException instead of just InvalidURL and BadStatusLine.
- * Removed virtual-python.py from this distribution and updated documentation
- to point to the actively maintained virtualenv instead.
- * `Issue 64`_: use_setuptools no longer rebuilds the distribute egg every
- time it is run
- * use_setuptools now properly respects the requested version
- * use_setuptools will no longer try to import a distribute egg for the
- wrong Python version
- * `Issue 74`_: no_fake should be True by default.
- * `Issue 72`_: avoid a bootstrapping issue with easy_install -U
-
- -----
- 0.6.6
- -----
-
- * Unified the bootstrap file so it works on both py2.x and py3k without 2to3
- (patch by Holger Krekel)
-
- -----
- 0.6.5
- -----
-
- * `Issue 65`_: cli.exe and gui.exe are now generated at build time,
- depending on the platform in use.
-
- * `Issue 67`_: Fixed doc typo (PEP 381/382)
-
- * Distribute no longer shadows setuptools if we require a 0.7-series
- setuptools. And an error is raised when installing a 0.7 setuptools with
- distribute.
-
- * When run from within buildout, no attempt is made to modify an existing
- setuptools egg, whether in a shared egg directory or a system setuptools.
-
- * Fixed a hole in sandboxing allowing builtin file to write outside of
- the sandbox.
-
- -----
- 0.6.4
- -----
-
- * Added the generation of `distribute_setup_3k.py` during the release.
- This closes `issue #52`_.
-
- * Added an upload_docs command to easily upload project documentation to
- PyPI's https://pythonhosted.org. This close `issue #56`_.
-
- * Fixed a bootstrap bug on the use_setuptools() API.
-
- -----
- 0.6.3
- -----
-
- setuptools
- ==========
-
- * Fixed a bunch of calls to file() that caused crashes on Python 3.
-
- bootstrapping
- =============
-
- * Fixed a bug in sorting that caused bootstrap to fail on Python 3.
-
- -----
- 0.6.2
- -----
-
- setuptools
- ==========
-
- * Added Python 3 support; see docs/python3.txt.
- This closes http://bugs.python.org/setuptools/issue39.
-
- * Added option to run 2to3 automatically when installing on Python 3.
- This closes `issue #31`_.
-
- * Fixed invalid usage of requirement.parse, that broke develop -d.
- This closes http://bugs.python.org/setuptools/issue44.
-
- * Fixed script launcher for 64-bit Windows.
- This closes http://bugs.python.org/setuptools/issue2.
-
- * KeyError when compiling extensions.
- This closes http://bugs.python.org/setuptools/issue41.
-
- bootstrapping
- =============
-
- * Fixed bootstrap not working on Windows. This closes `issue #49`_.
-
- * Fixed 2.6 dependencies. This closes `issue #50`_.
-
- * Make sure setuptools is patched when running through easy_install
- This closes http://bugs.python.org/setuptools/issue40.
-
- -----
- 0.6.1
- -----
-
- setuptools
- ==========
-
- * package_index.urlopen now catches BadStatusLine and malformed url errors.
- This closes `issue #16`_ and `issue #18`_.
-
- * zip_ok is now False by default. This closes
- http://bugs.python.org/setuptools/issue33.
-
- * Fixed invalid URL error catching. http://bugs.python.org/setuptools/issue20.
-
- * Fixed invalid bootstraping with easy_install installation (`issue #40`_).
- Thanks to Florian Schulze for the help.
-
- * Removed buildout/bootstrap.py. A new repository will create a specific
- bootstrap.py script.
-
-
- bootstrapping
- =============
-
- * The boostrap process leave setuptools alone if detected in the system
- and --root or --prefix is provided, but is not in the same location.
- This closes `issue #10`_.
-
- ---
- 0.6
- ---
-
- setuptools
- ==========
-
- * Packages required at build time where not fully present at install time.
- This closes `issue #12`_.
-
- * Protected against failures in tarfile extraction. This closes `issue #10`_.
-
- * Made Jython api_tests.txt doctest compatible. This closes `issue #7`_.
-
- * sandbox.py replaced builtin type file with builtin function open. This
- closes `issue #6`_.
-
- * Immediately close all file handles. This closes `issue #3`_.
-
- * Added compatibility with Subversion 1.6. This references `issue #1`_.
-
- pkg_resources
- =============
-
- * Avoid a call to /usr/bin/sw_vers on OSX and use the official platform API
- instead. Based on a patch from ronaldoussoren. This closes `issue #5`_.
-
- * Fixed a SandboxViolation for mkdir that could occur in certain cases.
- This closes `issue #13`_.
-
- * Allow to find_on_path on systems with tight permissions to fail gracefully.
- This closes `issue #9`_.
-
- * Corrected inconsistency between documentation and code of add_entry.
- This closes `issue #8`_.
-
- * Immediately close all file handles. This closes `issue #3`_.
-
- easy_install
- ============
-
- * Immediately close all file handles. This closes `issue #3`_.
-
-
- .. _`Issue #135`: https://bitbucket.org/tarek/distribute/issue/135
- .. _`Issue #183`: https://bitbucket.org/tarek/distribute/issue/183
- .. _`Issue #207`: https://bitbucket.org/tarek/distribute/issue/207
- .. _`Issue #208`: https://bitbucket.org/tarek/distribute/issue/208
- .. _`Issue #21`: https://bitbucket.org/tarek/distribute/issue/21
- .. _`Issue #212`: https://bitbucket.org/tarek/distribute/issue/212
- .. _`Issue #213`: https://bitbucket.org/tarek/distribute/issue/213
- .. _`Issue #218`: https://bitbucket.org/tarek/distribute/issue/218
- .. _`Issue #225`: https://bitbucket.org/tarek/distribute/issue/225
- .. _`Issue #225`: https://bitbucket.org/tarek/distribute/issue/225
- .. _`Issue #227`: https://bitbucket.org/tarek/distribute/issue/227
- .. _`Issue #227`: https://bitbucket.org/tarek/distribute/issue/227
- .. _`Issue #231`: https://bitbucket.org/tarek/distribute/issue/231
- .. _`Issue #237`: https://bitbucket.org/tarek/distribute/issue/237
- .. _`Issue #238`: https://bitbucket.org/tarek/distribute/issue/238
- .. _`Issue #239`: https://bitbucket.org/tarek/distribute/issue/239
- .. _`Issue #240`: https://bitbucket.org/tarek/distribute/issue/240
- .. _`Issue #241`: https://bitbucket.org/tarek/distribute/issue/241
- .. _`Issue #243`: https://bitbucket.org/tarek/distribute/issue/243
- .. _`Issue #244`: https://bitbucket.org/tarek/distribute/issue/244
- .. _`Issue #249`: https://bitbucket.org/tarek/distribute/issue/249
- .. _`Issue #258`: https://bitbucket.org/tarek/distribute/issue/258
- .. _`Issue #260`: https://bitbucket.org/tarek/distribute/issue/260
- .. _`Issue #262`: https://bitbucket.org/tarek/distribute/issue/262
- .. _`Issue #269`: https://bitbucket.org/tarek/distribute/issue/269
- .. _`Issue #272`: https://bitbucket.org/tarek/distribute/issue/272
- .. _`Issue #273`: https://bitbucket.org/tarek/distribute/issue/273
- .. _`Issue #283`: https://bitbucket.org/tarek/distribute/issue/283
- .. _`Issue #283`: https://bitbucket.org/tarek/distribute/issue/283
- .. _`Issue #294`: https://bitbucket.org/tarek/distribute/issue/294
- .. _`Issue #299`: https://bitbucket.org/tarek/distribute/issue/299
- .. _`Issue #30`: https://bitbucket.org/tarek/distribute/issue/30
- .. _`Issue #301`: https://bitbucket.org/tarek/distribute/issue/301
- .. _`Issue #303`: https://bitbucket.org/tarek/distribute/issue/303
- .. _`Issue #304`: https://bitbucket.org/tarek/distribute/issue/304
- .. _`Issue #305`: https://bitbucket.org/tarek/distribute/issue/305
- .. _`Issue #306`: https://bitbucket.org/tarek/distribute/issue/306
- .. _`Issue #307`: https://bitbucket.org/tarek/distribute/issue/307
- .. _`Issue #310`: https://bitbucket.org/tarek/distribute/issue/310
- .. _`Issue #311`: https://bitbucket.org/tarek/distribute/issue/311
- .. _`Issue #313`: https://bitbucket.org/tarek/distribute/issue/313
- .. _`Issue #314`: https://bitbucket.org/tarek/distribute/issue/314
- .. _`Issue #320`: https://bitbucket.org/tarek/distribute/issue/320
- .. _`Issue #323`: https://bitbucket.org/tarek/distribute/issue/323
- .. _`Issue #326`: https://bitbucket.org/tarek/distribute/issue/326
- .. _`Issue #327`: https://bitbucket.org/tarek/distribute/issue/327
- .. _`Issue #328`: https://bitbucket.org/tarek/distribute/issue/328
- .. _`Issue #334`: https://bitbucket.org/tarek/distribute/issue/334
- .. _`Issue 100`: https://bitbucket.org/tarek/distribute/issue/100
- .. _`Issue 100`: https://bitbucket.org/tarek/distribute/issue/100
- .. _`Issue 101`: https://bitbucket.org/tarek/distribute/issue/101
- .. _`Issue 103`: https://bitbucket.org/tarek/distribute/issue/103
- .. _`Issue 104`: https://bitbucket.org/tarek/distribute/issue/104
- .. _`Issue 108`: https://bitbucket.org/tarek/distribute/issue/108
- .. _`Issue 11`: https://bitbucket.org/tarek/distribute/issue/11
- .. _`Issue 112`: https://bitbucket.org/tarek/distribute/issue/112
- .. _`Issue 121`: https://bitbucket.org/tarek/distribute/issue/121
- .. _`Issue 133`: https://bitbucket.org/tarek/distribute/issue/133
- .. _`Issue 134`: https://bitbucket.org/tarek/distribute/issue/134
- .. _`Issue 138`: https://bitbucket.org/tarek/distribute/issue/138
- .. _`Issue 143`: https://bitbucket.org/tarek/distribute/issue/143
- .. _`Issue 146`: https://bitbucket.org/tarek/distribute/issue/146
- .. _`Issue 147`: https://bitbucket.org/tarek/distribute/issue/147
- .. _`Issue 149`: https://bitbucket.org/tarek/distribute/issue/149
- .. _`Issue 15`: https://bitbucket.org/tarek/distribute/issue/15
- .. _`Issue 150`: https://bitbucket.org/tarek/distribute/issue/150
- .. _`Issue 160`: https://bitbucket.org/tarek/distribute/issue/160
- .. _`Issue 163`: https://bitbucket.org/tarek/distribute/issue/163
- .. _`Issue 170`: https://bitbucket.org/tarek/distribute/issue/170
- .. _`Issue 171`: https://bitbucket.org/tarek/distribute/issue/171
- .. _`Issue 174`: https://bitbucket.org/tarek/distribute/issue/174
- .. _`Issue 192`: https://bitbucket.org/tarek/distribute/issue/192
- .. _`Issue 193`: https://bitbucket.org/tarek/distribute/issue/193
- .. _`Issue 195`: https://bitbucket.org/tarek/distribute/issue/195
- .. _`Issue 196`: https://bitbucket.org/tarek/distribute/issue/196
- .. _`Issue 200`: https://bitbucket.org/tarek/distribute/issue/200
- .. _`Issue 204`: https://bitbucket.org/tarek/distribute/issue/204
- .. _`Issue 204`: https://bitbucket.org/tarek/distribute/issue/204
- .. _`Issue 205`: https://bitbucket.org/tarek/distribute/issue/205
- .. _`Issue 206`: https://bitbucket.org/tarek/distribute/issue/206
- .. _`Issue 21`: https://bitbucket.org/tarek/distribute/issue/21
- .. _`Issue 210`: https://bitbucket.org/tarek/distribute/issue/210
- .. _`Issue 58`: https://bitbucket.org/tarek/distribute/issue/58
- .. _`Issue 64`: https://bitbucket.org/tarek/distribute/issue/64
- .. _`Issue 65`: https://bitbucket.org/tarek/distribute/issue/65
- .. _`Issue 67`: https://bitbucket.org/tarek/distribute/issue/67
- .. _`Issue 70`: https://bitbucket.org/tarek/distribute/issue/70
- .. _`Issue 72`: https://bitbucket.org/tarek/distribute/issue/72
- .. _`Issue 74`: https://bitbucket.org/tarek/distribute/issue/74
- .. _`Issue 80`: https://bitbucket.org/tarek/distribute/issue/80
- .. _`Issue 86`: https://bitbucket.org/tarek/distribute/issue/86
- .. _`Issue 87`: https://bitbucket.org/tarek/distribute/issue/87
- .. _`Issue 89`: https://bitbucket.org/tarek/distribute/issue/89
- .. _`Issue 90`: https://bitbucket.org/tarek/distribute/issue/90
- .. _`Issue 92`: https://bitbucket.org/tarek/distribute/issue/92
- .. _`Issue 93`: https://bitbucket.org/tarek/distribute/issue/93
- .. _`Issue 99`: https://bitbucket.org/tarek/distribute/issue/99
- .. _`issue
- 449`: https://bitbucket.org/tarek/distribute/issue/449
- .. _`issue #1`: https://bitbucket.org/tarek/distribute/issue/1
- .. _`issue #10`: https://bitbucket.org/tarek/distribute/issue/10
- .. _`issue #10`: https://bitbucket.org/tarek/distribute/issue/10
- .. _`issue #12`: https://bitbucket.org/tarek/distribute/issue/12
- .. _`issue #13`: https://bitbucket.org/tarek/distribute/issue/13
- .. _`issue #16`: https://bitbucket.org/tarek/distribute/issue/16
- .. _`issue #18`: https://bitbucket.org/tarek/distribute/issue/18
- .. _`issue #3`: https://bitbucket.org/tarek/distribute/issue/3
- .. _`issue #3`: https://bitbucket.org/tarek/distribute/issue/3
- .. _`issue #3`: https://bitbucket.org/tarek/distribute/issue/3
- .. _`issue #31`: https://bitbucket.org/tarek/distribute/issue/31
- .. _`issue #40`: https://bitbucket.org/tarek/distribute/issue/40
- .. _`issue #49`: https://bitbucket.org/tarek/distribute/issue/49
- .. _`issue #5`: https://bitbucket.org/tarek/distribute/issue/5
- .. _`issue #50`: https://bitbucket.org/tarek/distribute/issue/50
- .. _`issue #52`: https://bitbucket.org/tarek/distribute/issue/52
- .. _`issue #56`: https://bitbucket.org/tarek/distribute/issue/56
- .. _`issue #6`: https://bitbucket.org/tarek/distribute/issue/6
- .. _`issue #7`: https://bitbucket.org/tarek/distribute/issue/7
- .. _`issue #8`: https://bitbucket.org/tarek/distribute/issue/8
- .. _`issue #9`: https://bitbucket.org/tarek/distribute/issue/9
-
-
-Keywords: CPAN PyPI distutils eggs package management
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: Python Software Foundation License
-Classifier: License :: OSI Approved :: Zope Public License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2.4
-Classifier: Programming Language :: Python :: 2.5
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.1
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Topic :: System :: Archiving :: Packaging
-Classifier: Topic :: System :: Systems Administration
-Classifier: Topic :: Utilities
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License setuptools-0.8/setuptools.egg-info/EGG-INFO/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: setuptools
-Version: 0.6c11
-Summary: xxxx
-Home-page: xxx
-Author: xxx
-Author-email: xxx
-License: xxx
-Description: xxx
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License setuptools-0.8/setuptools.egg-info/PKG-INFO:
-
-Metadata-Version: 1.1
-Name: setuptools
-Version: 0.8
-Summary: Easily download, build, install, upgrade, and uninstall Python packages
-Home-page: https://pypi.python.org/pypi/setuptools
-Author: The fellowship of the packaging
-Author-email: distutils-sig@python.org
-License: PSF or ZPL
-Description: ===============================
- Installing and Using Setuptools
- ===============================
-
- .. contents:: **Table of Contents**
-
-
- -------------------------
- Installation Instructions
- -------------------------
-
- Upgrading from Distribute
- =========================
-
- Currently, Distribute disallows installing Setuptools 0.7+ over Distribute.
- You must first uninstall any active version of Distribute first (see
- `Uninstalling`_).
-
- Upgrading from Setuptools 0.6
- =============================
-
- Upgrading from prior versions of Setuptools is supported. Initial reports
- good success in this regard.
-
- Windows
- =======
-
- The recommended way to install setuptools on Windows is to download
- `ez_setup.py`_ and run it. The script will download the appropriate .egg
- file and install it for you.
-
- .. _ez_setup.py: https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py
-
- For best results, uninstall previous versions FIRST (see `Uninstalling`_).
-
- Once installation is complete, you will find an ``easy_install.exe`` program in
- your Python ``Scripts`` subdirectory. For simple invocation and best results,
- add this directory to your ``PATH`` environment variable, if it is not already
- present.
-
-
- Unix-based Systems including Mac OS X
- =====================================
-
- Download `ez_setup.py`_ and run it using the target Python version. The script
- will download the appropriate version and install it for you::
-
- &gt; wget https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py -O - | python
-
- Note that you will may need to invoke the command with superuser privileges to
- install to the system Python.
-
- Alternatively, on Python 2.6 and later, Setuptools may be installed to a
- user-local path::
-
- &gt; wget https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py
- &gt; python ez_setup.py --user
-
-
- Advanced Installation
- =====================
-
- For more advanced installation options, such as installing to custom
- locations or prefixes, download and extract the source
- tarball from `Setuptools on PyPI &lt;https://pypi.python.org/pypi/setuptools&gt;`_
- and run setup.py with any supported distutils and Setuptools options.
- For example::
-
- setuptools-0.8$ python setup.py --prefix=/opt/setuptools
-
- Use ``--help`` to get a full options list, but we recommend consulting
- the `EasyInstall manual`_ for detailed instructions, especially `the section
- on custom installation locations`_.
-
- .. _EasyInstall manual: https://pythonhosted.org/setuptools/EasyInstall
- .. _the section on custom installation locations: https://pythonhosted.org/setuptools/EasyInstall#custom-installation-locations
-
-
- Downloads
- =========
-
- All setuptools downloads can be found at `the project's home page in the Python
- Package Index`_. Scroll to the very bottom of the page to find the links.
-
- .. _the project's home page in the Python Package Index: https://pypi.python.org/pypi/setuptools
-
- In addition to the PyPI downloads, the development version of ``setuptools``
- is available from the `Bitbucket repo`_, and in-development versions of the
- `0.6 branch`_ are available as well.
-
- .. _Bitbucket repo: https://bitbucket.org/pypa/setuptools/get/default.tar.gz#egg=setuptools-dev
- .. _0.6 branch: http://svn.python.org/projects/sandbox/branches/setuptools-0.6/#egg=setuptools-dev06
-
- Uninstalling
- ============
-
- On Windows, if Setuptools was installed using an ``.exe`` or ``.msi``
- installer, simply use the uninstall feature of "Add/Remove Programs" in the
- Control Panel.
-
- Otherwise, to uninstall Setuptools or Distribute, regardless of the Python
- version, delete all ``setuptools*`` and ``distribute*`` files and
- directories from your system's ``site-packages`` directory
- (and any other ``sys.path`` directories) FIRST.
-
- If you are upgrading or otherwise plan to re-install Setuptools or Distribute,
- nothing further needs to be done. If you want to completely remove Setuptools,
- you may also want to remove the 'easy_install' and 'easy_install-x.x' scripts
- and associated executables installed to the Python scripts directory.
-
- --------------------------------
- Using Setuptools and EasyInstall
- --------------------------------
-
- Here are some of the available manuals, tutorials, and other resources for
- learning about Setuptools, Python Eggs, and EasyInstall:
-
- * `The EasyInstall user's guide and reference manual`_
- * `The setuptools Developer's Guide`_
- * `The pkg_resources API reference`_
- * `Package Compatibility Notes`_ (user-maintained)
- * `The Internal Structure of Python Eggs`_
-
- Questions, comments, and bug reports should be directed to the `distutils-sig
- mailing list`_. If you have written (or know of) any tutorials, documentation,
- plugins, or other resources for setuptools users, please let us know about
- them there, so this reference list can be updated. If you have working,
- *tested* patches to correct problems or add features, you may submit them to
- the `setuptools bug tracker`_.
-
- .. _setuptools bug tracker: https://bitbucket.org/pypa/setuptools/issues
- .. _Package Compatibility Notes: https://pythonhosted.org/setuptools/PackageNotes
- .. _The Internal Structure of Python Eggs: https://pythonhosted.org/setuptools/formats.html
- .. _The setuptools Developer's Guide: https://pythonhosted.org/setuptools/setuptools.html
- .. _The pkg_resources API reference: https://pythonhosted.org/setuptools/pkg_resources.html
- .. _The EasyInstall user's guide and reference manual: https://pythonhosted.org/setuptools/easy_install.html
- .. _distutils-sig mailing list: http://mail.python.org/pipermail/distutils-sig/
-
-
- -------
- Credits
- -------
-
- * The original design for the ``.egg`` format and the ``pkg_resources`` API was
- co-created by Phillip Eby and Bob Ippolito. Bob also implemented the first
- version of ``pkg_resources``, and supplied the OS X operating system version
- compatibility algorithm.
-
- * Ian Bicking implemented many early "creature comfort" features of
- easy_install, including support for downloading via Sourceforge and
- Subversion repositories. Ian's comments on the Web-SIG about WSGI
- application deployment also inspired the concept of "entry points" in eggs,
- and he has given talks at PyCon and elsewhere to inform and educate the
- community about eggs and setuptools.
-
- * Jim Fulton contributed time and effort to build automated tests of various
- aspects of ``easy_install``, and supplied the doctests for the command-line
- ``.exe`` wrappers on Windows.
-
- * Phillip J. Eby is the principal author and maintainer of setuptools, and
- first proposed the idea of an importable binary distribution format for
- Python application plugins.
-
- * Significant parts of the implementation of setuptools were funded by the Open
- Source Applications Foundation, to provide a plugin infrastructure for the
- Chandler PIM application. In addition, many OSAF staffers (such as Mike
- "Code Bear" Taylor) contributed their time and stress as guinea pigs for the
- use of eggs and setuptools, even before eggs were "cool". (Thanks, guys!)
-
- .. _files:
-
- =======
- CHANGES
- =======
-
- ---
- 0.8
- ---
-
- * Code base now runs on Python 2.4 - Python 3.3 without Python 2to3
- conversion.
-
- -----
- 0.7.8
- -----
-
- * Distribute #375: Yet another fix for yet another regression.
-
- -----
- 0.7.7
- -----
-
- * Distribute #375: Repair AttributeError created in last release (redo).
- * `Issue #30`_: Added test for get_cache_path.
-
- -----
- 0.7.6
- -----
-
- * Distribute #375: Repair AttributeError created in last release.
-
- -----
- 0.7.5
- -----
-
- * `Issue #21`_: Restore Python 2.4 compatibility in ``test_easy_install``.
- * Distribute #375: Merged additional warning from Distribute 0.6.46.
- * Now honor the environment variable
- ``SETUPTOOLS_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT`` in addition to the now
- deprecated ``DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT``.
-
- -----
- 0.7.4
- -----
-
- * Issue #20: Fix comparison of parsed SVN version on Python 3.
-
- -----
- 0.7.3
- -----
-
- * Issue #1: Disable installation of Windows-specific files on non-Windows systems.
- * Use new sysconfig module with Python 2.7 or &gt;=3.2.
-
- -----
- 0.7.2
- -----
-
- * Issue #14: Use markerlib when the `parser` module is not available.
- * Issue #10: ``ez_setup.py`` now uses HTTPS to download setuptools from PyPI.
-
- -----
- 0.7.1
- -----
-
- * Fix NameError (Issue #3) again - broken in bad merge.
-
- ---
- 0.7
- ---
-
- * Merged Setuptools and Distribute. See docs/merge.txt for details.
-
- Added several features that were slated for setuptools 0.6c12:
-
- * Index URL now defaults to HTTPS.
- * Added experimental environment marker support. Now clients may designate a
- PEP-426 environment marker for "extra" dependencies. Setuptools uses this
- feature in ``setup.py`` for optional SSL and certificate validation support
- on older platforms. Based on Distutils-SIG discussions, the syntax is
- somewhat tentative. There should probably be a PEP with a firmer spec before
- the feature should be considered suitable for use.
- * Added support for SSL certificate validation when installing packages from
- an HTTPS service.
-
- -----
- 0.7b4
- -----
-
- * Issue #3: Fixed NameError in SSL support.
-
- ------
- 0.6.49
- ------
-
- * Move warning check in ``get_cache_path`` to follow the directory creation
- to avoid errors when the cache path does not yet exist. Fixes the error
- reported in #375.
-
- ------
- 0.6.48
- ------
-
- * Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in
- 0.6.46 (redo).
-
- ------
- 0.6.47
- ------
-
- * Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in
- 0.6.46.
-
- ------
- 0.6.46
- ------
-
- * Issue #375: Issue a warning if the PYTHON_EGG_CACHE or otherwise
- customized egg cache location specifies a directory that's group- or
- world-writable.
-
- ------
- 0.6.45
- ------
-
- * Issue #379: ``distribute_setup.py`` now traps VersionConflict as well,
- restoring ability to upgrade from an older setuptools version.
-
- ------
- 0.6.44
- ------
-
- * ``distribute_setup.py`` has been updated to allow Setuptools 0.7 to
- satisfy use_setuptools.
-
- ------
- 0.6.43
- ------
-
- * Issue #378: Restore support for Python 2.4 Syntax (regression in 0.6.42).
-
- ------
- 0.6.42
- ------
-
- * External links finder no longer yields duplicate links.
- * Issue #337: Moved site.py to setuptools/site-patch.py (graft of very old
- patch from setuptools trunk which inspired PR #31).
-
- ------
- 0.6.41
- ------
-
- * Issue #27: Use public api for loading resources from zip files rather than
- the private method `_zip_directory_cache`.
- * Added a new function ``easy_install.get_win_launcher`` which may be used by
- third-party libraries such as buildout to get a suitable script launcher.
-
- ------
- 0.6.40
- ------
-
- * Issue #376: brought back cli.exe and gui.exe that were deleted in the
- previous release.
-
- ------
- 0.6.39
- ------
-
- * Add support for console launchers on ARM platforms.
- * Fix possible issue in GUI launchers where the subsystem was not supplied to
- the linker.
- * Launcher build script now refactored for robustness.
- * Issue #375: Resources extracted from a zip egg to the file system now also
- check the contents of the file against the zip contents during each
- invocation of get_resource_filename.
-
- ------
- 0.6.38
- ------
-
- * Issue #371: The launcher manifest file is now installed properly.
-
- ------
- 0.6.37
- ------
-
- * Issue #143: Launcher scripts, including easy_install itself, are now
- accompanied by a manifest on 32-bit Windows environments to avoid the
- Installer Detection Technology and thus undesirable UAC elevation described
- in `this Microsoft article
- &lt;http://technet.microsoft.com/en-us/library/cc709628%28WS.10%29.aspx&gt;`_.
-
- ------
- 0.6.36
- ------
-
- * Pull Request #35: In `Buildout issue 64
- &lt;https://github.com/buildout/buildout/issues/64&gt;`_, it was reported that
- under Python 3, installation of distutils scripts could attempt to copy
- the ``__pycache__`` directory as a file, causing an error, apparently only
- under Windows. Easy_install now skips all directories when processing
- metadata scripts.
-
- ------
- 0.6.35
- ------
-
-
- Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in
- how it parses version numbers.
-
- * Issue #278: Restored compatibility with distribute 0.6.22 and setuptools
- 0.6. Updated the documentation to match more closely with the version
- parsing as intended in setuptools 0.6.
-
- ------
- 0.6.34
- ------
-
- * Issue #341: 0.6.33 fails to build under Python 2.4.
-
- ------
- 0.6.33
- ------
-
- * Fix 2 errors with Jython 2.5.
- * Fix 1 failure with Jython 2.5 and 2.7.
- * Disable workaround for Jython scripts on Linux systems.
- * Issue #336: `setup.py` no longer masks failure exit code when tests fail.
- * Fix issue in pkg_resources where try/except around a platform-dependent
- import would trigger hook load failures on Mercurial. See pull request 32
- for details.
- * Issue #341: Fix a ResourceWarning.
-
- ------
- 0.6.32
- ------
-
- * Fix test suite with Python 2.6.
- * Fix some DeprecationWarnings and ResourceWarnings.
- * Issue #335: Backed out `setup_requires` superceding installed requirements
- until regression can be addressed.
-
- ------
- 0.6.31
- ------
-
- * Issue #303: Make sure the manifest only ever contains UTF-8 in Python 3.
- * Issue #329: Properly close files created by tests for compatibility with
- Jython.
- * Work around Jython bugs `#1980 &lt;http://bugs.jython.org/issue1980&gt;`_ and
- `#1981 &lt;http://bugs.jython.org/issue1981&gt;`_.
- * `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
- such as numpy does. This change should address
- `virtualenv #359 &lt;https://github.com/pypa/virtualenv/issues/359&gt;`_ as long
- as the system encoding is UTF-8 or the IO encoding is specified in the
- environment, i.e.::
-
- PYTHONIOENCODING=utf8 pip install numpy
-
- * Fix for encoding issue when installing from Windows executable on Python 3.
- * `Issue #323`_: Allow `setup_requires` requirements to supercede installed
- requirements. Added some new keyword arguments to existing pkg_resources
- methods. Also had to updated how __path__ is handled for namespace packages
- to ensure that when a new egg distribution containing a namespace package is
- placed on sys.path, the entries in __path__ are found in the same order they
- would have been in had that egg been on the path when pkg_resources was
- first imported.
-
- ------
- 0.6.30
- ------
-
- * `Issue #328`_: Clean up temporary directories in distribute_setup.py.
- * Fix fatal bug in distribute_setup.py.
-
- ------
- 0.6.29
- ------
-
- * Pull Request #14: Honor file permissions in zip files.
- * `Issue #327`_: Merged pull request #24 to fix a dependency problem with pip.
- * Merged pull request #23 to fix https://github.com/pypa/virtualenv/issues/301.
- * If Sphinx is installed, the `upload_docs` command now runs `build_sphinx`
- to produce uploadable documentation.
- * `Issue #326`_: `upload_docs` provided mangled auth credentials under Python 3.
- * `Issue #320`_: Fix check for "createable" in distribute_setup.py.
- * `Issue #305`_: Remove a warning that was triggered during normal operations.
- * `Issue #311`_: Print metadata in UTF-8 independent of platform.
- * `Issue #303`_: Read manifest file with UTF-8 encoding under Python 3.
- * `Issue #301`_: Allow to run tests of namespace packages when using 2to3.
- * `Issue #304`_: Prevent import loop in site.py under Python 3.3.
- * `Issue #283`_: Reenable scanning of `*.pyc` / `*.pyo` files on Python 3.3.
- * `Issue #299`_: The develop command didn't work on Python 3, when using 2to3,
- as the egg link would go to the Python 2 source. Linking to the 2to3'd code
- in build/lib makes it work, although you will have to rebuild the module
- before testing it.
- * `Issue #306`_: Even if 2to3 is used, we build in-place under Python 2.
- * `Issue #307`_: Prints the full path when .svn/entries is broken.
- * `Issue #313`_: Support for sdist subcommands (Python 2.7)
- * `Issue #314`_: test_local_index() would fail an OS X.
- * `Issue #310`_: Non-ascii characters in a namespace __init__.py causes errors.
- * `Issue #218`_: Improved documentation on behavior of `package_data` and
- `include_package_data`. Files indicated by `package_data` are now included
- in the manifest.
- * `distribute_setup.py` now allows a `--download-base` argument for retrieving
- distribute from a specified location.
-
- ------
- 0.6.28
- ------
-
- * `Issue #294`_: setup.py can now be invoked from any directory.
- * Scripts are now installed honoring the umask.
- * Added support for .dist-info directories.
- * `Issue #283`_: Fix and disable scanning of `*.pyc` / `*.pyo` files on
- Python 3.3.
-
- ------
- 0.6.27
- ------
-
- * Support current snapshots of CPython 3.3.
- * Distribute now recognizes README.rst as a standard, default readme file.
- * Exclude 'encodings' modules when removing modules from sys.modules.
- Workaround for #285.
- * `Issue #231`_: Don't fiddle with system python when used with buildout
- (bootstrap.py)
-
- ------
- 0.6.26
- ------
-
- * `Issue #183`_: Symlinked files are now extracted from source distributions.
- * `Issue #227`_: Easy_install fetch parameters are now passed during the
- installation of a source distribution; now fulfillment of setup_requires
- dependencies will honor the parameters passed to easy_install.
-
- ------
- 0.6.25
- ------
-
- * `Issue #258`_: Workaround a cache issue
- * `Issue #260`_: distribute_setup.py now accepts the --user parameter for
- Python 2.6 and later.
- * `Issue #262`_: package_index.open_with_auth no longer throws LookupError
- on Python 3.
- * `Issue #269`_: AttributeError when an exception occurs reading Manifest.in
- on late releases of Python.
- * `Issue #272`_: Prevent TypeError when namespace package names are unicode
- and single-install-externally-managed is used. Also fixes PIP `issue
- 449`_.
- * `Issue #273`_: Legacy script launchers now install with Python2/3 support.
-
- ------
- 0.6.24
- ------
-
- * `Issue #249`_: Added options to exclude 2to3 fixers
-
- ------
- 0.6.23
- ------
-
- * `Issue #244`_: Fixed a test
- * `Issue #243`_: Fixed a test
- * `Issue #239`_: Fixed a test
- * `Issue #240`_: Fixed a test
- * `Issue #241`_: Fixed a test
- * `Issue #237`_: Fixed a test
- * `Issue #238`_: easy_install now uses 64bit executable wrappers on 64bit Python
- * `Issue #208`_: Fixed parsed_versions, it now honors post-releases as noted in the documentation
- * `Issue #207`_: Windows cli and gui wrappers pass CTRL-C to child python process
- * `Issue #227`_: easy_install now passes its arguments to setup.py bdist_egg
- * `Issue #225`_: Fixed a NameError on Python 2.5, 2.4
-
- ------
- 0.6.21
- ------
-
- * `Issue #225`_: FIxed a regression on py2.4
-
- ------
- 0.6.20
- ------
-
- * `Issue #135`_: Include url in warning when processing URLs in package_index.
- * `Issue #212`_: Fix issue where easy_instal fails on Python 3 on windows installer.
- * `Issue #213`_: Fix typo in documentation.
-
- ------
- 0.6.19
- ------
-
- * `Issue 206`_: AttributeError: 'HTTPMessage' object has no attribute 'getheaders'
-
- ------
- 0.6.18
- ------
-
- * `Issue 210`_: Fixed a regression introduced by `Issue 204`_ fix.
-
- ------
- 0.6.17
- ------
-
- * Support 'DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT' environment
- variable to allow to disable installation of easy_install-${version} script.
- * Support Python &gt;=3.1.4 and &gt;=3.2.1.
- * `Issue 204`_: Don't try to import the parent of a namespace package in
- declare_namespace
- * `Issue 196`_: Tolerate responses with multiple Content-Length headers
- * `Issue 205`_: Sandboxing doesn't preserve working_set. Leads to setup_requires
- problems.
-
- ------
- 0.6.16
- ------
-
- * Builds sdist gztar even on Windows (avoiding `Issue 193`_).
- * `Issue 192`_: Fixed metadata omitted on Windows when package_dir
- specified with forward-slash.
- * `Issue 195`_: Cython build support.
- * `Issue 200`_: Issues with recognizing 64-bit packages on Windows.
-
- ------
- 0.6.15
- ------
-
- * Fixed typo in bdist_egg
- * Several issues under Python 3 has been solved.
- * `Issue 146`_: Fixed missing DLL files after easy_install of windows exe package.
-
- ------
- 0.6.14
- ------
-
- * `Issue 170`_: Fixed unittest failure. Thanks to Toshio.
- * `Issue 171`_: Fixed race condition in unittests cause deadlocks in test suite.
- * `Issue 143`_: Fixed a lookup issue with easy_install.
- Thanks to David and Zooko.
- * `Issue 174`_: Fixed the edit mode when its used with setuptools itself
-
- ------
- 0.6.13
- ------
-
- * `Issue 160`_: 2.7 gives ValueError("Invalid IPv6 URL")
- * `Issue 150`_: Fixed using ~/.local even in a --no-site-packages virtualenv
- * `Issue 163`_: scan index links before external links, and don't use the md5 when
- comparing two distributions
-
- ------
- 0.6.12
- ------
-
- * `Issue 149`_: Fixed various failures on 2.3/2.4
-
- ------
- 0.6.11
- ------
-
- * Found another case of SandboxViolation - fixed
- * `Issue 15`_ and 48: Introduced a socket timeout of 15 seconds on url openings
- * Added indexsidebar.html into MANIFEST.in
- * `Issue 108`_: Fixed TypeError with Python3.1
- * `Issue 121`_: Fixed --help install command trying to actually install.
- * `Issue 112`_: Added an os.makedirs so that Tarek's solution will work.
- * `Issue 133`_: Added --no-find-links to easy_install
- * Added easy_install --user
- * `Issue 100`_: Fixed develop --user not taking '.' in PYTHONPATH into account
- * `Issue 134`_: removed spurious UserWarnings. Patch by VanLindberg
- * `Issue 138`_: cant_write_to_target error when setup_requires is used.
- * `Issue 147`_: respect the sys.dont_write_bytecode flag
-
- ------
- 0.6.10
- ------
-
- * Reverted change made for the DistributionNotFound exception because
- zc.buildout uses the exception message to get the name of the
- distribution.
-
- -----
- 0.6.9
- -----
-
- * `Issue 90`_: unknown setuptools version can be added in the working set
- * `Issue 87`_: setupt.py doesn't try to convert distribute_setup.py anymore
- Initial Patch by arfrever.
- * `Issue 89`_: added a side bar with a download link to the doc.
- * `Issue 86`_: fixed missing sentence in pkg_resources doc.
- * Added a nicer error message when a DistributionNotFound is raised.
- * `Issue 80`_: test_develop now works with Python 3.1
- * `Issue 93`_: upload_docs now works if there is an empty sub-directory.
- * `Issue 70`_: exec bit on non-exec files
- * `Issue 99`_: now the standalone easy_install command doesn't uses a
- "setup.cfg" if any exists in the working directory. It will use it
- only if triggered by ``install_requires`` from a setup.py call
- (install, develop, etc).
- * `Issue 101`_: Allowing ``os.devnull`` in Sandbox
- * `Issue 92`_: Fixed the "no eggs" found error with MacPort
- (platform.mac_ver() fails)
- * `Issue 103`_: test_get_script_header_jython_workaround not run
- anymore under py3 with C or POSIX local. Contributed by Arfrever.
- * `Issue 104`_: remvoved the assertion when the installation fails,
- with a nicer message for the end user.
- * `Issue 100`_: making sure there's no SandboxViolation when
- the setup script patches setuptools.
-
- -----
- 0.6.8
- -----
-
- * Added "check_packages" in dist. (added in Setuptools 0.6c11)
- * Fixed the DONT_PATCH_SETUPTOOLS state.
-
- -----
- 0.6.7
- -----
-
- * `Issue 58`_: Added --user support to the develop command
- * `Issue 11`_: Generated scripts now wrap their call to the script entry point
- in the standard "if name == 'main'"
- * Added the 'DONT_PATCH_SETUPTOOLS' environment variable, so virtualenv
- can drive an installation that doesn't patch a global setuptools.
- * Reviewed unladen-swallow specific change from
- http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&amp;r=719
- and determined that it no longer applies. Distribute should work fine with
- Unladen Swallow 2009Q3.
- * `Issue 21`_: Allow PackageIndex.open_url to gracefully handle all cases of a
- httplib.HTTPException instead of just InvalidURL and BadStatusLine.
- * Removed virtual-python.py from this distribution and updated documentation
- to point to the actively maintained virtualenv instead.
- * `Issue 64`_: use_setuptools no longer rebuilds the distribute egg every
- time it is run
- * use_setuptools now properly respects the requested version
- * use_setuptools will no longer try to import a distribute egg for the
- wrong Python version
- * `Issue 74`_: no_fake should be True by default.
- * `Issue 72`_: avoid a bootstrapping issue with easy_install -U
-
- -----
- 0.6.6
- -----
-
- * Unified the bootstrap file so it works on both py2.x and py3k without 2to3
- (patch by Holger Krekel)
-
- -----
- 0.6.5
- -----
-
- * `Issue 65`_: cli.exe and gui.exe are now generated at build time,
- depending on the platform in use.
-
- * `Issue 67`_: Fixed doc typo (PEP 381/382)
-
- * Distribute no longer shadows setuptools if we require a 0.7-series
- setuptools. And an error is raised when installing a 0.7 setuptools with
- distribute.
-
- * When run from within buildout, no attempt is made to modify an existing
- setuptools egg, whether in a shared egg directory or a system setuptools.
-
- * Fixed a hole in sandboxing allowing builtin file to write outside of
- the sandbox.
-
- -----
- 0.6.4
- -----
-
- * Added the generation of `distribute_setup_3k.py` during the release.
- This closes `issue #52`_.
-
- * Added an upload_docs command to easily upload project documentation to
- PyPI's https://pythonhosted.org. This close `issue #56`_.
-
- * Fixed a bootstrap bug on the use_setuptools() API.
-
- -----
- 0.6.3
- -----
-
- setuptools
- ==========
-
- * Fixed a bunch of calls to file() that caused crashes on Python 3.
-
- bootstrapping
- =============
-
- * Fixed a bug in sorting that caused bootstrap to fail on Python 3.
-
- -----
- 0.6.2
- -----
-
- setuptools
- ==========
-
- * Added Python 3 support; see docs/python3.txt.
- This closes http://bugs.python.org/setuptools/issue39.
-
- * Added option to run 2to3 automatically when installing on Python 3.
- This closes `issue #31`_.
-
- * Fixed invalid usage of requirement.parse, that broke develop -d.
- This closes http://bugs.python.org/setuptools/issue44.
-
- * Fixed script launcher for 64-bit Windows.
- This closes http://bugs.python.org/setuptools/issue2.
-
- * KeyError when compiling extensions.
- This closes http://bugs.python.org/setuptools/issue41.
-
- bootstrapping
- =============
-
- * Fixed bootstrap not working on Windows. This closes `issue #49`_.
-
- * Fixed 2.6 dependencies. This closes `issue #50`_.
-
- * Make sure setuptools is patched when running through easy_install
- This closes http://bugs.python.org/setuptools/issue40.
-
- -----
- 0.6.1
- -----
-
- setuptools
- ==========
-
- * package_index.urlopen now catches BadStatusLine and malformed url errors.
- This closes `issue #16`_ and `issue #18`_.
-
- * zip_ok is now False by default. This closes
- http://bugs.python.org/setuptools/issue33.
-
- * Fixed invalid URL error catching. http://bugs.python.org/setuptools/issue20.
-
- * Fixed invalid bootstraping with easy_install installation (`issue #40`_).
- Thanks to Florian Schulze for the help.
-
- * Removed buildout/bootstrap.py. A new repository will create a specific
- bootstrap.py script.
-
-
- bootstrapping
- =============
-
- * The boostrap process leave setuptools alone if detected in the system
- and --root or --prefix is provided, but is not in the same location.
- This closes `issue #10`_.
-
- ---
- 0.6
- ---
-
- setuptools
- ==========
-
- * Packages required at build time where not fully present at install time.
- This closes `issue #12`_.
-
- * Protected against failures in tarfile extraction. This closes `issue #10`_.
-
- * Made Jython api_tests.txt doctest compatible. This closes `issue #7`_.
-
- * sandbox.py replaced builtin type file with builtin function open. This
- closes `issue #6`_.
-
- * Immediately close all file handles. This closes `issue #3`_.
-
- * Added compatibility with Subversion 1.6. This references `issue #1`_.
-
- pkg_resources
- =============
-
- * Avoid a call to /usr/bin/sw_vers on OSX and use the official platform API
- instead. Based on a patch from ronaldoussoren. This closes `issue #5`_.
-
- * Fixed a SandboxViolation for mkdir that could occur in certain cases.
- This closes `issue #13`_.
-
- * Allow to find_on_path on systems with tight permissions to fail gracefully.
- This closes `issue #9`_.
-
- * Corrected inconsistency between documentation and code of add_entry.
- This closes `issue #8`_.
-
- * Immediately close all file handles. This closes `issue #3`_.
-
- easy_install
- ============
-
- * Immediately close all file handles. This closes `issue #3`_.
-
-
- .. _`Issue #135`: https://bitbucket.org/tarek/distribute/issue/135
- .. _`Issue #183`: https://bitbucket.org/tarek/distribute/issue/183
- .. _`Issue #207`: https://bitbucket.org/tarek/distribute/issue/207
- .. _`Issue #208`: https://bitbucket.org/tarek/distribute/issue/208
- .. _`Issue #21`: https://bitbucket.org/tarek/distribute/issue/21
- .. _`Issue #212`: https://bitbucket.org/tarek/distribute/issue/212
- .. _`Issue #213`: https://bitbucket.org/tarek/distribute/issue/213
- .. _`Issue #218`: https://bitbucket.org/tarek/distribute/issue/218
- .. _`Issue #225`: https://bitbucket.org/tarek/distribute/issue/225
- .. _`Issue #225`: https://bitbucket.org/tarek/distribute/issue/225
- .. _`Issue #227`: https://bitbucket.org/tarek/distribute/issue/227
- .. _`Issue #227`: https://bitbucket.org/tarek/distribute/issue/227
- .. _`Issue #231`: https://bitbucket.org/tarek/distribute/issue/231
- .. _`Issue #237`: https://bitbucket.org/tarek/distribute/issue/237
- .. _`Issue #238`: https://bitbucket.org/tarek/distribute/issue/238
- .. _`Issue #239`: https://bitbucket.org/tarek/distribute/issue/239
- .. _`Issue #240`: https://bitbucket.org/tarek/distribute/issue/240
- .. _`Issue #241`: https://bitbucket.org/tarek/distribute/issue/241
- .. _`Issue #243`: https://bitbucket.org/tarek/distribute/issue/243
- .. _`Issue #244`: https://bitbucket.org/tarek/distribute/issue/244
- .. _`Issue #249`: https://bitbucket.org/tarek/distribute/issue/249
- .. _`Issue #258`: https://bitbucket.org/tarek/distribute/issue/258
- .. _`Issue #260`: https://bitbucket.org/tarek/distribute/issue/260
- .. _`Issue #262`: https://bitbucket.org/tarek/distribute/issue/262
- .. _`Issue #269`: https://bitbucket.org/tarek/distribute/issue/269
- .. _`Issue #272`: https://bitbucket.org/tarek/distribute/issue/272
- .. _`Issue #273`: https://bitbucket.org/tarek/distribute/issue/273
- .. _`Issue #283`: https://bitbucket.org/tarek/distribute/issue/283
- .. _`Issue #283`: https://bitbucket.org/tarek/distribute/issue/283
- .. _`Issue #294`: https://bitbucket.org/tarek/distribute/issue/294
- .. _`Issue #299`: https://bitbucket.org/tarek/distribute/issue/299
- .. _`Issue #30`: https://bitbucket.org/tarek/distribute/issue/30
- .. _`Issue #301`: https://bitbucket.org/tarek/distribute/issue/301
- .. _`Issue #303`: https://bitbucket.org/tarek/distribute/issue/303
- .. _`Issue #304`: https://bitbucket.org/tarek/distribute/issue/304
- .. _`Issue #305`: https://bitbucket.org/tarek/distribute/issue/305
- .. _`Issue #306`: https://bitbucket.org/tarek/distribute/issue/306
- .. _`Issue #307`: https://bitbucket.org/tarek/distribute/issue/307
- .. _`Issue #310`: https://bitbucket.org/tarek/distribute/issue/310
- .. _`Issue #311`: https://bitbucket.org/tarek/distribute/issue/311
- .. _`Issue #313`: https://bitbucket.org/tarek/distribute/issue/313
- .. _`Issue #314`: https://bitbucket.org/tarek/distribute/issue/314
- .. _`Issue #320`: https://bitbucket.org/tarek/distribute/issue/320
- .. _`Issue #323`: https://bitbucket.org/tarek/distribute/issue/323
- .. _`Issue #326`: https://bitbucket.org/tarek/distribute/issue/326
- .. _`Issue #327`: https://bitbucket.org/tarek/distribute/issue/327
- .. _`Issue #328`: https://bitbucket.org/tarek/distribute/issue/328
- .. _`Issue #334`: https://bitbucket.org/tarek/distribute/issue/334
- .. _`Issue 100`: https://bitbucket.org/tarek/distribute/issue/100
- .. _`Issue 100`: https://bitbucket.org/tarek/distribute/issue/100
- .. _`Issue 101`: https://bitbucket.org/tarek/distribute/issue/101
- .. _`Issue 103`: https://bitbucket.org/tarek/distribute/issue/103
- .. _`Issue 104`: https://bitbucket.org/tarek/distribute/issue/104
- .. _`Issue 108`: https://bitbucket.org/tarek/distribute/issue/108
- .. _`Issue 11`: https://bitbucket.org/tarek/distribute/issue/11
- .. _`Issue 112`: https://bitbucket.org/tarek/distribute/issue/112
- .. _`Issue 121`: https://bitbucket.org/tarek/distribute/issue/121
- .. _`Issue 133`: https://bitbucket.org/tarek/distribute/issue/133
- .. _`Issue 134`: https://bitbucket.org/tarek/distribute/issue/134
- .. _`Issue 138`: https://bitbucket.org/tarek/distribute/issue/138
- .. _`Issue 143`: https://bitbucket.org/tarek/distribute/issue/143
- .. _`Issue 146`: https://bitbucket.org/tarek/distribute/issue/146
- .. _`Issue 147`: https://bitbucket.org/tarek/distribute/issue/147
- .. _`Issue 149`: https://bitbucket.org/tarek/distribute/issue/149
- .. _`Issue 15`: https://bitbucket.org/tarek/distribute/issue/15
- .. _`Issue 150`: https://bitbucket.org/tarek/distribute/issue/150
- .. _`Issue 160`: https://bitbucket.org/tarek/distribute/issue/160
- .. _`Issue 163`: https://bitbucket.org/tarek/distribute/issue/163
- .. _`Issue 170`: https://bitbucket.org/tarek/distribute/issue/170
- .. _`Issue 171`: https://bitbucket.org/tarek/distribute/issue/171
- .. _`Issue 174`: https://bitbucket.org/tarek/distribute/issue/174
- .. _`Issue 192`: https://bitbucket.org/tarek/distribute/issue/192
- .. _`Issue 193`: https://bitbucket.org/tarek/distribute/issue/193
- .. _`Issue 195`: https://bitbucket.org/tarek/distribute/issue/195
- .. _`Issue 196`: https://bitbucket.org/tarek/distribute/issue/196
- .. _`Issue 200`: https://bitbucket.org/tarek/distribute/issue/200
- .. _`Issue 204`: https://bitbucket.org/tarek/distribute/issue/204
- .. _`Issue 204`: https://bitbucket.org/tarek/distribute/issue/204
- .. _`Issue 205`: https://bitbucket.org/tarek/distribute/issue/205
- .. _`Issue 206`: https://bitbucket.org/tarek/distribute/issue/206
- .. _`Issue 21`: https://bitbucket.org/tarek/distribute/issue/21
- .. _`Issue 210`: https://bitbucket.org/tarek/distribute/issue/210
- .. _`Issue 58`: https://bitbucket.org/tarek/distribute/issue/58
- .. _`Issue 64`: https://bitbucket.org/tarek/distribute/issue/64
- .. _`Issue 65`: https://bitbucket.org/tarek/distribute/issue/65
- .. _`Issue 67`: https://bitbucket.org/tarek/distribute/issue/67
- .. _`Issue 70`: https://bitbucket.org/tarek/distribute/issue/70
- .. _`Issue 72`: https://bitbucket.org/tarek/distribute/issue/72
- .. _`Issue 74`: https://bitbucket.org/tarek/distribute/issue/74
- .. _`Issue 80`: https://bitbucket.org/tarek/distribute/issue/80
- .. _`Issue 86`: https://bitbucket.org/tarek/distribute/issue/86
- .. _`Issue 87`: https://bitbucket.org/tarek/distribute/issue/87
- .. _`Issue 89`: https://bitbucket.org/tarek/distribute/issue/89
- .. _`Issue 90`: https://bitbucket.org/tarek/distribute/issue/90
- .. _`Issue 92`: https://bitbucket.org/tarek/distribute/issue/92
- .. _`Issue 93`: https://bitbucket.org/tarek/distribute/issue/93
- .. _`Issue 99`: https://bitbucket.org/tarek/distribute/issue/99
- .. _`issue
- 449`: https://bitbucket.org/tarek/distribute/issue/449
- .. _`issue #1`: https://bitbucket.org/tarek/distribute/issue/1
- .. _`issue #10`: https://bitbucket.org/tarek/distribute/issue/10
- .. _`issue #10`: https://bitbucket.org/tarek/distribute/issue/10
- .. _`issue #12`: https://bitbucket.org/tarek/distribute/issue/12
- .. _`issue #13`: https://bitbucket.org/tarek/distribute/issue/13
- .. _`issue #16`: https://bitbucket.org/tarek/distribute/issue/16
- .. _`issue #18`: https://bitbucket.org/tarek/distribute/issue/18
- .. _`issue #3`: https://bitbucket.org/tarek/distribute/issue/3
- .. _`issue #3`: https://bitbucket.org/tarek/distribute/issue/3
- .. _`issue #3`: https://bitbucket.org/tarek/distribute/issue/3
- .. _`issue #31`: https://bitbucket.org/tarek/distribute/issue/31
- .. _`issue #40`: https://bitbucket.org/tarek/distribute/issue/40
- .. _`issue #49`: https://bitbucket.org/tarek/distribute/issue/49
- .. _`issue #5`: https://bitbucket.org/tarek/distribute/issue/5
- .. _`issue #50`: https://bitbucket.org/tarek/distribute/issue/50
- .. _`issue #52`: https://bitbucket.org/tarek/distribute/issue/52
- .. _`issue #56`: https://bitbucket.org/tarek/distribute/issue/56
- .. _`issue #6`: https://bitbucket.org/tarek/distribute/issue/6
- .. _`issue #7`: https://bitbucket.org/tarek/distribute/issue/7
- .. _`issue #8`: https://bitbucket.org/tarek/distribute/issue/8
- .. _`issue #9`: https://bitbucket.org/tarek/distribute/issue/9
-
-
-Keywords: CPAN PyPI distutils eggs package management
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: Python Software Foundation License
-Classifier: License :: OSI Approved :: Zope Public License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2.4
-Classifier: Programming Language :: Python :: 2.5
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.1
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Topic :: System :: Archiving :: Packaging
-Classifier: Topic :: System :: Systems Administration
-Classifier: Topic :: Utilities
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#PSF-2'>Gentoo Package Stock License PSF-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">setxkbmap-1.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License setxkbmap-1.2.0/COPYING:
-
-Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sgml-common-0.6.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.iso.ch/cate/3524030.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">shadow-4.1.2.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://shadow.pld.org.pl/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License shadow-4.1.2.2/COPYING:
-
-NOTE:
- This license has been obsoleted by the change to the BSD-style copyright.
- You may continue to use this license if you wish, but you are under no
- obligation to do so.
-
-(*
-This document is freely plagiarised from the 'Artistic Licence',
-distributed as part of the Perl v4.0 kit by Larry Wall, which is
-available from most major archive sites. I stole it from CrackLib.
-
- $Id: COPYING 1342 2007-11-10 23:46:11Z nekral-guest $
-*)
-
-This documents purpose is to state the conditions under which this
-Package (See definition below) viz: "Shadow", the Shadow Password Suite
-which is held by Julianne Frances Haugh, may be copied, such that the
-copyright holder maintains some semblance of artistic control over the
-development of the package, while giving the users of the package the
-right to use and distribute the Package in a more-or-less customary
-fashion, plus the right to make reasonable modifications.
-
-So there.
-
-***************************************************************************
-
-Definitions:
-
-
-A "Package" refers to the collection of files distributed by the
-Copyright Holder, and derivatives of that collection of files created
-through textual modification, or segments thereof.
-
-"Standard Version" refers to such a Package if it has not been modified,
-or has been modified in accordance with the wishes of the Copyright
-Holder.
-
-"Copyright Holder" is whoever is named in the copyright or copyrights
-for the package.
-
-"You" is you, if you're thinking about copying or distributing this
-Package.
-
-"Reasonable copying fee" is whatever you can justify on the basis of
-media cost, duplication charges, time of people involved, and so on.
-(You will not be required to justify it to the Copyright Holder, but
-only to the computing community at large as a market that must bear the
-fee.)
-
-"Freely Available" means that no fee is charged for the item itself,
-though there may be fees involved in handling the item. It also means
-that recipients of the item may redistribute it under the same
-conditions they received it.
-
-
-1. You may make and give away verbatim copies of the source form of the
-Standard Version of this Package without restriction, provided that you
-duplicate all of the original copyright notices and associated
-disclaimers.
-
-2. You may apply bug fixes, portability fixes and other modifications
-derived from the Public Domain or from the Copyright Holder. A Package
-modified in such a way shall still be considered the Standard Version.
-
-3. You may otherwise modify your copy of this Package in any way,
-provided that you insert a prominent notice in each changed file stating
-how and when AND WHY you changed that file, and provided that you do at
-least ONE of the following:
-
-a) place your modifications in the Public Domain or otherwise make them
-Freely Available, such as by posting said modifications to Usenet or an
-equivalent medium, or placing the modifications on a major archive site
-such as uunet.uu.net, or by allowing the Copyright Holder to include
-your modifications in the Standard Version of the Package.
-
-b) use the modified Package only within your corporation or organization.
-
-c) rename any non-standard executables so the names do not conflict with
-standard executables, which must also be provided, and provide separate
-documentation for each non-standard executable that clearly documents
-how it differs from the Standard Version.
-
-d) make other distribution arrangements with the Copyright Holder.
-
-4. You may distribute the programs of this Package in object code or
-executable form, provided that you do at least ONE of the following:
-
-a) distribute a Standard Version of the executables and library files,
-together with instructions (in the manual page or equivalent) on where
-to get the Standard Version.
-
-b) accompany the distribution with the machine-readable source of the
-Package with your modifications.
-
-c) accompany any non-standard executables with their corresponding
-Standard Version executables, giving the non-standard executables
-non-standard names, and clearly documenting the differences in manual
-pages (or equivalent), together with instructions on where to get the
-Standard Version.
-
-d) make other distribution arrangements with the Copyright Holder.
-
-5. You may charge a reasonable copying fee for any distribution of this
-Package. You may charge any fee you choose for support of this Package.
-YOU MAY NOT CHARGE A FEE FOR THIS PACKAGE ITSELF. However, you may
-distribute this Package in aggregate with other (possibly commercial)
-programs as part of a larger (possibly commercial) software distribution
-provided that YOU DO NOT ADVERTISE this package as a product of your
-own.
-
-6. The name of the Copyright Holder may not be used to endorse or
-promote products derived from this software without specific prior
-written permission.
-
-7. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
- The End
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">shared-mime-info-1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://freedesktop.org/wiki/Software/shared-mime-info">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sharutils-4.7</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/sharutils/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">shflags-1.0.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/shflags/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">shill-test-scripts-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://src.chromium.org">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sil-abyssinica-1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://scripts.sil.org/AbyssinicaSIL">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License OFL:
-
-This Font Software is Copyright (c) 2003-2005, SIL International (http://scripts.sil.org/).
-All Rights Reserved.
-
-"Gentium" is a Reserved Font Name for this Font Software.
-"SIL" is a Reserved Font Name for this Font Software.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.0.
-No modification of the license is permitted, only verbatim copy is allowed.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.0 - 22 November 2005
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of cooperative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide an open
-framework in which fonts may be shared and improved in partnership with
-others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and sold with any software provided that the font
-names of derivative works are changed. The fonts and derivatives,
-however, cannot be released under any other type of license.
-
-DEFINITIONS
-"Font Software" refers to any and all of the following:
- - font files
- - data files
- - source code
- - build scripts
- - documentation
-
-"Reserved Font Name" refers to the Font Software name as seen by
-users and any other names as specified after the copyright statement.
-
-"Standard Version" refers to the collection of Font Software
-components as distributed by the Copyright Holder.
-
-"Modified Version" refers to any derivative font software made by
-adding to, deleting, or substituting -- in part or in whole --
-any of the components of the Standard Version, by changing formats
-or by porting the Font Software to a new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION &amp; CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Standard or Modified Versions, may be sold by itself.
-
-2) Standard or Modified Versions of the Font Software may be bundled,
-redistributed and sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s), in part or in whole, unless explicit written permission is
-granted by the Copyright Holder. This restriction applies to all
-references stored in the Font Software, such as the font menu name and
-other font description fields, which are used to differentiate the
-font from others.
-
-4) The name(s) of the Copyright Holder or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed using this license, and may not be distributed
-under any other license.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">simplejson-2.5.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://undefined.org/python/#simplejson">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License simplejson-2.5.0/LICENSE.txt:
-
-Copyright (c) 2006 Bob Ippolito
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License simplejson-2.5.0/PKG-INFO:
-
-Metadata-Version: 1.0
-Name: simplejson
-Version: 2.5.0
-Summary: Simple, fast, extensible JSON encoder/decoder for Python
-Home-page: http://github.com/simplejson/simplejson
-Author: Bob Ippolito
-Author-email: bob@redivi.com
-License: MIT License
-Description: simplejson is a simple, fast, complete, correct and extensible
- JSON &lt;http://json.org&gt; encoder and decoder for Python 2.5+. It is
- pure Python code with no dependencies, but includes an optional C
- extension for a serious speed boost.
-
- The latest documentation for simplejson can be read online here:
- http://simplejson.readthedocs.org/
-
- simplejson is the externally maintained development version of the
- json library included with Python 2.6 and Python 3.0, but maintains
- backwards compatibility with Python 2.5.
-
- The encoder may be subclassed to provide serialization in any kind of
- situation, without any special support by the objects to be serialized
- (somewhat like pickle).
-
- The decoder can handle incoming JSON strings of any specified encoding
- (UTF-8 by default).
-
-
-Platform: any
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Programming Language :: Python
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">smartmontools-5.42</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://smartmontools.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">socat-1.7.2.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.dest-unreach.org/socat/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sox-14.3.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sox.sourceforge.net">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">speex-1.2_rc1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.speex.org">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License speex-1.2rc1/COPYING:
-
-Copyright 2002-2008 Xiph.org Foundation
-Copyright 2002-2008 Jean-Marc Valin
-Copyright 2005-2007 Analog Devices Inc.
-Copyright 2005-2008 Commonwealth Scientific and Industrial Research
- Organisation (CSIRO)
-Copyright 1993, 2002, 2006 David Rowe
-Copyright 2003 EpicGames
-Copyright 1992-1994 Jutta Degener, Carsten Bormann
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-- Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-- Neither the name of the Xiph.org Foundation nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sqlite-3.6.22</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.sqlite.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#as-is'>Gentoo Package Stock License as-is</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sshfs-fuse-2.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://fuse.sourceforge.net/sshfs.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">strace-4.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://sourceforge.net/projects/strace/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License strace-4.8/COPYING:
-
-Copyright (c) 1991, 1992 Paul Kranenburg &lt;pk@cs.few.eur.nl&gt;
-Copyright (c) 1993 Branko Lankester &lt;branko@hacktic.nl&gt;
-Copyright (c) 1993 Ulrich Pegelow &lt;pegelow@moorea.uni-muenster.de&gt;
-Copyright (c) 1995, 1996 Michael Elizabeth Chastain &lt;mec@duracef.shout.net&gt;
-Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey &lt;jrs@world.std.com&gt;
-Copyright (C) 1998-2001 Wichert Akkerman &lt;wakkerma@deephackmode.org&gt;
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License strace-4.8/debian/copyright:
-
-This is the Debian packaged version of strace. For a complete list of
-changes from the upstream version please see the changelog.
-
-The upstream sources can be found at http://sourceforge.net/projects/strace/
-
-This is the copyright as found in the upstream sources:
-
-Copyright (c) 1991, 1992 Paul Kranenburg &lt;pk@cs.few.eur.nl&gt;
-Copyright (c) 1993 Branko Lankester &lt;branko@hacktic.nl&gt;
-Copyright (c) 1993 Ulrich Pegelow &lt;pegelow@moorea.uni-muenster.de&gt;
-Copyright (c) 1995, 1996 Michael Elizabeth Chastain &lt;mec@duracef.shout.net&gt;
-Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey &lt;jrs@world.std.com&gt;
-Copyright (C) 1998-2003 Wichert Akkerman &lt;wakkerma@deephackmode.org&gt;
-Copyright (c) 2002-2008 Roland McGrath &lt;roland@redhat.com&gt;
-Copyright (c) 2003-2008 Dmitry V. Levin &lt;ldv@altlinux.org&gt;
-Copyright (c) 2007-2008 Jan Kratochvil &lt;jan.kratochvil@redhat.com&gt;
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">stressapptest-1.0.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://code.google.com/p/stressapptest/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#Apache-2.0'>Gentoo Package Stock License Apache-2.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">strongswan-5.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.strongswan.org/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License RSA:
-
-Copyright (C) &lt;years&gt;, RSA Data Security, Inc. Created &lt;year&gt;. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD&lt;id&gt; Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD&lt;id&gt; Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-
-----------------------------------------------------------------------
-http://www.ietf.org/ietf-ftp/IPR/RSA-MD-all
-
-The following was recevied Fenbruary 23,2000
-From: "Linn, John" &lt;jlinn@rsasecurity.com&gt;
-
-February 19, 2000
-
- The purpose of this memo is to clarify the status of intellectual
-property rights asserted by RSA Security Inc. ("RSA") in the MD2, MD4 and
-MD5 message-digest algorithms, which are documented in RFC-1319, RFC-1320,
-and RFC-1321 respectively.
-
- Implementations of these message-digest algorithms, including
-implementations derived from the reference C code in RFC-1319, RFC-1320, and
-RFC-1321, may be made, used, and sold without license from RSA for any
-purpose.
-
- No rights other than the ones explicitly set forth above are
-granted. Further, although RSA grants rights to implement certain
-algorithms as defined by identified RFCs, including implementations derived
-from the reference C code in those RFCs, no right to use, copy, sell, or
-distribute any other implementations of the MD2, MD4, or MD5 message-digest
-algorithms created, implemented, or distributed by RSA is hereby granted by
-implication, estoppel, or otherwise. Parties interested in licensing
-security components and toolkits written by RSA should contact the company
-to discuss receiving a license. All other questions should be directed to
-Margaret K. Seif, General Counsel, RSA Security Inc., 36 Crosby Drive,
-Bedford, Massachusetts 01730.
-
- Implementations of the MD2, MD4, or MD5 algorithms may be subject to
-United States laws and regulations controlling the export of technical data,
-computer software, laboratory prototypes and other commodities (including
-the Arms Export Control Act, as amended, and the Export Administration Act
-of 1970). The transfer of certain technical data and commodities may
-require a license from the cognizant agency of the United States Government.
-RSA neither represents that a license shall not be required for a particular
-implementation nor that, if required, one shall be issued.
-
-
- DISCLAIMER: RSA MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES
-OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, VALIDITY OF
-INTELLECTUAL PROPERTY RIGHTS, ISSUED OR PENDING, OR THE ABSENCE OF LATENT OR
-OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE, IN CONNECTION WITH THE MD2, MD4,
-OR MD5 ALGORITHMS. NOTHING IN THIS GRANT OF RIGHTS SHALL BE CONSTRUED AS A
-REPRESENTATION OR WARRANTY GIVEN BY RSA THAT THE IMPLEMENTATION OF THE
-ALGORITHM WILL NOT INFRINGE THE INTELLECTUAL PROPERTY RIGHTS OF ANY THIRD
-PARTY. IN NO EVENT SHALL RSA, ITS TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES,
-PARENTS AND AFFILIATES BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES OF
-ANY KIND RESULTING FROM IMPLEMENTATION OF THIS ALGORITHM, INCLUDING ECONOMIC
-DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER RSA
-SHALL BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF
-THE POSSIBILITY OF SUCH INJURY OR DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Gentoo Package Stock License DES:
-
-Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
-All rights reserved.
-
-This package is an DES implementation written by Eric Young (eay@cryptsoft.com).
-The implementation was written so as to conform with MIT's libdes.
-
-This library is free for commercial and non-commercial use as long as
-the following conditions are aheared to. The following conditions
-apply to all code found in this distribution.
-
-Copyright remains Eric Young's, and as such any Copyright notices in
-the code are not to be removed.
-If this package is used in a product, Eric Young should be given attribution
-as the author of that the SSL library. This can be in the form of a textual
-message at program startup or in documentation (online or textual) provided
-with the package.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by Eric Young (eay@cryptsoft.com)
-
-THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
-The license and distribution terms for any publically available version or
-derivative of this code cannot be changed. i.e. this code cannot simply be
-copied and put under another distrubution license
-[including the GNU Public License.]
-
-The reason behind this being stated in this direct manner is past
-experience in code simply being copied and the attribution removed
-from it and then being distributed as part of other packages. This
-implementation was a non-trivial and unpaid effort.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sudo-1.8.6_p7</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.sudo.ws/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License sudo-1.8.6p7/doc/LICENSE:
-
-Sudo is distributed under the following license:
-
- Copyright (c) 1994-1996, 1998-2012
- Todd C. Miller &lt;Todd.Miller@courtesan.com&gt;
-
- Permission to use, copy, modify, and distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- Sponsored in part by the Defense Advanced Research Projects
- Agency (DARPA) and Air Force Research Laboratory, Air Force
- Materiel Command, USAF, under agreement number F39502-99-1-0512.
-
-The file redblack.c bears the following license:
-
- Copyright (c) 2001 Emin Martinian
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that neither the name of Emin
- Martinian nor the names of any contributors are be used to endorse or
- promote products derived from this software without specific prior
- written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-The files getcwd.c, glob.c, glob.h and snprintf.c bear the following license:
-
- Copyright (c) 1989, 1990, 1991, 1993
- The Regents of the University of California. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-The file fnmatch.c bears the following license:
-
- Copyright (c) 2011, VMware, Inc.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of the VMware, Inc. nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-The embedded copy of zlib bears the following license:
-
- Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- jloup@gzip.org madler@alumni.caltech.edu
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#ISC'>Gentoo Package Stock License ISC</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">swap-init-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">swig-2.0.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.swig.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License swig-2.0.4/CCache/COPYING:
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) 19yy &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License swig-2.0.4/CCache/debian/copyright:
-
-This package was debianized by Paul Russell &lt;prussell@debian.org&gt; on
-Sun, 31 Mar 2002 14:08:57 +0200.
-
-It was downloaded from http://ccache.samba.org/ftp/ccache/
-
-The ccache-zlib patch was downloaded from http://www.gustaebel.de/lars/ccache/
-
-Upstream Author: Andrew Tridgell &lt;tridge@samba.org&gt;
-
-Copyright: 2002-2005 Andrew Tridgell &lt;tridge@samba.org&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301, USA
-
-You are free to distribute this software under the terms of the GNU General
-Public License. On Debian systems, the complete text of the GNU General
-Public License can be found in /usr/share/common-licenses/GPL file.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License swig-2.0.4/COPYRIGHT:
-
-SWIG Copyright and Authors
---------------------------
-
-Copyright (c) 1995-2011 The SWIG Developers
-Copyright (c) 2005-2006 Arizona Board of Regents (University of Arizona).
-Copyright (c) 1998-2005 University of Chicago.
-Copyright (c) 1995-1998 The University of Utah and the Regents of the University of California
-
-Portions also copyrighted by:
- Network Applied Communication Laboratory, Inc
- Information-technology Promotion Agency, Japan
-
-Active SWIG Developers:
- William Fulton (wsf@fultondesigns.co.uk) (SWIG core, Java, C#, Windows, Cygwin)
- Olly Betts (olly@survex.com) (PHP)
- Joseph Wang (joequant@gmail.com) (R)
- Xavier Delacour (xavier.delacour@gmail.com) (Octave)
- David Nadlinger (code@klickverbot.at) (D)
-
-Past SWIG developers and major contributors include:
- Dave Beazley (dave-swig@dabeaz.com) (SWIG core, Python, Tcl, Perl)
- Henning Thielemann (swig@henning-thielemann.de) (Modula3)
- Matthias Köppe (mkoeppe@mail.math.uni-magdeburg.de) (Guile, MzScheme)
- Luigi Ballabio (luigi.ballabio@fastwebnet.it) (STL wrapping)
- Mikel Bancroft (mikel@franz.com) (Allegro CL)
- Surendra Singhi (efuzzyone@netscape.net) (CLISP, CFFI)
- Marcelo Matus (mmatus@acms.arizona.edu) (SWIG core, Python, UTL[python,perl,tcl,ruby])
- Art Yerkes (ayerkes@speakeasy.net) (Ocaml)
- Lyle Johnson (lyle@users.sourceforge.net) (Ruby)
- Charlie Savage (cfis@interserv.com) (Ruby)
- Thien-Thi Nguyen (ttn@glug.org) (build/test/misc)
- Richard Palmer (richard@magicality.org) (PHP)
- Sam Liddicott - Ananova Ltd (saml@liddicott.com) (PHP)
- Tim Hockin - Sun Microsystems (thockin@sun.com) (PHP)
- Kevin Ruland (PHP)
- Shibukawa Yoshiki (Japanese Translation)
- Jason Stewart (jason@openinformatics.com) (Perl5)
- Loic Dachary (Perl5)
- David Fletcher (Perl5)
- Gary Holt (Perl5)
- Masaki Fukushima (Ruby)
- Scott Michel (scottm@cs.ucla.edu) (Java directors)
- Tiger Feng (songyanf@cs.uchicago.edu) (SWIG core)
- Mark Rose (mrose@stm.lbl.gov) (Directors)
- Jonah Beckford (beckford@usermail.com) (CHICKEN)
- Ahmon Dancy (dancy@franz.com) (Allegro CL)
- Dirk Gerrits (Allegro CL)
- Neil Cawse (C#)
- Harco de Hilster (Java)
- Alexey Dyachenko (dyachenko@fromru.com) (Tcl)
- Bob Techentin (Tcl)
- Martin Froehlich &lt;MartinFroehlich@ACM.org&gt; (Guile)
- Marcio Luis Teixeira &lt;marciot@holly.colostate.edu&gt; (Guile)
- Duncan Temple Lang (R)
- Miklos Vajna &lt;vmiklos@frugalware.org&gt; (PHP directors)
- Mark Gossage (mark@gossage.cjb.net) (Lua)
- Gonzalo Garramuno (ggarra@advancedsl.com.ar) (Ruby, Ruby's UTL)
- John Lenz (Guile, MzScheme updates, Chicken module, runtime system)
- Ian Lance Taylor (Go)
- Vadim Zeitlin (PCRE)
- Stefan Zager (szager@gmail.com) (Python)
-
-Past contributors include:
- James Michael DuPont, Clark McGrew, Dustin Mitchell, Ian Cooke, Catalin Dumitrescu, Baran
- Kovuk, Oleg Tolmatcev, Tal Shalif, Lluis Padro, Chris Seatory, Igor Bely, Robin Dunn,
- Edward Zimmermann, David Ascher, Dominique Dumont, Pier Giorgio Esposito, Hasan Baran Kovuk,
- Klaus Wiederänders
- (See CHANGES and CHANGES.current and the bug tracker for a more complete list).
-
-Past students:
- Songyan Feng (Chicago).
- Xinghua Shi (Chicago).
- Jing Cao (Chicago).
- Aquinas Hobor (Chicago).
-
-Historically, the following people contributed to early versions of SWIG.
-Peter Lomdahl, Brad Holian, Shujia Zhou, Niels Jensen, and Tim Germann
-at Los Alamos National Laboratory were the first users. Patrick
-Tullmann at the University of Utah suggested the idea of automatic
-documentation generation. John Schmidt and Kurtis Bleeker at the
-University of Utah tested out the early versions. Chris Johnson
-supported SWIG's developed at the University of Utah. John Buckman,
-Larry Virden, and Tom Schwaller provided valuable input on the first
-releases and improving the portability of SWIG. David Fletcher and
-Gary Holt have provided a great deal of input on improving SWIG's
-Perl5 implementation. Kevin Butler contributed the first Windows NT
-port.
-
-Early bug reports and patches:
-Adam Hupp, Arthur Smyles, Brad Clements, Brett Williams, Buck Hodges,
-Burkhard Kloss, Chia-Liang Kao, Craig Files, Dennis Marsa, Dieter Baron,
-Drake Diedrich, Fleur Diana Dragan, Gary Pennington, Geoffrey Hort, Gerald Williams,
-Greg Anderson, Greg Kochanski, Greg Troxel, Henry Rowley, Irina Kotlova,
-Israel Taller, James Bailey, Jim Fulton, Joel Reed, Jon Travis,
-Junio Hamano, Justin Heyes-Jones, Karl Forner, Keith Davidson,
-Krzysztof Kozminski, Larry Virden, Luke J Crook, Magnus Ljung, Marc Zonzon,
-Mark Howson, Micahel Scharf, Michel Sanner, Mike Romberg, Mike Simons,
-Mike Weiblen, Paul Brannan, Ram Bhamidipaty, Reinhard Fobbe, Rich Wales,
-Richard Salz, Roy Lecates, Rudy Albachten, Scott Drummonds
-Scott Michel, Shaun Lowry, Steve Galser, Tarn Weisner Burton,
-Thomas Weidner, Tony Seward, Uwe Steinmann, Vadim Chugunov, Wyss Clemens,
-Zhong Ren.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License swig-2.0.4/LICENSE:
-
-SWIG is free software: you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version. See the LICENSE-GPL file for
-the full terms of the GNU General Public license version 3.
-
-Portions of SWIG are also licensed under the terms of the licenses
-in the file LICENSE-UNIVERSITIES. You must observe the terms of
-these licenses, as well as the terms of the GNU General Public License,
-when you distribute SWIG.
-
-The SWIG library and examples, under the Lib and Examples top level
-directories, are distributed under the following terms:
-
- You may copy, modify, distribute, and make derivative works based on
- this software, in source code or object code form, without
- restriction. If you distribute the software to others, you may do
- so according to the terms of your choice. This software is offered as
- is, without warranty of any kind.
-
-See the COPYRIGHT file for a list of contributors to SWIG and their
-copyright notices.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License swig-2.0.4/LICENSE-UNIVERSITIES:
-
-SWIG is distributed under the following terms:
-
-I.
-
-Copyright (c) 1995-1998
-The University of Utah and the Regents of the University of California
-All Rights Reserved
-
-Permission is hereby granted, without written agreement and without
-license or royalty fees, to use, copy, modify, and distribute this
-software and its documentation for any purpose, provided that
-(1) The above copyright notice and the following two paragraphs
-appear in all copies of the source code and (2) redistributions
-including binaries reproduces these notices in the supporting
-documentation. Substantial modifications to this software may be
-copyrighted by their authors and need not follow the licensing terms
-described here, provided that the new terms are clearly indicated in
-all files where they apply.
-
-IN NO EVENT SHALL THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, THE
-UNIVERSITY OF UTAH OR DISTRIBUTORS OF THIS SOFTWARE BE LIABLE TO ANY
-PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION,
-EVEN IF THE AUTHORS OR ANY OF THE ABOVE PARTIES HAVE BEEN ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, AND THE UNIVERSITY OF UTAH
-SPECIFICALLY DISCLAIM ANY WARRANTIES,INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
-THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE,
-SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-
-
-II.
-
-This software includes contributions that are Copyright (c) 1998-2005
-University of Chicago.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer. Redistributions
-in binary form must reproduce the above copyright notice, this list of
-conditions and the following disclaimer in the documentation and/or
-other materials provided with the distribution. Neither the name of
-the University of Chicago nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF CHICAGO AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF
-CHICAGO OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-III.
-
-This software includes contributions that are Copyright (c) 2005-2006
-Arizona Board of Regents (University of Arizona).
-All Rights Reserved
-
-Permission is hereby granted, without written agreement and without
-license or royalty fees, to use, copy, modify, and distribute this
-software and its documentation for any purpose, provided that
-(1) The above copyright notice and the following paragraph
-appear in all copies of the source code and (2) redistributions
-including binaries reproduces these notices in the supporting
-documentation. Substantial modifications to this software may be
-copyrighted by their authors and need not follow the licensing terms
-described here, provided that the new terms are clearly indicated in
-all files where they apply.
-
-THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF ARIZONA AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF
-ARIZONA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-<li><a href='#as-is'>Gentoo Package Stock License as-is</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">syslinux-3.83</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://syslinux.zytor.com/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">sysstat-10.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://pagesperso-orange.fr/sebastien.godard/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">system_api-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">tar-1.26</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/tar/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">tcpdump-4.5.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.tcpdump.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License tcpdump-4.5.1/LICENSE:
-
-License: BSD
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- 3. The names of the authors may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">telemetry-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">tibt-jomolhari-0.0.3c</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://sites.google.com/site/chrisfynn2/home/fonts/jomolhari">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#OFL-1.1'>Gentoo Package Stock License OFL-1.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">tiff-4.0.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.remotesensing.org/libtiff/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License tiff-4.0.0/COPYRIGHT:
-
-Copyright (c) 1988-1997 Sam Leffler
-Copyright (c) 1991-1997 Silicon Graphics, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that (i) the above copyright notices and this permission notice appear in
-all copies of the software and related documentation, and (ii) the names of
-Sam Leffler and Silicon Graphics may not be used in any advertising or
-publicity relating to the software without the specific, prior written
-permission of Sam Leffler and Silicon Graphics.
-
-THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
-EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
-WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
-ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
-LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#as-is'>Gentoo Package Stock License as-is</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">time-1.7</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/directory/time.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">timezone-data-2014e</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.iana.org/time-zones">homepage</a></span>
-<div class="licence">
-<pre>Copyright Attribution License chromiumos-overlay/licenses/copyright-attribution/sys-libs/timezone-data:
-
-Copyright (c) 1985, 1987, 1988 The Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms are permitted
-provided that the above copyright notice and this paragraph are
-duplicated in all such forms and that any documentation,
-advertising materials, and other materials related to such
-distribution and use acknowledge that the software was developed
-by the University of California, Berkeley. The name of the
-University may not be used to endorse or promote products derived
-from this software without specific prior written permission.
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-WARRANTIES OF MERCHANT[A]BILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#public-domain'>Gentoo Package Stock License public-domain</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">tlsdate-0.0.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://github.com/ioerror/tlsdate">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License tlsdate-0.0.5/LICENSE:
-
- This file contains the license for tlsdate,
- a free software project to set your system clock securely.
-
- It also lists the licenses for other components used by tlsdate.
-
- For more information about tlsdate, see https://github.com/ioerror/tlsdate
-
- If you got this file as a part of a larger bundle,
- there may be other license terms that you should be aware of.
-
-===============================================================================
-tlsdate is distributed under this license:
-
-Copyright (c) 2011-2012, Jacob Appelbaum &lt;jacob@appelbaum.net&gt;
-Copyright (c) 2011-2012, The Tor Project, Inc.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-
- * Neither the names of the copyright owners nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-===============================================================================
-If you got tlsdate as a static binary with OpenSSL included, then you should
-know:
-
- "This product includes software developed by the OpenSSL Project for use in
- the OpenSSL Toolkit (http://www.openssl.org/)"
-
-===============================================================================
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">tmux-1.9a</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://tmux.sourceforge.net">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#ISC'>Gentoo Package Stock License ISC</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">touch_noise_filter-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">touchbot-1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">touchpad-tests-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">tpm-tools-1.3.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://trousers.sourceforge.net">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#CPL-1.0'>Gentoo Package Stock License CPL-1.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">trapproto-3.4.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License trapproto-3.4.3/COPYING:
-
-Copyright 1987, 1988, 1989, 1990, 1994 by Digital Equipment Corporation,
-Maynard, MA
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">trousers-0.3.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://trousers.sf.net">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#CPL-1.0'>Gentoo Package Stock License CPL-1.0</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">tty-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">turbostat-3.8.11</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://www.kernel.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">u-boot-2013.06</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.denx.de/wiki/U-Boot">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2+'>Gentoo Package Stock License GPL-2+</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">udev-171</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">unrar-4.2.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.rarlab.com/rar_add.htm">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License unRAR:
-
- ****** ***** ****** UnRAR - free utility for RAR archives
- ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ****** ******* ****** License for use and distribution of
- ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ** ** ** ** ** ** FREE portable version
- ~~~~~~~~~~~~~~~~~~~~~
-
- The source code of UnRAR utility is freeware. This means:
-
- 1. All copyrights to RAR and the utility UnRAR are exclusively
- owned by the author - Alexander Roshal.
-
- 2. UnRAR source code may be used in any software to handle
- RAR archives without limitations free of charge, but cannot be
- used to develop RAR (WinRAR) compatible archiver and to
- re-create RAR compression algorithm, which is proprietary.
- Distribution of modified UnRAR source code in separate form
- or as a part of other software is permitted, provided that
- full text of this paragraph, starting from "UnRAR source code"
- words, is included in license, or in documentation if license
- is not available, and in source code comments of resulting package.
-
- 3. The UnRAR utility may be freely distributed. It is allowed
- to distribute UnRAR inside of other software packages.
-
- 4. THE RAR ARCHIVER AND THE UnRAR UTILITY ARE DISTRIBUTED "AS IS".
- NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT
- YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS,
- DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING
- OR MISUSING THIS SOFTWARE.
-
- 5. Installing and using the UnRAR utility signifies acceptance of
- these terms and conditions of the license.
-
- 6. If you don't agree with terms of the license you must remove
- UnRAR files from your storage devices and cease to use the
- utility.
-
- Thank you for your interest in RAR and UnRAR.
-
-
- Alexander L. Roshal
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">update-policy-chromeos-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">update_engine-0.0.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">upstart-1.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://upstart.ubuntu.com/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ureadahead-0.100.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://launchpad.net/ureadahead">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">usbutils-007</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://linux-usb.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">userfeedback-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">util-linux-2.24</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.kernel.org/pub/linux/utils/util-linux/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License util-linux-2.24/COPYING:
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License util-linux-2.24/Documentation/licenses/COPYING.BSD-3:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, and the entire permission notice in its entirety,
- including the disclaimer of warranties.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
-WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License util-linux-2.24/Documentation/licenses/COPYING.UCB:
-
-/*
- * Copyright (c) 1989 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License util-linux-2.24/libblkid/COPYING:
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later
-version.
-
-The complete text of the license is available in the
-../Documentation/licenses/COPYING.LGPLv2.1 file.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License util-linux-2.24/libmount/COPYING:
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later
-version.
-
-The complete text of the license is available in the
-../Documentation/licenses/COPYING.LGPLv2.1 file.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-Scanned Source License util-linux-2.24/libuuid/COPYING:
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the Modified BSD License.
-
-The complete text of the license is available in the
-../Documentation/licenses/COPYING.BSD-3 file.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#public-domain'>Gentoo Package Stock License public-domain</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">util-macros-1.17</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License util-macros-1.17/COPYING:
-
-Copyright 2005 Red Hat, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without
-fee, provided that the above copyright notice appear in all copies
-and that both that copyright notice and this permission notice
-appear in supporting documentation, and that the name of Red Hat
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission. Red
-Hat makes no representations about the suitability of this software
-for any purpose. It is provided "as is" without express or implied
-warranty.
-
-RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
-NO EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-----------------------------------------------------------------------------
-
-Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">utouch-evemu-1.0.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://bitmath.org/code/evemu/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">vboot_reference-1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">verity-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">videoproto-2.3.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License videoproto-2.3.1/COPYING:
-
-Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
-and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital or MIT not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the XFree86 Project.
-
-
-Copyright (c) 2004 The Unichrome Project. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">vim-7.3.409</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.vim.org/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License vim:
-
-License details for VIM Editor:
-
-*uganda.txt* For Vim version 7.2. Last change: 2008 Jun 21
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-
-
- *uganda* *Uganda* *copying* *copyright* *license*
-SUMMARY
- *iccf* *ICCF*
-Vim is Charityware. You can use and copy it as much as you like, but you are
-encouraged to make a donation for needy children in Uganda. Please see |kcc|
-below or visit the ICCF web site, available at these URLs:
-
- http://iccf-holland.org/
- http://www.vim.org/iccf/
- http://www.iccf.nl/
-
-You can also sponsor the development of Vim. Vim sponsors can vote for
-features. See |sponsor|. The money goes to Uganda anyway.
-
-The Open Publication License applies to the Vim documentation, see
-|manual-copyright|.
-
-=== begin of license ===
-
-VIM LICENSE
-
-I) There are no restrictions on distributing unmodified copies of Vim except
- that they must include this license text. You can also distribute
- unmodified parts of Vim, likewise unrestricted except that they must
- include this license text. You are also allowed to include executables
- that you made from the unmodified Vim sources, plus your own usage
- examples and Vim scripts.
-
-II) It is allowed to distribute a modified (or extended) version of Vim,
- including executables and/or source code, when the following four
- conditions are met:
- 1) This license text must be included unmodified.
- 2) The modified Vim must be distributed in one of the following five ways:
- a) If you make changes to Vim yourself, you must clearly describe in
- the distribution how to contact you. When the maintainer asks you
- (in any way) for a copy of the modified Vim you distributed, you
- must make your changes, including source code, available to the
- maintainer without fee. The maintainer reserves the right to
- include your changes in the official version of Vim. What the
- maintainer will do with your changes and under what license they
- will be distributed is negotiable. If there has been no negotiation
- then this license, or a later version, also applies to your changes.
- The current maintainer is Bram Moolenaar &lt;Bram@vim.org&gt;. If this
- changes it will be announced in appropriate places (most likely
- vim.sf.net, www.vim.org and/or comp.editors). When it is completely
- impossible to contact the maintainer, the obligation to send him
- your changes ceases. Once the maintainer has confirmed that he has
- received your changes they will not have to be sent again.
- b) If you have received a modified Vim that was distributed as
- mentioned under a) you are allowed to further distribute it
- unmodified, as mentioned at I). If you make additional changes the
- text under a) applies to those changes.
- c) Provide all the changes, including source code, with every copy of
- the modified Vim you distribute. This may be done in the form of a
- context diff. You can choose what license to use for new code you
- add. The changes and their license must not restrict others from
- making their own changes to the official version of Vim.
- d) When you have a modified Vim which includes changes as mentioned
- under c), you can distribute it without the source code for the
- changes if the following three conditions are met:
- - The license that applies to the changes permits you to distribute
- the changes to the Vim maintainer without fee or restriction, and
- permits the Vim maintainer to include the changes in the official
- version of Vim without fee or restriction.
- - You keep the changes for at least three years after last
- distributing the corresponding modified Vim. When the maintainer
- or someone who you distributed the modified Vim to asks you (in
- any way) for the changes within this period, you must make them
- available to him.
- - You clearly describe in the distribution how to contact you. This
- contact information must remain valid for at least three years
- after last distributing the corresponding modified Vim, or as long
- as possible.
- e) When the GNU General Public License (GPL) applies to the changes,
- you can distribute the modified Vim under the GNU GPL version 2 or
- any later version.
- 3) A message must be added, at least in the output of the ":version"
- command and in the intro screen, such that the user of the modified Vim
- is able to see that it was modified. When distributing as mentioned
- under 2)e) adding the message is only required for as far as this does
- not conflict with the license used for the changes.
- 4) The contact information as required under 2)a) and 2)d) must not be
- removed or changed, except that the person himself can make
- corrections.
-
-III) If you distribute a modified version of Vim, you are encouraged to use
- the Vim license for your changes and make them available to the
- maintainer, including the source code. The preferred way to do this is
- by e-mail or by uploading the files to a server and e-mailing the URL.
- If the number of changes is small (e.g., a modified Makefile) e-mailing a
- context diff will do. The e-mail address to be used is
- &lt;maintainer@vim.org&gt;
-
-IV) It is not allowed to remove this license from the distribution of the Vim
- sources, parts of it or from a modified version. You may use this
- license for previous Vim releases instead of the license that they came
- with, at your option.
-
-=== end of license ===
-
-Note:
-
-- If you are happy with Vim, please express that by reading the rest of this
- file and consider helping needy children in Uganda.
-
-- If you want to support further Vim development consider becoming a
- |sponsor|. The money goes to Uganda anyway.
-
-- According to Richard Stallman the Vim license is GNU GPL compatible.
- A few minor changes have been made since he checked it, but that should not
- make a difference.
-
-- If you link Vim with a library that goes under the GNU GPL, this limits
- further distribution to the GNU GPL. Also when you didn't actually change
- anything in Vim.
-
-- Once a change is included that goes under the GNU GPL, this forces all
- further changes to also be made under the GNU GPL or a compatible license.
-
-- If you distribute a modified version of Vim, you can include your name and
- contact information with the "--with-modified-by" configure argument or the
- MODIFIED_BY define.
-
-==============================================================================
-Kibaale Children's Centre *kcc* *Kibaale* *charity*
-
-Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the
-south of Uganda, near Tanzania, in East Africa. The area is known as Rakai
-District. The population is mostly farmers. Although people are poor, there
-is enough food. But this district is suffering from AIDS more than any other
-part of the world. Some say that it started there. Estimations are that 10
-to 30% of the Ugandans are infected with HIV. Because parents die, there are
-many orphans. In this district about 60,000 children have lost one or both
-parents, out of a population of 350,000. And this is still continuing.
-
-The children need a lot of help. The KCC is working hard to provide the needy
-with food, medical care and education. Food and medical care to keep them
-healthy now, and education so that they can take care of themselves in the
-future. KCC works on a Christian base, but help is given to children of any
-religion.
-
-The key to solving the problems in this area is education. This has been
-neglected in the past years with president Idi Amin and the following civil
-wars. Now that the government is stable again, the children and parents have
-to learn how to take care of themselves and how to avoid infections. There is
-also help for people who are ill and hungry, but the primary goal is to
-prevent people from getting ill and to teach them how to grow healthy food.
-
-Most of the orphans are living in an extended family. An uncle or older
-sister is taking care of them. Because these families are big and the income
-(if any) is low, a child is lucky if it gets healthy food. Clothes, medical
-care and schooling is beyond its reach. To help these needy children, a
-sponsorship program was put into place. A child can be financially adopted.
-For a few dollars a month KCC sees to it that the child gets indispensable
-items, is healthy, goes to school and KCC takes care of anything else that
-needs to be done for the child and the family that supports it.
-
-Besides helping the child directly, the environment where the child grows up
-needs to be improved. KCC helps schools to improve their teaching methods.
-There is a demonstration school at the centre and teacher trainings are given.
-Health workers are being trained, hygiene education is carried out and
-households are stimulated to build a proper latrine. I helped setting up a
-production site for cement slabs. These are used to build a good latrine.
-They are sold below cost price.
-
-There is a small clinic at the project, which provides children and their
-family with medical help. When needed, transport to a hospital is offered.
-Immunization programs are carried out and help is provided when an epidemic is
-breaking out (measles and cholera have been a problem).
- *donate*
-Summer 1994 to summer 1995 I spent a whole year at the centre, working as a
-volunteer. I have helped to expand the centre and worked in the area of water
-and sanitation. I learned that the help that the KCC provides really helps.
-When I came back to Holland, I wanted to continue supporting KCC. To do this
-I'm raising funds and organizing the sponsorship program. Please consider one
-of these possibilities:
-
-1. Sponsor a child in primary school: 17 euro a month (or more).
-2. Sponsor a child in secondary school: 25 euro a month (or more).
-3. Sponsor the clinic: Any amount a month or quarter
-4. A one-time donation
-
-Compared with other organizations that do child sponsorship the amounts are
-very low. This is because the money goes directly to the centre. Less than
-5% is used for administration. This is possible because this is a small
-organization that works with volunteers. If you would like to sponsor a
-child, you should have the intention to do this for at least one year.
-
-How do you know that the money will be spent right? First of all you have my
-personal guarantee as the author of Vim. I trust the people that are working
-at the centre, I know them personally. Further more, the centre is
-co-sponsored and inspected by World Vision, Save the Children Fund and
-International Child Care Fund. The centre is visited about once a year to
-check the progress (at our own cost). I have visited the centre myself in
-1996, 1998, 2000, 2001 and 2003. The visit reports are on the ICCF web site.
-
-If you have any further questions, send me e-mail: &lt;Bram@vim.org&gt;.
-
-The address of the centre is:
- Kibaale Children's Centre
- p.o. box 1658
- Masaka, Uganda, East Africa
-
-Sending money: *iccf-donations*
-
-Check the ICCF web site for the latest information! See |iccf| for the URL.
-
-
-USA: The methods mentioned below can be used.
- Sending a check to the Nehemiah Group Outreach Society (NGOS)
- is no longer possible, unfortunately. We are looking for
- another way to get you an IRS tax receipt.
- For sponsoring a child contact KCF in Canada (see below). US
- checks can be sent to them to lower banking costs.
-
-Canada: Contact Kibaale Children's Fund (KCF) in Surrey, Canada. They
- take care of the Canadian sponsors for the children in
- Kibaale. KCF forwards 100% of the money to the project in
- Uganda. You can send them a one time donation directly.
- Please send me a note so that I know what has been donated
- because of Vim. Ask KCF for information about sponsorship.
- Kibaale Children's Fund c/o Pacific Academy
- 10238-168 Street
- Surrey, B.C. V4N 1Z4
- Canada
- Phone: 604-581-5353
- If you make a donation to Kibaale Children's Fund (KCF) you
- will receive a tax receipt which can be submitted with your
- tax return.
-
-Holland: Transfer to the account of "Stichting ICCF Holland" in Venlo.
- This will allow for tax deduction if you live in Holland.
- Postbank, nr. 4548774
-
-Germany: It is possible to make donations that allow for a tax return.
- Check the ICCF web site for the latest information:
- http://iccf-holland.org/germany.html
-
-World: Use a postal money order. That should be possible from any
- country, mostly from the post office. Use this name (which is
- in my passport): "Abraham Moolenaar". Use Euro for the
- currency if possible.
-
-Europe: Use a bank transfer if possible. Your bank should have a form
- that you can use for this. See "Others" below for the swift
- code and IBAN number.
- Any other method should work. Ask for information about
- sponsorship.
-
-Credit Card: You can use PayPal to send money with a Credit card. This is
- the most widely used Internet based payment system. It's
- really simple to use. Use this link to find more info:
- https://www.paypal.com/en_US/mrb/pal=XAC62PML3GF8Q
- The e-mail address for sending the money to is:
- Bram@iccf-holland.org
- For amounts above 400 Euro ($500) sending a check is
- preferred.
-
-Others: Transfer to one of these accounts if possible:
- Postbank, account 4548774
- Swift code: INGB NL 2A
- IBAN: NL47 PSTB 0004 5487 74
- under the name "stichting ICCF Holland", Venlo
- If that doesn't work:
- Rabobank Venlo, account 3765.05.117
- Swift code: RABO NL 2U
- under the name "Bram Moolenaar", Venlo
- Otherwise, send a check in euro or US dollars to the address
- below. Minimal amount: $70 (my bank does not accept smaller
- amounts for foreign check, sorry)
-
-Address to send checks to:
- stichting ICCF Holland
- Bram Moolenaar
- Finsterruetihof 1
- 8134 Adliswil
- Switzerland
-
-This address is expected to be valid for a long time.
-
- vim:tw=78:ts=8:ft=help:norl:
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">vpd-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">wget-1.14</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.gnu.org/software/wget/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">which-2.20</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.xs4all.nl/~carlo17/which/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-3'>Gentoo Package Stock License GPL-3</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">wireless-regdb-20131127</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://wireless.kernel.org/en/developers/Regulatory">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#ISC'>Gentoo Package Stock License ISC</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">wireless-tools-29</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">wireless_automation-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">workarounds-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">wpa_supplicant-0.7.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://hostap.epitest.fi/wpa_supplicant/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">ws4py-0.3.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="https://github.com/Lawouach/WebSocket-for-Python">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License ws4py-0.3.2/LICENSE:
-
-Copyright (c) 2011-2013, Sylvain Hellegouarch
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of ws4py nor the names of its contributors may be used
- to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">X.Org-1.9.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.x.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#X'>Custom License X</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">x11vnc-0.9.13</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.karlrunge.com/x11vnc/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xbitmaps-1.1.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xbitmaps-1.1.1/COPYING:
-
-Copyright (c) 1998 The Open Group
-
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
-
-X Window System is a trademark of The Open Group.
-
-Copyright 1988 by Evans &amp; Sutherland Computer Corporation,
-Salt Lake City, Utah
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appear in all
-copies and that both that copyright notice and this permis-
-sion notice appear in supporting documentation, and that the
-name of Evans &amp; Sutherland not be used in advertising or publi-
-city pertaining to distribution of the software without specif-
-ic, written prior permission.
-
-EVANS &amp; SUTHERLAND DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILI-
-TY AND FITNESS, IN NO EVENT SHALL EVANS &amp; SUTHERLAND BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAM-
-AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PER-
-FORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xcb-proto-1.7.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xcb.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xcb-proto-1.7.1/COPYING:
-
-Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated
-documentation files (the "Software"), to deal in the
-Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute,
-sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall
-be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
-BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors
-or their institutions shall not be used in advertising or
-otherwise to promote the sale, use or other dealings in this
-Software without prior written authorization from the
-authors.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xcb-util-0.3.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xcb.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#X'>Custom License X</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xcb-util-image-0.3.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xcb.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#X'>Custom License X</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xcb-util-keysyms-0.3.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xcb.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#X'>Custom License X</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xcb-util-renderutil-0.3.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xcb.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#X'>Custom License X</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xcb-util-wm-0.3.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xcb.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#X'>Custom License X</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xcmiscproto-1.2.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xcmiscproto-1.2.1/COPYING:
-
-Copyright 1993, 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xdotool-2.20110530.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.semicomplete.com/projects/xdotool/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xdotool-2.20110530.1/COPYRIGHT:
-
-Copyright (c) 2007, 2008, 2009: Jordan Sissel.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of the Jordan Sissel nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY JORDAN SISSEL ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL JORDAN SISSEL BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#as-is'>Gentoo Package Stock License as-is</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xdpyinfo-1.3.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xdpyinfo-1.3.0/COPYING:
-
-Copyright 1988, 1998 The Open Group
-Copyright 2005 Hitachi, Ltd.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xdriinfo-1.0.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xdriinfo-1.0.4/COPYING:
-
-Client application for querying drivers' configuration information
-Copyright (C) 2003 Felix Kuehling
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-FELIX KUEHLING, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xev-1.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xev-1.2.0/COPYING:
-
-Copyright (c) 1988 X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from the X Consortium.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xextproto-7.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xextproto-7.2.0/COPYING:
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc.
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1992 Network Computing Devices
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of NCD. not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. NCD. makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (c) 1994, 1995 Hewlett-Packard Company
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the Hewlett-Packard
-Company shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the Hewlett-Packard Company.
-
-
-Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Digital Equipment Corporation
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
-Equipment Corporation.
-
-
-Copyright 1988, 1989, 1990, 1994 Network Computing Devices, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name Network Computing Devices, Inc. not be
-used in advertising or publicity pertaining to distribution of this
-software without specific, written prior permission.
-
-THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC.,
-DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT
-LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
-PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK
-COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE,
-DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND
-REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts,
-and Olivetti Research Limited, Cambridge, England.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital or Olivetti
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1986, 1987, 1988 by Hewlett-Packard Corporation
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Hewlett-Packard not be used in
-advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-Hewlett-Packard makes no representations about the
-suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-This software is not subject to any license of the American
-Telephone and Telegraph Company or of the Regents of the
-University of California.
-
-
-Copyright © 2007-2008 Peter Hutterer
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86-input-cmt-0.0.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86-input-cmt-0.0.1/LICENSE:
-
-// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86-input-evdev-2.7.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86-input-evdev-2.7.3/COPYING:
-
-Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
-Copyright 1993 by David Dawes &lt;dawes@xfree86.org&gt;
-Copyright 2002 by SuSE Linux AG, Author: Egbert Eich
-Copyright 1994-2002 by The XFree86 Project, Inc.
-Copyright 2002 by Paul Elliott
-Copyright © 2008 University of South Australia
-Copyright 2008 by Chris Salch
-Copyright © 2008 Red Hat, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without
-fee, provided that the above copyright notice appear in all copies
-and that both that copyright notice and this permission notice
-appear in supporting documentation, and that the name of the authors
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. The authors make no
-representations about the suitability of this software for any
-purpose. It is provided "as is" without express or implied
-warranty.
-
-THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
-NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Copyright 2005 Sun Microsystems, Inc. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Copyright 2005 Adam Jackson.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-on the rights to use, copy, modify, merge, publish, distribute, sub
-license, and/or sell copies of the Software, and to permit persons to whom
-the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86-input-synaptics-1.6.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86-input-synaptics-1.6.2/COPYING:
-
-The MIT License
-
-Copyright (c) 1997 C. Scott Ananian
-Copyright (c) 1998-2000 Bruce Kalk
-Copyright (c) 1999 Henry Davies
-Copyright (c) 2008 Fedor P. Goncharov
-Copyright (c) 2001 Stefan Gmeiner
-Copyright (c) 2002 S. Lehner
-Copyright (c) 2002 Linuxcare Inc. David Kennedy
-Copyright (c) 2003 Fred Hucht
-Copyright (c) 2003 Neil Brown
-Copyright (c) 2003 Jörg Bösner
-Copyright (c) 2003 Hartwig Felger
-Copyright (c) 2002-2007 Peter Osterlund
-Copyright (c) 2004 Arne Schwabe
-Copyright (c) 2004 Matthias Ihmig
-Copyright (c) 2004 Alexei Gilchrist
-Copyright (c) 2006-2007 Christian Thaeter
-Copyright (c) 2006 Stefan Bethge
-Copyright (c) 2007 Joseph P. Skudlarek
-Copyright (c) 2007 Florian Loitsch
-Copyright (c) 2008-2009 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86-video-fbdev-0.4.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86-video-fbdev-0.4.1/COPYING:
-
-Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is fur-
-nished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
-NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
-NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall not
-be used in advertising or otherwise to promote the sale, use or other deal-
-ings in this Software without prior written authorization from the XFree86
-Project.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86-video-intel-2.99.907</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86-video-intel-2.99.907/COPYING:
-
-Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
-Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
-Copyright 2005 Tungsten Graphics, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Copyright (c) 2005 Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
-Copyright © 2002 David Dawes
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Copyright © 2006 Intel Corporation
-Copyright © 2006,2010 Intel Corporation
-Copyright © 2007 Intel Corporation
-Copyright © 2008 Intel Corporation
-Copyright © 2009 Intel Corporation
-Copyright © 2007 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Copyright 2000 by Alan Hourihane, Sychdyn, North Wales, UK.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Alan Hourihane not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Alan Hourihane makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-Copyright 2000 Intel Corporation. All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL INTEL, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Copyright 2001 VA Linux Systems Inc., Fremont, California.
-Copyright © 2002 by David Dawes
-
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-on the rights to use, copy, modify, merge, publish, distribute, sub
-license, and/or sell copies of the Software, and to permit persons to whom
-the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Copyright © 1999 Keith Packard
-Copyright ® 2001 Keith Packard
-Copyright © 2000, 2008 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86bigfontproto-1.2.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86bigfontproto-1.2.0/COPYING:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the XFree86 Project.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86dgaproto-2.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86dgaproto-2.1/COPYING:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the XFree86 Project.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86driproto-2.1.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86driproto-2.1.1/COPYING:
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-Copyright 2000 VA Linux Systems, Inc.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86rushproto-1.1.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86rushproto-1.1.2/COPYING:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the XFree86 Project.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xf86vidmodeproto-2.3.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xf86vidmodeproto-2.3.1/COPYING:
-
-Copyright 1995 Kaleb S. KEITHLEY
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES
-OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Kaleb S. KEITHLEY
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-from Kaleb S. KEITHLEY
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xhost-1.0.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xhost-1.0.4/COPYING:
-
-Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Copyright 1985, 1986, 1987, 1998 The Open Group
-
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
-
-X Window System is a trademark of The Open Group.
-
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xineramaproto-1.2.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xineramaproto-1.2.1/COPYING:
-
-Copyright 2003 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Digital Equipment Corporation
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
-Equipment Corporation.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xinput-1.6.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xinput-1.6.0/COPYING:
-
-Copyright 1996-1997 by Frederic Lepied, France. &lt;Frederic.Lepied@sugix.frmug.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of the authors not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. The authors make no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-Copyright © 2007 Peter Hutterer
-Copyright © 2009 Red Hat, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xinput_calibrator-0.7.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.freedesktop.org/wiki/Software/xinput_calibrator">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xinput_calibrator-0.7.5/COPYING:
-
-Copyright (c) 2010 Tias Guns &lt;tias@ulyssis.org&gt; and others
-See the respective files for detailed copyright information.
-
-
-Source code: MIT/X11 License
-------------
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-Icon xinput_calibrator.svg: CC by-sa
----------------------------
-(c) Tias Guns &lt;tias@ulyssis.org&gt;
-
-The screen and triangle are from the Tango Desktop Project,
-which is in the Public Domain.
-
-The hand is from Ubuntu's human-icon-theme, which is CC by-sa
-(c) Jeff Waugh &lt;jdub@perkypants.org&gt;
-(c) Daniel Holbach &lt;daniel.holbach@ubuntu.com&gt;
-(c) Martin Pitt &lt;martin.pitt@ubuntu.com&gt;
-Creative Commons Attribution-ShareAlike 3.0 License Agreement
-http://creativecommons.org/licenses/by-sa/3.0/
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xkbcomp-1.2.3</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xkbcomp-1.2.3/COPYING:
-
-Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
- COPYRIGHT 1990
- DIGITAL EQUIPMENT CORPORATION
- MAYNARD, MASSACHUSETTS
- ALL RIGHTS RESERVED.
-
-THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND
-SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
-DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE
-FOR ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED
-WARRANTY.
-
-IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT
-RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN
-ADDITION TO THAT SET FORTH ABOVE.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Digital Equipment Corporation not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xkeyboard-config-2.4.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.freedesktop.org/wiki/Software/XKeyboardConfig">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xkeyboard-config-2.4.1/COPYING:
-
-Copyright 1996 by Joseph Moss
-Copyright (C) 2002-2007 Free Software Foundation, Inc.
-Copyright (C) Dmitry Golubev &lt;lastguru@mail.ru&gt;, 2003-2004
-Copyright (C) 2004, Gregory Mokhin &lt;mokhin@bog.msu.ru&gt;
-Copyright (C) 2006 Erdal Ronahî
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of the copyright holder(s) not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. The copyright holder(s) makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-THE COPYRIGHT HOLDER(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (c) 1996 Digital Equipment Corporation
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the Digital Equipment
-Corporation shall not be used in advertising or otherwise to promote
-the sale, use or other dealings in this Software without prior written
-authorization from Digital Equipment Corporation.
-
-
-Copyright 1996, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-
-Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-
-Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (c) 1996 X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from the X Consortium.
-
-
-Copyright (C) 2004, 2006 Ævar Arnfjörð Bjarmason &lt;avarab@gmail.com&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization of
-the copyright holder.
-
-
-Copyright (C) 1999, 2000 by Anton Zinoviev &lt;anton@lml.bas.bg&gt;
-
-This software may be used, modified, copied, distributed, and sold,
-in both source and binary form provided that the above copyright
-and these terms are retained. Under no circumstances is the author
-responsible for the proper functioning of this software, nor does
-the author assume any responsibility for damages incurred with its
-use.
-
-Permission is granted to anyone to use, distribute and modify
-this file in any way, provided that the above copyright notice
-is left intact and the author of the modification summarizes
-the changes in this header.
-
-This file is distributed without any expressed or implied warranty.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xl2tpd-1.3.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.xelerance.com/services/software/xl2tpd/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xlsatoms-1.1.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xlsatoms-1.1.0/COPYING:
-
-Copyright 1989, 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xlsclients-1.1.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xlsclients-1.1.2/COPYING:
-
-Copyright 1989, 1991, 1994, 1998 The Open Group
-Copyright 2009 Open Text Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Copyright (c) 2009 Apple Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xmodmap-1.0.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xmodmap-1.0.5/COPYING:
-
-Copyright (c) 1987, 2010, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xorg-conf-0.0.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.chromium.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#BSD-Google'>Custom License BSD-Google</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xorg-server-1.12.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xorg-server-1.12.4/COPYING:
-
-The following is the 'standard copyright' agreed upon by most contributors,
-and is currently the canonical license preferred by the X.Org Foundation.
-This is a slight variant of the common MIT license form published by the
-Open Source Initiative at http://www.opensource.org/licenses/mit-license.php
-
-Copyright holders of new code should use this license statement where
-possible, and insert their name to this list. Please sort by surname
-for people, and by the full name for other entities (e.g. Juliusz
-Chroboczek sorts before Intel Corporation sorts before Daniel Stone).
-
-Copyright © 2000-2001 Juliusz Chroboczek
-Copyright © 1998 Egbert Eich
-Copyright © 2006-2007 Intel Corporation
-Copyright © 2006 Nokia Corporation
-Copyright © 2006-2008 Peter Hutterer
-Copyright © 2006 Adam Jackson
-Copyright © 2009-2010 NVIDIA Corporation
-Copyright © 1987, 2003-2006, 2008-2010 Oracle and/or its affiliates.
-Copyright © 1999 Keith Packard
-Copyright © 2007-2009 Red Hat, Inc.
-Copyright © 2005-2008 Daniel Stone
-Copyright © 2006-2009 Simon Thum
-Copyright © 2006 Luc Verhaegen
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-
-
-
-The following licenses are 'legacy': usually MIT/X11 licenses with the name
-of the copyright holder(s) in the license statement, but also some BSD-like
-licenses.
-
-
-Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
-Copyright (C) Colin Harrison 2005-2008
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
-NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the XFree86 Project.
-
-
-Copyright 1997 by The XFree86 Project, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of the XFree86 Project, Inc.
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. The Xfree86
-Project, Inc. makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1985-1998, 2001 The Open Group
-Copyright 2002 Red Hat Inc., Durham, North Carolina.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright (c) 1987, 1989-1990, 1992-1995 X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-
-
-Copyright © 1999-2000 SuSE, Inc.
-Copyright © 2007 Red Hat, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of SuSE not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. SuSE makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1987-1991, 1993 by Digital Equipment Corporation, Maynard, Massachusetts.
-Copyright 1991 Massachusetts Institute of Technology, Cambridge, Massachusetts.
-Copyright 1991, 1993 Olivetti Research Limited, Cambridge, England.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-Copyright 1994 Quarterdeck Office Systems.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital and
-Quarterdeck not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-DIGITAL AND QUARTERDECK DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1997 Digital Equipment Corporation.
-All rights reserved.
-
-This software is furnished under license and may be used and copied only in
-accordance with the following terms and conditions. Subject to these
-conditions, you may download, copy, install, use, modify and distribute
-this software in source and/or binary form. No title or ownership is
-transferred hereby.
-
-1) Any source code used, modified or distributed must reproduce and retain
- this copyright notice and list of conditions as they appear in the
- source file.
-
-2) No right is granted to use any trade name, trademark, or logo of Digital
- Equipment Corporation. Neither the "Digital Equipment Corporation"
- name nor any trademark or logo of Digital Equipment Corporation may be
- used to endorse or promote products derived from this software without
- the prior written permission of Digital Equipment Corporation.
-
-3) This software is provided "AS-IS" and any express or implied warranties,
- including but not limited to, any implied warranties of merchantability,
- fitness for a particular purpose, or non-infringement are disclaimed.
- In no event shall DIGITAL be liable for any damages whatsoever, and in
- particular, DIGITAL shall not be liable for special, indirect,
- consequential, or incidental damages or damages for lost profits, loss
- of revenue or loss of use, whether such damages arise in contract,
- negligence, tort, under statute, in equity, at law or otherwise, even
- if advised of the possibility of such damage.
-
-
-Copyright (c) 1991, 1996-1997 Digital Equipment Corporation, Maynard, Massachusetts.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Digital Equipment Corporation
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
-Equipment Corporation.
-
-
-SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
-Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice including the dates of first publication and
-either this permission notice or a reference to
-http://oss.sgi.com/projects/FreeB/
-shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-Copyright (c) 1994, 1995 Hewlett-Packard Company
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the Hewlett-Packard
-Company shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the Hewlett-Packard Company.
-
-
-Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
-All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Hewlett-Packard not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
-Copyright (c) 2003 by the XFree86 Project, Inc.
-Copyright 2004-2005 Red Hat Inc., Raleigh, North Carolina.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation on the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial
-portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
-BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-Copyright © 2008 Red Hat, Inc.
-Partly based on code Copyright © 2000 SuSE, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without
-fee, provided that the above copyright notice appear in all copies
-and that both that copyright notice and this permission notice
-appear in supporting documentation, and that the name of Red Hat
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission. Red
-Hat makes no representations about the suitability of this software
-for any purpose. It is provided "as is" without express or implied
-warranty.
-
-Red Hat DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
-NO EVENT SHALL Red Hat BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of SuSE not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. SuSE makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright © 2006 Red Hat, Inc.
-(C) Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sub license,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-RED HAT, INC, OR PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
-OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright (c) 1995 X Consortium
-Copyright 2004 Red Hat Inc., Durham, North Carolina.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation on the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT, THE X CONSORTIUM,
-AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium
-shall not be used in advertising or otherwise to promote the sale,
-use or other dealings in this Software without prior written
-authorization from the X Consortium.
-
-
-Copyright 1998-2000 Precision Insight, Inc., Cedar Park, Texas.
-Copyright 2000 VA Linux Systems, Inc.
-Copyright (c) 2002, 2008, 2009 Apple Computer, Inc.
-Copyright (c) 2003-2004 Torrey T. Lyons.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-(C) Copyright IBM Corporation 2003
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-on the rights to use, copy, modify, merge, publish, distribute, sub
-license, and/or sell copies of the Software, and to permit persons to whom
-the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-(C) Copyright IBM Corporation 2004-2005
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sub license,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-IBM,
-AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-Copyright (c) 1997 Metro Link Incorporated
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of the Metro Link shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from Metro Link.
-
-
-Copyright 1995-1998 by Metro Link, Inc.
-Copyright (c) 1997 Matthieu Herrb
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Metro Link, Inc. not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Metro Link, Inc. makes no
-representations about the suitability of this software for any purpose.
- It is provided "as is" without express or implied warranty.
-
-METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1998 by Metro Link Incorporated
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Metro Link
-Incorporated not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission. Metro Link Incorporated makes no representations
-about the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-METRO LINK INCORPORATED DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL METRO LINK INCORPORATED BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-CONECTIVA LINUX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of Conectiva Linux shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from
-Conectiva Linux.
-
-
-Copyright (c) 2001, Andy Ritger aritger@nvidia.com
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-o Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-o Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-o Neither the name of NVIDIA nor the names of its contributors
- may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
-NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-
-Copyright 1992 Vrije Universiteit, The Netherlands
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of the Vrije Universiteit not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. The Vrije Universiteit makes no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-The Vrije Universiteit DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL The Vrije Universiteit BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1998 by Concurrent Computer Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Concurrent Computer
-Corporation not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission. Concurrent Computer Corporation makes no representations
-about the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-CONCURRENT COMPUTER CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL CONCURRENT COMPUTER CORPORATION BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright © 2004 Nokia
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Nokia not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Nokia makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-NOKIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-(c)Copyright 1988,1991 Adobe Systems Incorporated.
-All rights reserved.
-
-Permission to use, copy, modify, distribute, and sublicense this software and its
-documentation for any purpose and without fee is hereby granted, provided that
-the above copyright notices appear in all copies and that both those copyright
-notices and this permission notice appear in supporting documentation and that
-the name of Adobe Systems Incorporated not be used in advertising or publicity
-pertaining to distribution of the software without specific, written prior
-permission. No trademark license to use the Adobe trademarks is hereby
-granted. If the Adobe trademark "Display PostScript"(tm) is used to describe
-this software, its functionality or for any other purpose, such use shall be
-limited to a statement that this software works in conjunction with the Display
-PostScript system. Proper trademark attribution to reflect Adobe's ownership
-of the trademark shall be given whenever any such reference to the Display
-PostScript system is made.
-
-ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR ANY
-PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ADOBE
-DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-
-INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE TO YOU
-OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,NEGLIGENCE, STRICT
-LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT PROVIDE ANY TRAINING OR OTHER
-SUPPORT FOR THE SOFTWARE.
-
-Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems
-Incorporated which may be registered in certain jurisdictions.
-
-
-Copyright 1989 Network Computing Devices, Inc., Mountain View, California.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of N.C.D. not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. N.C.D. makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-
-Copyright (c) 1987 by the Regents of the University of California
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies. The University of California
-makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without
-express or implied warranty.
-
-
-Copyright 1992, 1993 Data General Corporation;
-Copyright 1992, 1993 OMRON Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that the
-above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and that
-neither the name OMRON or DATA GENERAL be used in advertising or publicity
-pertaining to distribution of the software without specific, written prior
-permission of the party whose name is to be used. Neither OMRON or
-DATA GENERAL make any representation about the suitability of this software
-for any purpose. It is provided "as is" without express or implied warranty.
-
-OMRON AND DATA GENERAL EACH DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL OMRON OR DATA GENERAL BE LIABLE FOR ANY SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
-
-Copyright © 1998-2004, 2006 Keith Packard
-Copyright © 2000-2002 Keith Packard, member of The XFree86 Project, Inc.
-Copyright (c) 2002 Apple Computer, Inc.
-Copyright (c) 2003 Torrey T. Lyons.
-All Rights Reserved.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright © 1999 Keith Packard
-Copyright © 2000 Compaq Computer Corporation
-Copyright © 2002 MontaVista Software Inc.
-Copyright © 2005 OpenedHand Ltd.
-Copyright © 2006 Nokia Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of the authors and/or copyright holders
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. The authors and/or
-copyright holders make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THE AUTHORS AND/OR COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL THE AUTHORS AND/OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1993 by Davor Matic
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation. Davor Matic makes no representations about
-the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-
-Copyright (C) 2001-2004 Harold L Hunt II All Rights Reserved.
-Copyright (C) Colin Harrison 2005-2008
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL HAROLD L HUNT II BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Harold L Hunt II
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-from Harold L Hunt II.
-
-
-Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Thomas Roell not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Thomas Roell makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Thomas Roell and David Wexelblat
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Thomas Roell and
-David Wexelblat makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THOMAS ROELL AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THOMAS ROELL OR DAVID WEXELBLAT BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1990,91,92,93 by Thomas Roell, Germany.
-Copyright 1991,92,93 by SGCS (Snitily Graphics Consulting Services), USA.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Thomas Roell nor
-SGCS be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-Thomas Roell nor SGCS makes no representations about the suitability
-of this software for any purpose. It is provided "as is" without
-express or implied warranty.
-
-THOMAS ROELL AND SGCS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THOMAS ROELL OR SGCS BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1998 by Alan Hourihane, Wigan, England.
-Copyright 2000-2002 by Alan Hourihane, Flint Mountain, North Wales.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Alan Hourihane not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Alan Hourihane makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1995 Kaleb S. KEITHLEY
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES
-OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Kaleb S. KEITHLEY
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-from Kaleb S. KEITHLEY
-
-
-Copyright (c) 1997 Matthieu Herrb
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Matthieu Herrb not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Matthieu Herrb makes no
-representations about the suitability of this software for any purpose.
- It is provided "as is" without express or implied warranty.
-
-MATTHIEU HERRB DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL MATTHIEU HERRB BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 2004, Egbert Eich
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-EGBERT EICH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
-NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Egbert Eich shall not
-be used in advertising or otherwise to promote the sale, use or other deal-
-ings in this Software without prior written authorization from Egbert Eich.
-
-
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-Copyright 2005 by Kean Johnston &lt;jkj@sco.com&gt;
-Copyright 1993 by David McCullough &lt;davidm@stallion.oz.au&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of David Wexelblat not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. David Wexelblat makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL DAVID WEXELBLAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1992 by Orest Zborowski &lt;obz@Kodak.com&gt;
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Orest Zborowski and David Wexelblat
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Orest Zborowski
-and David Wexelblat make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-OREST ZBOROWSKI AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1992 by Orest Zborowski &lt;obz@Kodak.com&gt;
-Copyright 1993 by David Dawes &lt;dawes@xfree86.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Orest Zborowski and David Dawes
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Orest Zborowski
-and David Dawes make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-OREST ZBOROWSKI AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID DAWES BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1995-1999 by Frederic Lepied, France. &lt;fred@sugix.frmug.fr.net&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Frederic Lepied not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Frederic Lepied makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-FREDERIC LEPIED DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FREDERIC LEPIED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1992 by Rich Murphey &lt;Rich@Rice.edu&gt;
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Rich Murphey and David Wexelblat
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Rich Murphey and
-David Wexelblat make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-RICH MURPHEY AND DAVID WEXELBLAT DISCLAIM ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID WEXELBLAT BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1992 by Rich Murphey &lt;Rich@Rice.edu&gt;
-Copyright 1993 by David Dawes &lt;dawes@xfree86.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Rich Murphey and David Dawes
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Rich Murphey and
-David Dawes make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-RICH MURPHEY AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID DAWES BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright © 2003-2004 Anders Carlsson
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Anders Carlsson not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Anders Carlsson makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-ANDERS CARLSSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL ANDERS CARLSSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (C) 2003 Anders Carlsson
-Copyright © 2003-2004 Eric Anholt
-Copyright © 2004 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Eric Anholt not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Eric Anholt makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-ERIC ANHOLT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL ERIC ANHOLT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (c) 1998 Todd C. Miller &lt;Todd.Miller@courtesan.com&gt;
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE
-FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright © 2003-2004 Philip Blundell
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Philip Blundell not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Philip Blundell makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-PHILIP BLUNDELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL PHILIP BLUNDELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-
-Copyright (c) 1994-2003 by The XFree86 Project, Inc.
-Copyright 1997 by Metro Link, Inc.
-Copyright 2003 by David H. Dawes.
-Copyright 2003 by X-Oz Technologies.
-Copyright (c) 2004, X.Org Foundation
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the copyright holder(s)
-and author(s) shall not be used in advertising or otherwise to promote
-the sale, use or other dealings in this Software without prior written
-authorization from the copyright holder(s) and author(s).
-
-
-Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-Copyright 1999 by David Holland &lt;davidh@iquest.net&gt;
-Copyright © 2000 Compaq Computer Corporation
-Copyright © 2002 Hewlett-Packard Company
-Copyright © 2004, 2005 Red Hat, Inc.
-Copyright © 2004 Nicholas Miell
-Copyright © 2005 Trolltech AS
-Copyright © 2006 Intel Corporation
-Copyright © 2006-2007 Keith Packard
-Copyright © 2008 Red Hat, Inc
-Copyright © 2008 George Sapountzis &lt;gsap7@yahoo.gr&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
- 2005 Lars Knoll &amp; Zack Rusin, Trolltech
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright 1987, 1998 The Open Group
-Copyright © 1998-1999, 2001 The XFree86 Project, Inc.
-Copyright © 2000 VA Linux Systems, Inc.
-Copyright (c) 2000, 2001 Nokia Home Communications
-Copyright © 2007, 2008 Red Hat, Inc.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
-
-
-Copyright 1996 by Thomas E. Dickey &lt;dickey@clark.net&gt;
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of the above listed
-copyright holder(s) not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission.
-
-THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-Copyright (c) 2001 Andreas Monitzer.
-Copyright (c) 2001-2004 Greg Parker.
-Copyright (c) 2001-2004 Torrey T. Lyons
-Copyright (c) 2002-2003 Apple Computer, Inc.
-Copyright (c) 2004-2005 Alexander Gottwald
-Copyright (c) 2002-2009 Apple Inc.
-Copyright (c) 2007 Jeremy Huddleston
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name(s) of the above copyright
-holders shall not be used in advertising or otherwise to promote the sale,
-use or other dealings in this Software without prior written authorization.
-
-
-Copyright (C) 1999,2000 by Eric Sunshine &lt;sunshine@sunshineco.com&gt;
-Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria.
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
-NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-Copyright (C) 2005 Bogdan D. bogdand@users.sourceforge.net
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the author shall not be used in
-advertising or otherwise to promote the sale, use or other dealings in this
-Software without prior written authorization from the author.
-
-
-Copyright © 2002 David Dawes
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of the author(s) shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from
-the author(s).
-
-
-Copyright (C) 1996-1999 SciTech Software, Inc.
-Copyright (C) David Mosberger-Tang
-Copyright (C) 1999 Egbert Eich
-Copyright (C) 2008 Bart Trojanowski, Symbio Technologies, LLC
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of the authors not be used
-in advertising or publicity pertaining to distribution of the software
-without specific, written prior permission. The authors makes no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 2005-2006 Luc Verhaegen.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright 1995 by Robin Cutshaw &lt;robin@XFree86.Org&gt;
-Copyright 2000 by Egbert Eich
-Copyright 2002 by David Dawes
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of the above listed copyright holder(s)
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. The above listed
-copyright holder(s) make(s) no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1997-2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of Marc Aurele La France not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. Marc Aurele La France makes no representations
-about the suitability of this software for any purpose. It is provided
-"as-is" without express or implied warranty.
-
-MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
-EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
-
-Copyright 1990, 1991 by Thomas Roell, Dinkelscherben, Germany
-Copyright 1992 by David Dawes &lt;dawes@XFree86.org&gt;
-Copyright 1992 by Jim Tsillas &lt;jtsilla@damon.ccs.northeastern.edu&gt;
-Copyright 1992 by Rich Murphey &lt;Rich@Rice.edu&gt;
-Copyright 1992 by Robert Baron &lt;Robert.Baron@ernst.mach.cs.cmu.edu&gt;
-Copyright 1992 by Orest Zborowski &lt;obz@eskimo.com&gt;
-Copyright 1993 by Vrije Universiteit, The Netherlands
-Copyright 1993 by David Wexelblat &lt;dwex@XFree86.org&gt;
-Copyright 1994, 1996 by Holger Veit &lt;Holger.Veit@gmd.de&gt;
-Copyright 1997 by Takis Psarogiannakopoulos &lt;takis@dpmms.cam.ac.uk&gt;
-Copyright 1994-2003 by The XFree86 Project, Inc
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of the above listed copyright holders
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. The above listed
-copyright holders make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 2001-2005 by J. Kean Johnston &lt;jkj@sco.com&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name J. Kean Johnston not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. J. Kean Johnston makes no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-J. KEAN JOHNSTON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL J. KEAN JOHNSTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (C) 2000 Jakub Jelinek (jakub@redhat.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-JAKUB JELINEK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright 1997,1998 by UCHIYAMA Yasushi
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of UCHIYAMA Yasushi not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. UCHIYAMA Yasushi makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (C) 2000 Keith Packard
- 2004 Eric Anholt
- 2005 Zack Rusin
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of copyright holders not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Copyright holders make no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-(C) Copyright IBM Corporation 2002-2007
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-on the rights to use, copy, modify, merge, publish, distribute, sub
-license, and/or sell copies of the Software, and to permit persons to whom
-the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-this permission notice appear in supporting documentation. This permission
-notice shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright © 2007 OpenedHand Ltd
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of OpenedHand Ltd not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. OpenedHand Ltd makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-OpenedHand Ltd DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL OpenedHand Ltd BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (c) 1989, 1990, 1993, 1994
- The Regents of the University of California. All rights reserved.
-
-This code is derived from software contributed to Berkeley by
-Chris Torek.
-
-This code is derived from software contributed to Berkeley by
-Michael Rendell of Memorial University of Newfoundland.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xprop-1.2.1</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xprop-1.2.1/COPYING:
-
-Copyright 1990, 1998 The Open Group
-Copyright (c) 2000 The XFree86 Project, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-Copyright 2007 Kim woelders
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xproto-7.0.23</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xproto-7.0.23/COPYING:
-
-Copyright (c) 1991, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-
-Copyright 1985, 1987, 1988, 1990, 1991, 1993-1996, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-The X Window System is a Trademark of The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright 1987 by Apollo Computer Inc., Chelmsford, Massachusetts.
-Copyright 1989 by Hewlett-Packard Company.
-
- All Rights Reserved
-
-Permission to use, duplicate, change, and distribute this software and
-its documentation for any purpose and without fee is granted, provided
-that the above copyright notice appear in such copy and that this
-copyright notice appear in all supporting documentation, and that the
-names of Apollo Computer Inc., the Hewlett-Packard Company, or the X
-Consortium not be used in advertising or publicity pertaining to
-distribution of the software without written prior permission.
-
-HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD
-TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. Hewlett-Packard shall not be liable for errors
-contained herein or direct, indirect, special, incidental or
-consequential damages in connection with the furnishing,
-performance, or use of this material.
-
-
-Copyright (c) 1999 The XFree86 Project Inc.
-
-All Rights Reserved.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The XFree86 Project
-Inc. shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from The XFree86 Project Inc.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xrandr-1.3.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xrandr-1.3.5/COPYING:
-
-Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc.
-Copyright © 2002 Hewlett Packard Company, Inc.
-Copyright © 2006 Intel Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xsendevt-0.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xsendevt.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xset-1.2.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xset-1.2.2/COPYING:
-
-Copyright 1985, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xset-mini-1.2.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#X'>Custom License X</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xtrace-1.3.0</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xtrace.alioth.debian.org/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xtrans-1.2.6</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xtrans-1.2.6/COPYING:
-
-Copyright 1993, 1994, 1998, 2002 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-______________________________________________________________________________
-
-Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA
-
-All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name NCR not be used in advertising
-or publicity pertaining to distribution of the software without specific,
-written prior permission. NCR makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-NCR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
-NO EVENT SHALL NCR BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-______________________________________________________________________________
-
-Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-______________________________________________________________________________
-
-(c) Copyright 1996 by Sebastien Marineau and Holger Veit
- &lt;marineau@genie.uottawa.ca&gt;
- &lt;Holger.Veit@gmd.de&gt;
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-HOLGER VEIT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of Sebastien Marineau or
-Holger Veit shall not be used in advertising or otherwise to promote
-the sale, use or other dealings in this Software without prior written
-authorization from Holger Veit or Sebastien Marineau.
-
-______________________________________________________________________________
-
-Copyright © 2003 Keith Packard, Noah Levitt
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xwd-1.0.4</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xwd-1.0.4/COPYING:
-
-Copyright 1987, 1988, 1993, 1994, 1996, 1998 The Open Group
-Copyright 1994 Hewlett-Packard Co.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-Copyright 2007 Kim woelders
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xwininfo-1.1.2</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://xorg.freedesktop.org/">homepage</a></span>
-<div class="licence">
-<pre>Scanned Source License xwininfo-1.1.2/COPYING:
-
-Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-
-Copyright 1987, 1993, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
-
-Copyright 2007 Kim woelders
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xxd-1.10</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://ftp.uni-erlangen.de/pub/utilities/etc/?order=s">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">xz-utils-5.0.5</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://tukaani.org/xz/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License LGPL-2.1+:
-
-GNU Lesser General Public License, version 2.1 or any later version.
-See LGPL-2.1 or LGPL-3 for the full text of these licenses.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-<li><a href='#GPL-2'>Gentoo Package Stock License GPL-2</a></li>
-<li><a href='#public-domain'>Gentoo Package Stock License public-domain</a></li>
-<li><a href='#GPL-2+'>Gentoo Package Stock License GPL-2+</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">zbar-0.10</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://zbar.sourceforge.net/">homepage</a></span>
-<div class="licence">
-<pre></pre>
-<ul>
-<li><a href='#LGPL-2.1'>Gentoo Package Stock License LGPL-2.1</a></li>
-</ul>
-</div>
-</div>
-
-
-<div class="product">
-<span class="title">zlib-1.2.8</span>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<span class="homepage"><a href="http://www.zlib.net/">homepage</a></span>
-<div class="licence">
-<pre>Gentoo Package Stock License ZLIB:
-
-Copyright (C) &lt;year&gt; &lt;copyright holders&gt;
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the author(s) be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-</pre>
-<ul>
-
-</ul>
-</div>
-</div>
-
-
-</div>
-
-<h2>List of Shared Licenses used in Google Chrome OS:</h2>
-<div class="product">
-<a name="AFL-2.1" class="title">Gentoo Package Stock License AFL-2.1</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-The Academic Free License
-v. 2.1
-
-This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following notice immediately following the copyright notice for the Original Work:
-
-Licensed under the Academic Free License version 2.1
-
-1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license to do the following:
-
-a) to reproduce the Original Work in copies;
-
-b) to prepare derivative works ("Derivative Works") based upon the Original Work;
-
-c) to distribute copies of the Original Work and Derivative Works to the public;
-
-d) to perform the Original Work publicly; and
-
-e) to display the Original Work publicly.
-
-2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the Original Work and Derivative Works.
-
-3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work, and by publishing the address of that information repository in a notice immediately following the copyright notice that applies to the Original Work.
-
-4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior written permission of the Licensor. Nothing in this License shall be deemed to grant any rights to trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor except as expressly stated herein. No patent license is granted to make, use, sell or offer to sell embodiments of any patent claims other than the licensed claims defined in Section 2. No right is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under different terms from this License any Original Work that Licensor otherwise would have a right to license.
-
-5) This section intentionally omitted.
-
-6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work.
-
-7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately proceeding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to Original Work is granted hereunder except under this disclaimer.
-
-8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to liability for death or personal injury resulting from Licensor's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.
-
-9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. Nothing else but this License (or another written agreement between Licensor and You) grants You permission to create Derivative Works based upon the Original Work or to exercise any of the rights granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions.
-
-10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware.
-
-11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent laws of other countries, and international treaty. This section shall survive the termination of this License.
-
-12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License.
-
-13) Miscellaneous. This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable.
-
-14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You.
-
-This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without the express written permission of its copyright owner.
-
-
-
-
-</pre>
-<div class="license-packages">
-Used by these packages: dev-libs/dbus-glib-0.100.2 sys-apps/dbus-1.6.8-r5
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="Apache-2.0" class="title">Gentoo Package Stock License Apache-2.0</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-</pre>
-<div class="license-packages">
-Used by these packages: dev-util/stressapptest-1.0.4 dev-python/jsonrpclib-0_pre20110820-r1 dev-libs/protobuf-python-2.3.0-r1 app-i18n/chromeos-hangul-1.2.0.3-r1 app-admin/rsyslog-5.8.11-r1 media-fonts/droidfonts-cros-20121206 media-fonts/crosextrafonts-20130214 media-fonts/croscorefonts-1.23.0 media-fonts/notofonts-20140130-r1 dev-python/selenium-2.29.0 dev-libs/protobuf-2.3.0-r5
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="as-is" class="title">Gentoo Package Stock License as-is</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-Note: This license label is deprecated, so don't use it for new packages.
-Unfortunately, "as-is" has been (ab)used also for non-free software and
-you cannot rely on it. Please check the upstream license instead.
-
-"as-is" in its originally intended sense is now covered by the OSI-approved
-"HPND" (Historical Permission Notice and Disclaimer).
-
----------------------------------------------------------------------------
-
-This is a generic place holder for a class of licenses that boil down to do
-no guarantees and all you get is what you have. The language is usually
-similar to:
-
- Permission to use, copy, modify, and distribute this software and its
- documentation for any purpose and without fee is hereby granted, provided
- that the above copyright notice appears in all copies and that both the
- copyright notice and this permission notice appear in supporting
- documentation, and that the same name not be used in advertising or
- publicity pertaining to distribution of the software without specific,
- written prior permission. We make no representations about the
- suitability of this software for any purpose. It is provided "as is"
- without express or implied warranty.
-
-
-You will need to check the license that came with the software for the exact
-specifics. Generally you are free to do most anything you want with "as is"
-software but you should not take this license as legal advice.
-
-Note: Most all license have an "as is" clause. For our purposes this does
-not make all software in this category. This category is for software with
-very little restrictions.
-
-The information in this license about licenses is presented "as is". :-P
-
-</pre>
-<div class="license-packages">
-Used by these packages: net-wireless/crda-1.1.1-r5 dev-db/sqlite-3.6.22-r3 net-misc/iperf-2.0.4-r1 net-misc/dhcp-4.2.2-r2 x11-misc/xdotool-2.20110530.1 media-libs/tiff-4.0.0-r1 app-text/docbook-xml-dtd-4.1.2-r6 dev-lang/swig-2.0.4-r1 media-libs/libpng-1.2.49-r2
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="Atheros" class="title">Custom License Atheros</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-Copyright (c) 2010, Atheros Communications, Inc.
-
-All rights reserved.
-
-Redistribution. Redistribution and use in binary form, without modification, are permitted provided that the following conditions are
-
-met:
-
-* Redistributions must reproduce the above copyright notice and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-* Neither the name of Atheros Communications, Inc. nor the names of its suppliers may be used to endorse or promote products derived from this software without specific prior written permission.
-
-* No reverse engineering, decompilation, or disassembly of this software is permitted.
-
-Limited patent license. Atheros Communications, Inc. grants a world-wide, royalty-free, non-exclusive license under patents it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell ("Utilize") this software, but solely to the extent that any such patent is necessary to Utilize the software alone, or in combination with an operating system licensed under an approved Open Source license as listed by the Open Source Initiative at http://opensource.org/licenses. The patent license shall not apply to any other combinations which include this software. No hardware per se is licensed hereunder.
-
-DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-</pre>
-<div class="license-packages">
-Used by these packages: net-wireless/ath3k-0.0.1-r122 net-wireless/ath6k-34-r23
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="BSD-Google" class="title">Custom License BSD-Google</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-Copyright 2010, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-</pre>
-<div class="license-packages">
-Used by these packages: chromeos-base/chromeos-test-testauthkeys-0.0.1-r2 dev-util/hdctools-0.0.1-r354 chromeos-base/chromeos-bsp-alex-0.0.1-r12 chromeos-base/gobi3k-sdk-1.0.1-r22 chromeos-base/vpd-0.0.1-r76 chromeos-base/mttools-0.0.1-r93 chromeos-base/update_engine-0.0.2-r655 chromeos-base/chromeos-factory-board-3.0.0-r1 chromeos-base/verity-0.0.1-r79 chromeos-base/chromeos-init-0.0.25-r840 chromeos-base/userfeedback-0.0.1-r152 chromeos-base/platform2-0.0.5-r627 chromeos-base/crosh-0.0.1-r172 chromeos-base/autotest-client-0.0.1-r1 chromeos-base/salsa-0.0.1-r17 chromeos-base/chromeos-activate-date-0.0.1-r1 chromeos-base/permission_broker-0.0.1-r46 chromeos-base/chromeos-login-0.0.5-r838 chromeos-base/chromite-0.0.1-r1022 chromeos-base/metrics-0.0.1-r63 chromeos-base/chromeos-ca-certificates-0.0.1-r2 chromeos-base/chromeos-cryptohome-0.0.1-r551 chromeos-base/chromeos-factory-0.0.1-r1362 chromeos-base/chromeos-factory-regions-0.0.1-r206 sys-apps/rootdev-0.0.1-r22 chromeos-base/libchrome-271506-r5 chromeos-base/chromeos-bsp-x86-alex-0.0.2-r2 chromeos-base/bootcomplete-login-0.0.1-r1 chromeos-base/tty-0.0.1-r4 chromeos-base/chromeos-auth-config-0.0.1-r5 chromeos-base/chromeos-installer-0.0.1-r385 chromeos-base/gestures-0.0.1-r498 chromeos-base/swap-init-0.0.1-r1 chromeos-base/chromeos-base-0-r118 chromeos-base/vboot_reference-1.0-r949 chromeos-base/cros_boot_mode-0.0.1-r90 chromeos-base/inputcontrol-0.0.1-r98 chromeos-base/openssh-server-init-0.0.1-r22 chromeos-base/audiotest-0.0.1-r8 net-dns/avahi-daemon-0.0.1 chromeos-base/memento_softwareupdate-0.0.1-r55 chromeos-base/libchromeos-0.0.1-r78 chromeos-base/workarounds-0.0.1-r76 sys-apps/mosys-1.2.03-r235 chromeos-base/gobi-cromo-plugin-1.0.1-r122 chromeos-base/chromeos-imageburner-0.0.1-r111 chromeos-base/chromeos-firewall-init-0.0.1-r1 dev-util/mem-0.0.1-r2 chromeos-base/chromeos-factoryinstall-0.0.1-r140 chromeos-base/libchromeos-use-flags-0.0.1-r5 chromeos-base/libchrome_crypto-271506-r1 media-sound/adhd-0.0.1-r818 chromeos-base/chromeos-assets-0.0.2-r10 chromeos-base/google-breakpad-1303-r82 chromeos-base/dev-install-0.0.1-r679 chromeos-base/chromeos-firmware-alex-0.0.1-r136 chromeos-base/gobi3k-lib-0.0.1-r25 chromeos-base/audioconfig-0.0.1-r1 chromeos-base/xorg-conf-0.0.6-r115 chromeos-base/oem-customization-0.0.2-r7 chromeos-base/chromeos-factory-mini-0.0.1-r7 chromeos-base/touch_noise_filter-0.0.1-r18 chromeos-base/shill-test-scripts-0.0.1-r508 chromeos-base/libscrypt-1.1.6-r11 chromeos-base/chromeos-minijail-0.0.1-r141 chromeos-base/modem-diagnostics-0.1-r8 chromeos-base/system_api-0.0.1-r442 chromeos-base/chromeos-chrome-38.0.2096.1_rc-r4 x11-drivers/touchpad-tests-0.0.1-r129 chromeos-base/update-policy-chromeos-0.0.1-r2 chromeos-base/protofiles-0.0.1-r20 chromeos-base/modem-utilities-0.0.1-r60 chromeos-base/libevdev-0.0.1-r59 sys-apps/flashmap-0.3-r18 chromeos-base/autotest-factory-install-0.0.1-r3 chromeos-base/common-assets-0.0.1-r3 chromeos-base/avtest_label_detect-0.0.1-r51 chromeos-base/autotest-fakemodem-conf-0.0.1-r1 chromeos-base/bootstat-0.0.2-r95 chromeos-base/p2p-0.0.1-r107 chromeos-base/crash-reporter-0.0.1-r17 chromeos-base/mtpd-0.0.1-r94 app-i18n/input-tools-4.3.2.5-r1 chromeos-base/chromeos-test-init-0.0.1-r297
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="CPL-1.0" class="title">Gentoo Package Stock License CPL-1.0</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-Common Public License Version 1.0
-
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS
-
-"Contribution" means:
-
-a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
-
-b) in the case of each subsequent Contributor:
-
-i) changes to the Program, and
-
-ii) additions to the Program;
-
-where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
-
-"Contributor" means any person or entity that distributes the Program.
-
-"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
-
-"Program" means the Contributions distributed in accordance with this Agreement.
-
-"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
-
-2. GRANT OF RIGHTS
-
-a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
-
-b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
-
-c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
-
-d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
-
-3. REQUIREMENTS
-
-A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
-
-a) it complies with the terms and conditions of this Agreement; and
-
-b) its license agreement:
-
-i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
-
-ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
-
-iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
-
-iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
-
-When the Program is made available in source code form:
-
-a) it must be made available under this Agreement; and
-
-b) a copy of this Agreement must be included with each copy of the Program.
-
-Contributors may not remove or alter any copyright notices contained within the Program.
-
-Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
-
-4. COMMERCIAL DISTRIBUTION
-
-Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
-
-For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
-
-5. NO WARRANTY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
-
-6. DISCLAIMER OF LIABILITY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. GENERAL
-
-If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
-
-If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
-
-All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
-
-Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
-
-This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
-</pre>
-<div class="license-packages">
-Used by these packages: app-crypt/trousers-0.3.3-r44 app-crypt/tpm-tools-1.3.5-r2
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="FTL" class="title">Gentoo Package Stock License FTL</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
- The FreeType Project LICENSE
- ----------------------------
-
- Copyright 1996-1999 by
- David Turner, Robert Wilhelm, and Werner Lemberg
-
-
-
-Introduction
-============
-
- The FreeType Project is distributed in several archive packages;
- some of them may contain, in addition to the FreeType font engine,
- various tools and contributions which rely on, or relate to, the
- FreeType Project.
-
- This license applies to all files found in such packages, and
- which do not fall under their own explicit license. The license
- affects thus the FreeType font engine, the test programs,
- documentation and makefiles, at the very least.
-
- This license was inspired by the BSD, Artistic, and IJG
- (Independent JPEG Group) licenses, which all encourage inclusion
- and use of free software in commercial and freeware products
- alike. As a consequence, its main points are that:
-
- o We don't promise that this software works. However, we are be
- interested in any kind of bug reports. (`as is' distribution)
-
- o You can use this software for whatever you want, in parts or
- full form, without having to pay us. (`royalty-free' usage)
-
- o You may not pretend that you wrote this software. If you use
- it, or only parts of it, in a program, you must acknowledge
- somewhere in your documentation that you've used the FreeType
- code. (`credits')
-
- We specifically permit and encourage the inclusion of this
- software, with or without modifications, in commercial products,
- provided that all warranty or liability claims are assumed by the
- product vendor.
-
-
-Legal Terms
-===========
-
-0. Definitions
---------------
-
- Throughout this license, the terms `package', `FreeType Project',
- and `FreeType archive' refer to the set of files originally
- distributed by the authors (David Turner, Robert Wilhelm, and
- Werner Lemberg) as the `FreeType project', be they named as alpha,
- beta or final release.
-
- `You' refers to the licensee, or person using the project, where
- `using' is a generic term including compiling the project's source
- code as well as linking it to form a `program' or `executable'.
- This program is referred to as `a program using the FreeType
- engine'.
-
- This license applies to all files distributed in the original
- FreeType archive, including all source code, binaries and
- documentation, unless otherwise stated in the file in its
- original, unmodified form as distributed in the original archive.
- If you are unsure whether or not a particular file is covered by
- this license, you must contact us to verify this.
-
- The FreeType project is copyright (C) 1996-1999 by David Turner,
- Robert Wilhelm, and Werner Lemberg. All rights reserved except as
- specified below.
-
-1. No Warranty
---------------
-
- THE FREETYPE ARCHIVE IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
- USE, OF THE FREETYPE PROJECT.
-
- As you have not signed this license, you are not required to
- accept it. However, as the FreeType project is copyrighted
- material, only this license, or another one contracted with the
- authors, grants you the right to use, distribute, and modify it.
- Therefore, by using, distributing, or modifying the FreeType
- project, you indicate that you understand and accept all the terms
- of this license.
-
-2. Redistribution
------------------
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- o Redistribution of source code must retain this license file
- (`licence.txt') unaltered; any additions, deletions or changes
- to the original files must be clearly indicated in
- accompanying documentation. The copyright notices of the
- unaltered, original files must be preserved in all copies of
- source files.
-
- o Redistribution in binary form must provide a disclaimer that
- states that the software is based in part of the work of the
- FreeType Team, in the distribution documentation. We also
- encourage you to put an URL to the FreeType web page in your
- documentation, though this isn't mandatory.
-
- These conditions apply to any software derived from or based on
- the FreeType code, not just the unmodified files. If you use our
- work, you must acknowledge us. However, no fee need be paid to
- us.
-
-3. Advertising
---------------
-
- The names of FreeType's authors and contributors may not be used
- to endorse or promote products derived from this software without
- specific prior written permission.
-
- We suggest, but do not require, that you use one or more of the
- following phrases to refer to this software in your documentation
- or advertising materials: `FreeType Project', `FreeType Engine',
- `FreeType library', or `FreeType Distribution'.
-
-4. Contacts
------------
-
- There are two mailing lists related to FreeType:
-
- o freetype@freetype.org
-
- Discusses general use and applications of FreeType, as well as
- future and wanted additions to the library and distribution.
- If you are looking for support, start in this list if you
- haven't found anything to help you in the documentation.
-
- o devel@freetype.org
-
- Discusses bugs, as well as engine internals, design issues,
- specific licenses, porting, etc.
-
- o http://www.freetype.org
-
- Holds the current FreeType web page, which will allow you to
- download our latest development version and read online
- documentation.
-
- You can also contact us individually at:
-
- David Turner &lt;david.turner@freetype.org&gt;
- Robert Wilhelm &lt;robert.wilhelm@freetype.org&gt;
- Werner Lemberg &lt;werner.lemberg@freetype.org&gt;
-
-
---- end of license.txt ---
-
-</pre>
-<div class="license-packages">
-Used by these packages: media-libs/freetype-2.5.0.1-r3 x11-libs/pango-1.32.5-r1
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="Google-TOS" class="title">Gentoo Package Stock License Google-TOS</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-# file generated using the following command (open the link in browser for up-to-date version with html links)
-# o=$(sed -n '1,3p' Google-TOS; lynx -dump http://www.google.com/intl/en/policies/terms/); echo "$o" &gt; Google-TOS
-
- [1]Google
-
-[2]Policies &amp; Principles
-
- [3]Skip to content
-
- 1. [4]Overview
- 2. Terms of Service
-
- * Terms of Service
- * [5]Updates
-
- Google Terms of Service
-
- Last modified: November 11, 2013 ([6]view archived versions)
-
-Welcome to Google!
-
- Thanks for using our products and services (“Services”). The Services are
- provided by Google Inc. (“Google”), located at 1600 Amphitheatre Parkway,
- Mountain View, CA 94043, United States.
-
- By using our Services, you are agreeing to these terms. Please read them
- carefully.
-
- Our Services are very diverse, so sometimes additional terms or product
- requirements (including age requirements) may apply. Additional terms will
- be available with the relevant Services, and those additional terms become
- part of your agreement with us if you use those Services.
-
-Using our Services
-
- You must follow any policies made available to you within the Services.
-
- Don’t misuse our Services. For example, don’t interfere with our Services
- or try to access them using a method other than the interface and the
- instructions that we provide. You may use our Services only as permitted
- by law, including applicable export and re-export control laws and
- regulations. We may suspend or stop providing our Services to you if you
- do not comply with our terms or policies or if we are investigating
- suspected misconduct.
-
- Using our Services does not give you ownership of any intellectual
- property rights in our Services or the content you access. You may not use
- content from our Services unless you obtain permission from its owner or
- are otherwise permitted by law. These terms do not grant you the right to
- use any branding or logos used in our Services. Don’t remove, obscure, or
- alter any legal notices displayed in or along with our Services.
-
- Our Services display some content that is not Google’s. This content is
- the sole responsibility of the entity that makes it available. We may
- review content to determine whether it is illegal or violates our
- policies, and we may remove or refuse to display content that we
- reasonably believe violates our policies or the law. But that does not
- necessarily mean that we review content, so please don’t assume that we
- do.
-
- In connection with your use of the Services, we may send you service
- announcements, administrative messages, and other information. You may opt
- out of some of those communications.
-
- Some of our Services are available on mobile devices. Do not use such
- Services in a way that distracts you and prevents you from obeying traffic
- or safety laws.
-
-Your Google Account
-
- You may need a Google Account in order to use some of our Services. You
- may create your own Google Account, or your Google Account may be assigned
- to you by an administrator, such as your employer or educational
- institution. If you are using a Google Account assigned to you by an
- administrator, different or additional terms may apply and your
- administrator may be able to access or disable your account.
-
- To protect your Google Account, keep your password confidential. You are
- responsible for the activity that happens on or through your Google
- Account. Try not to reuse your Google Account password on third-party
- applications. If you learn of any unauthorized use of your password or
- Google Account, [7]follow these instructions.
-
-Privacy and Copyright Protection
-
- Google’s [8]privacy policies explain how we treat your personal data and
- protect your privacy when you use our Services. By using our Services, you
- agree that Google can use such data in accordance with our privacy
- policies.
-
- We respond to notices of alleged copyright infringement and terminate
- accounts of repeat infringers according to the process set out in the U.S.
- Digital Millennium Copyright Act.
-
- We provide information to help copyright holders manage their intellectual
- property online. If you think somebody is violating your copyrights and
- want to notify us, you can find information about submitting notices and
- Google’s policy about responding to notices [9]in our Help Center.
-
-Your Content in our Services
-
- Some of our Services allow you to submit content. You retain ownership of
- any intellectual property rights that you hold in that content. In short,
- what belongs to you stays yours.
-
- When you upload or otherwise submit content to our Services, you give
- Google (and those we work with) a worldwide license to use, host, store,
- reproduce, modify, create derivative works (such as those resulting from
- translations, adaptations or other changes we make so that your content
- works better with our Services), communicate, publish, publicly perform,
- publicly display and distribute such content. The rights you grant in this
- license are for the limited purpose of operating, promoting, and improving
- our Services, and to develop new ones. This license continues even if you
- stop using our Services (for example, for a business listing you have
- added to Google Maps). Some Services may offer you ways to access and
- remove content that has been provided to that Service. Also, in some of
- our Services, there are terms or settings that narrow the scope of our use
- of the content submitted in those Services. Make sure you have the
- necessary rights to grant us this license for any content that you submit
- to our Services.
-
- If you have a Google Account, we may display your Profile name, Profile
- photo, and actions you take on Google or on third-party applications
- connected to your Google Account (such as +1’s, reviews you write and
- comments you post) in our Services, including displaying in ads and other
- commercial contexts. We will respect the choices you make to limit sharing
- or visibility settings in your Google Account. For example, you can choose
- your settings so your name and photo do not appear in an ad.
-
- You can find more information about how Google uses and stores content in
- the privacy policy or additional terms for particular Services. If you
- submit feedback or suggestions about our Services, we may use your
- feedback or suggestions without obligation to you.
-
-About Software in our Services
-
- When a Service requires or includes downloadable software, this software
- may update automatically on your device once a new version or feature is
- available. Some Services may let you adjust your automatic update
- settings.
-
- Google gives you a personal, worldwide, royalty-free, non-assignable and
- non-exclusive license to use the software provided to you by Google as
- part of the Services. This license is for the sole purpose of enabling you
- to use and enjoy the benefit of the Services as provided by Google, in the
- manner permitted by these terms. You may not copy, modify, distribute,
- sell, or lease any part of our Services or included software, nor may you
- reverse engineer or attempt to extract the source code of that software,
- unless laws prohibit those restrictions or you have our written
- permission.
-
- Open source software is important to us. Some software used in our
- Services may be offered under an open source license that we will make
- available to you. There may be provisions in the open source license that
- expressly override some of these terms.
-
-Modifying and Terminating our Services
-
- We are constantly changing and improving our Services. We may add or
- remove functionalities or features, and we may suspend or stop a Service
- altogether.
-
- You can stop using our Services at any time, although we’ll be sorry to
- see you go. Google may also stop providing Services to you, or add or
- create new limits to our Services at any time.
-
- We believe that you own your data and preserving your access to such data
- is important. If we discontinue a Service, where reasonably possible, we
- will give you reasonable advance notice and a chance to get information
- out of that Service.
-
-Our Warranties and Disclaimers
-
- We provide our Services using a commercially reasonable level of skill and
- care and we hope that you will enjoy using them. But there are certain
- things that we don’t promise about our Services.
-
- OTHER THAN AS EXPRESSLY SET OUT IN THESE TERMS OR ADDITIONAL TERMS,
- NEITHER GOOGLE NOR ITS SUPPLIERS OR DISTRIBUTORS MAKE ANY SPECIFIC
- PROMISES ABOUT THE SERVICES. FOR EXAMPLE, WE DON’T MAKE ANY COMMITMENTS
- ABOUT THE CONTENT WITHIN THE SERVICES, THE SPECIFIC FUNCTIONS OF THE
- SERVICES, OR THEIR RELIABILITY, AVAILABILITY, OR ABILITY TO MEET YOUR
- NEEDS. WE PROVIDE THE SERVICES “AS IS”.
-
- SOME JURISDICTIONS PROVIDE FOR CERTAIN WARRANTIES, LIKE THE IMPLIED
- WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NON-INFRINGEMENT. TO THE EXTENT PERMITTED BY LAW, WE EXCLUDE ALL
- WARRANTIES.
-
-Liability for our Services
-
- WHEN PERMITTED BY LAW, GOOGLE, AND GOOGLE’S SUPPLIERS AND DISTRIBUTORS,
- WILL NOT BE RESPONSIBLE FOR LOST PROFITS, REVENUES, OR DATA, FINANCIAL
- LOSSES OR INDIRECT, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE
- DAMAGES.
-
- TO THE EXTENT PERMITTED BY LAW, THE TOTAL LIABILITY OF GOOGLE, AND ITS
- SUPPLIERS AND DISTRIBUTORS, FOR ANY CLAIMS UNDER THESE TERMS, INCLUDING
- FOR ANY IMPLIED WARRANTIES, IS LIMITED TO THE AMOUNT YOU PAID US TO USE
- THE SERVICES (OR, IF WE CHOOSE, TO SUPPLYING YOU THE SERVICES AGAIN).
-
- IN ALL CASES, GOOGLE, AND ITS SUPPLIERS AND DISTRIBUTORS, WILL NOT BE
- LIABLE FOR ANY LOSS OR DAMAGE THAT IS NOT REASONABLY FORESEEABLE.
-
-Business uses of our Services
-
- If you are using our Services on behalf of a business, that business
- accepts these terms. It will hold harmless and indemnify Google and its
- affiliates, officers, agents, and employees from any claim, suit or action
- arising from or related to the use of the Services or violation of these
- terms, including any liability or expense arising from claims, losses,
- damages, suits, judgments, litigation costs and attorneys’ fees.
-
-About these Terms
-
- We may modify these terms or any additional terms that apply to a Service
- to, for example, reflect changes to the law or changes to our Services.
- You should look at the terms regularly. We’ll post notice of modifications
- to these terms on this page. We’ll post notice of modified additional
- terms in the applicable Service. Changes will not apply retroactively and
- will become effective no sooner than fourteen days after they are posted.
- However, changes addressing new functions for a Service or changes made
- for legal reasons will be effective immediately. If you do not agree to
- the modified terms for a Service, you should discontinue your use of that
- Service.
-
- If there is a conflict between these terms and the additional terms, the
- additional terms will control for that conflict.
-
- These terms control the relationship between Google and you. They do not
- create any third party beneficiary rights.
-
- If you do not comply with these terms, and we don’t take action right
- away, this doesn’t mean that we are giving up any rights that we may have
- (such as taking action in the future).
-
- If it turns out that a particular term is not enforceable, this will not
- affect any other terms.
-
- The laws of California, U.S.A., excluding California’s conflict of laws
- rules, will apply to any disputes arising out of or relating to these
- terms or the Services. All claims arising out of or relating to these
- terms or the Services will be litigated exclusively in the federal or
- state courts of Santa Clara County, California, USA, and you and Google
- consent to personal jurisdiction in those courts.
-
- For information about how to contact Google, please visit our [10]contact
- page.
-
- Good to Know
-
- * Our Good to Know site helps you stay safe and protect your family’s
- information online. [11]Visit to learn more
-
- Our legal policies
-
- * [12]Privacy Policy
- * Terms of Service
- * [13]FAQ
-
- Some technical details
-
- * [14]Technologies and Principles
- * [15]Advertising
- * [16]How Google uses cookies
- * [17]How Google uses pattern recognition
- * [18]Types of location data used by Google
- * [19]How Google Wallet uses credit card numbers
- * [20]How Google Voice works
-
- Change language: [[21]________________________]
-
- * [22]Google
- * [23]About Google
- * [24]Privacy &amp; Terms
-
-References
-
- Visible links
- 1. http://www.google.com/
- 2. http://www.google.com/intl/en/policies/
- 3. http://www.google.com/intl/en/policies/terms/#content
- 4. http://www.google.com/intl/en/policies/
- 5. http://www.google.com/intl/en/policies/terms/archive/
- 6. http://www.google.com/intl/en/policies/terms/archive/
- 7. http://support.google.com/accounts/bin/answer.py?hl=en&amp;answer=58585
- 8. http://www.google.com/intl/en/policies/privacy/
- 9. http://support.google.com/bin/static.py?hl=en&amp;ts=1114905&amp;page=ts.cs
- 10. http://www.google.com/intl/en/contact/
- 11. http://www.google.com/intl/en/goodtoknow/
- 12. http://www.google.com/intl/en/policies/privacy/
- 13. http://www.google.com/intl/en/policies/faq/
- 14. http://www.google.com/intl/en/policies/technologies/
- 15. http://www.google.com/intl/en/policies/technologies/ads/
- 16. http://www.google.com/intl/en/policies/technologies/cookies/
- 17. http://www.google.com/intl/en/policies/technologies/pattern-recognition/
- 18. http://www.google.com/intl/en/policies/technologies/location-data/
- 19. http://www.google.com/intl/en/policies/technologies/wallet/
- 20. http://www.google.com/intl/en/policies/technologies/voice/
- 22. http://www.google.com/
- 23. http://www.google.com/intl/en/about/
- 24. http://www.google.com/intl/en/policies/
-
-</pre>
-<div class="license-packages">
-Used by these packages: chromeos-base/gobi-sdk-0.1-r34 app-i18n/GoogleKeyboardInput-xkb-1.1.0.0-r1 chromeos-base/madison-cromo-plugin-0.1-r50 chromeos-base/gtalk-62219080-r7 app-i18n/GoogleChineseInput-pinyin-2.0.0.0-r1 app-i18n/GoogleChineseInput-zhuyin-2.0.0.0-r1 chromeos-base/gobi-firmware-1.0.61-r5 chromeos-base/genius-app-oem-0.0.6-r1 chromeos-base/pepper-flash-14.0.0.145-r1 chromeos-base/ja-motoyafonts-1.0.0 chromeos-base/chromeos-default-apps-1.2.0 chromeos-base/chromeos-chrome-38.0.2096.1_rc-r4 chromeos-base/ascender_to_license-20130111 app-i18n/GoogleChineseInput-cangjie-2.0.0.0-r1
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="GPL-2" class="title">Gentoo Package Stock License GPL-2</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
-</pre>
-<div class="license-packages">
-Used by these packages: chromeos-base/autotest-tests-security-0.0.1-r105 sys-apps/dtc-1.4.0 sys-kernel/linux-headers-3.12 sys-apps/findutils-4.4.2-r1 sys-process/time-1.7-r1 chromeos-base/autotest-tests-cryptohome-0.0.1-r105 chromeos-base/autotest-deps-ltp-0.0.1-r10 media-plugins/alsa-plugins-1.0.25-r1 app-benchmarks/lmbench-3.0_alpha9-r1 sys-apps/iotools-1.5 chromeos-base/autotest-tests-power-0.0.1-r105 media-libs/freetype-2.5.0.1-r3 chromeos-base/gmerge-0.0.1-r817 sys-apps/mmc-utils-0.0.1-r5 sys-fs/ecryptfs-utils-101 app-text/htmltidy-20090325 app-laptop/laptop-mode-tools-1.59-r21 chromeos-base/autotest-deps-touchpad-0.0.1-r1114 sys-process/ktop-0.0.1-r25 sys-apps/mawk-1.3.4_p20100625 sys-libs/libnih-1.0.3 dev-util/gtk-doc-am-1.18 sys-auth/pambase-20101024-r2 net-dialup/minicom-2.7 sys-apps/hdparm-9.39 sys-fs/fuse-2.8.6-r3 chromeos-base/autotest-tests-graphics-0.0.1-r105 sys-devel/autoconf-2.13 sys-devel/gdb-7.7.1-r1 chromeos-base/autotest-all-0.0.1-r26 chromeos-base/autotest-private-0.2.1-r243 x11-apps/xsendevt-0.6-r1 dev-libs/libgpg-error-1.10-r1 app-misc/screen-4.0.3-r6 chromeos-base/autotest-tests-audio-0.0.1-r105 sys-power/powertop-2.5 chromeos-base/autotest-deps-webgl-mpd-0.0.1-r665 chromeos-base/autotest-deps-graphics-0.0.1-r494 app-admin/sysstat-10.2.0 net-dialup/ppp-2.4.5-r4 app-misc/mime-types-9 net-misc/openssh-6.4_p1-r1 net-libs/libnfnetlink-1.0.1 chromeos-base/autotest-private-tests-quickoffice-0.0.1-r71 chromeos-base/autotest-deps-glbench-0.0.1-r5001 sys-process/procps-3.3.4 sys-devel/automake-wrapper-9 chromeos-base/telemetry-0.0.1-r4 sys-fs/ntfs3g-2012.1.15-r4 media-libs/sbc-1.0 sys-auth/pam_pwdfile-0.99-r1 chromeos-base/autotest-server-tests-bluetooth-0.0.1-r96 sys-apps/iproute2-3.8.0 dev-libs/nss-3.16-r1 media-libs/freeimage-3.15.3-r2 dev-util/xxd-1.10-r3 net-libs/libnetfilter_queue-1.0.1 sys-apps/hwids-20130915.1 chromeos-base/autotest-tests-ownershipapi-0.0.1-r4817 net-misc/openvpn-2.3.2-r2 dev-python/python-xlib-0.14 sys-fs/e2fsprogs-1.42 sys-apps/daisydog-0.0.1-r16 sys-fs/udev-171-r6 x11-apps/mtplot-0.0.1-r35 chromeos-base/autotest-deps-cellular-0.0.1-r141 chromeos-base/autotest-server-tests-0.0.2-r224 app-benchmarks/i7z-0.27-r1 net-wireless/wireless-tools-29 sys-apps/usbutils-007 chromeos-base/chromeos-initramfs-0.0.1-r163 dev-util/intltool-0.50.2-r2 sys-apps/flashrom-0.9.4-r319 chromeos-base/autotest-chrome-0.0.1-r3917 net-dns/dnsmasq-2.50 app-text/sgml-common-0.6.3-r5 app-benchmarks/punybench-0.0.1-r56 net-misc/strongswan-5.0.2-r14 sys-devel/autoconf-wrapper-13 dev-libs/lzo-2.06 media-gfx/ply-image-0.0.1-r46 sys-apps/pciutils-3.1.10 dev-libs/pkcs11-helper-1.07 dev-util/turbostat-3.8.11-r530 x11-misc/x11vnc-0.9.13-r1 chromeos-base/root-certificates-0.0.1-r3 sys-kernel/Linux-2.6 app-admin/eselect-opengl-1.2.4-r1 sys-apps/portage-2.1.11.50-r6 chromeos-base/autotest-tests-0.0.3-r5424 app-portage/portage-utils-0.53 net-misc/socat-1.7.2.3 sys-apps/dmidecode-2.11-r2 app-arch/xz-utils-5.0.5-r1 sys-apps/baselayout-2.0.1-r232 dev-vcs/git-1.8.3.2-r1 app-crypt/nss-3.16-r1 app-admin/eselect-python-20100321 x11-misc/read-edid-1.4.2 chromeos-base/autotest-tests-cros-disks-0.0.1-r105 sys-apps/util-linux-2.24 net-wireless/bluez-5.19-r7 sys-fs/avfs-1.0.1-r2 sys-apps/i2c-tools-3.0.2 x11-misc/xtrace-1.3.0 sys-apps/ureadahead-0.100.0-r3 net-dialup/xl2tpd-1.3.0-r2 chromeos-base/autotest-deps-0.0.4-r5331 sys-apps/ethtool-3.12.1 x11-terms/rxvt-unicode-9.10 app-misc/pax-utils-0.8.1 dev-libs/dbus-glib-0.100.2 chromeos-base/autotest-private-tests-echoprivate-0.0.1-r40 chromeos-base/autotest-tests-cellular-0.0.1-r141 net-wireless/wpa_supplicant-0.7.2-r155 app-misc/evtest-1.29 sys-apps/chvt-0.0.1-r1 chromeos-base/autotest-0.0.2-r5319 sys-process/psmisc-22.20 chromeos-base/autotest-tests-tpm-0.0.1-r105 net-wireless/hostapd-2.1-r3 sys-devel/automake-1.11.6 dev-util/perf-3.14-r3 net-libs/libmbim-1.9.0-r21 sys-fs/sshfs-fuse-2.4 games-util/joystick-1.4.2 sys-libs/pam-1.1.5 sci-libs/fftw-3.2.2 sys-devel/patch-2.6.1 sys-apps/diffutils-3.2 chromeos-base/autotest-tests-p2p-0.0.1-r105 sys-apps/net-tools-1.60_p20120127084908 dev-libs/libatomic_ops-7.2d sys-apps/keyutils-1.1-r1 chromeos-base/touchbot-1.0-r90 chromeos-base/autotest-deps-piglit-0.0.1-r4755 media-sound/alsa-utils-1.0.27.1-r1 sys-devel/binutils-config-3-r3 sys-apps/shadow-4.1.2.2-r4 chromeos-base/autotest-tests-touchpad-0.0.1-r1114 chromeos-base/autotest-tests-debugd-0.0.1-r105 x11-misc/shared-mime-info-1.0-r1 chromeos-base/autotest-server-tests-shill-0.0.1-r96 chromeos-base/autotest-server-tests-telemetry-0.0.1-r96 sys-apps/busybox-1.21.0-r5 sys-apps/sandbox-2.6-r1 net-dialup/lrzsz-0.12.20-r2 sys-apps/lshw-02.17b-r1 sys-fs/lvm2-2.02.97-r3 media-gfx/perceptualdiff-1.1.1-r2 sys-apps/kbd-1.15.3 chromeos-base/autotest-tests-shill-0.0.1-r105 net-firewall/iptables-1.4.16.3 sys-apps/upstart-1.2-r7 app-accessibility/brltty-4.5-r10 net-misc/htpdate-1.0.4-r6 chromeos-base/autotest-tests-ltp-0.0.1-r3664 chromeos-base/autotest-deps-webgl-perf-0.0.1-r494 sys-apps/dbus-1.6.8-r5 dev-libs/nspr-4.10.4 chromeos-base/recover-duts-0.0.1-r171 sys-devel/libtool-2.4.2 sys-block/fio-2.1.10-r1 sys-boot/syslinux-3.83-r5 sys-apps/smartmontools-5.42 sys-boot/coreboot-2013.04 sys-libs/libcap-2.17 chromeos-base/autotest-deps-p2p-0.0.1-r105 chromeos-base/wireless_automation-0.0.1-r7 sys-libs/e2fsprogs-libs-1.42 sys-apps/memtester-4.2.2
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="GPL-2+" class="title">Gentoo Package Stock License GPL-2+</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-GNU General Public License, version 2 or any later version.
-See GPL-2 or GPL-3 for the full text of these licenses.
-
-</pre>
-<div class="license-packages">
-Used by these packages: media-libs/freetype-2.5.0.1-r3 app-arch/xz-utils-5.0.5-r1 sys-boot/u-boot-2013.06 dev-libs/libatomic_ops-7.2d
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="GPL-3" class="title">Gentoo Package Stock License GPL-3</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. &lt;http://fsf.org/&gt;
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- &lt;program&gt; Copyright (C) &lt;year&gt; &lt;name of author&gt;
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-&lt;http://www.gnu.org/licenses/&gt;.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-&lt;http://www.gnu.org/philosophy/why-not-lgpl.html&gt;.
-
-</pre>
-<div class="license-packages">
-Used by these packages: net-misc/wget-1.14 app-misc/utouch-evemu-1.0.5-r10 app-arch/gzip-1.5 app-arch/cpio-2.11-r1 sys-fs/fuse-exfat-1.0.2_pre401 app-arch/tar-1.26-r1 sys-devel/binutils-2.22-r27 sys-devel/make-3.82-r4 sys-devel/m4-1.4.16 app-benchmarks/glmark2-285-r2 net-misc/rsync-3.0.9-r3 sys-block/parted-3.1-r1 sys-apps/less-457 app-admin/rsyslog-5.8.11-r1 sys-libs/readline-6.2_p1 sys-libs/gcc-libs-4.8.2-r11 sys-fs/mtools-4.0.15 sys-fs/dosfstools-3.0.26 sys-apps/util-linux-2.24 sys-devel/autoconf-2.69 sys-apps/grep-2.14 sys-apps/sed-4.2.1-r1 sys-fs/exfat-utils-1.0.2_pre401 app-shells/bash-4.2_p45-r1 dev-lang/swig-2.0.4-r1 sys-libs/gdbm-1.9.1-r2 sys-apps/coreutils-8.22-r1 app-arch/sharutils-4.7 chromeos-base/autotest-deps-glmark2-0.0.1-r513 sys-apps/which-2.20
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="ISC" class="title">Gentoo Package Stock License ISC</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-Copyright (c) 4-digit year, Company or Person's Name
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-</pre>
-<div class="license-packages">
-Used by these packages: app-admin/sudo-1.8.6_p7 media-libs/harfbuzz-0.9.27-r2 dev-libs/confuse-2.7 net-wireless/iw-3.10 app-misc/tmux-1.9a net-wireless/wireless-regdb-20131127-r3
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="LGPL-2" class="title">Gentoo Package Stock License LGPL-2</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
- GNU LIBRARY GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL. It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
- Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
- Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs. This
-license, the GNU Library General Public License, applies to certain
-designated libraries. This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
- The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it. Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program. However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
- Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-
- However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.) The hope is that this
-will lead to faster development of free libraries.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, while the latter only
-works together with the library.
-
- Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License"). Each licensee is
-addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- c) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- d) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the library's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-</pre>
-<div class="license-packages">
-Used by these packages: x11-libs/gtk+-2.20.1 sys-devel/gdb-7.7.1-r1 x11-libs/pango-1.32.5-r1 dev-libs/libaio-0.3.109-r3 dev-libs/dbus-c++-0.0.2-r53 dev-embedded/libftdi-1.0-r3 x11-apps/mesa-progs-8.0.1 dev-libs/glib-2.34.3-r2 dev-libs/atk-1.32.0-r1 gnome-base/libglade-2.6.4 sys-apps/kmod-17
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="LGPL-2+" class="title">Gentoo Package Stock License LGPL-2+</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-GNU Library General Public License, version 2 or any later version.
-See LGPL-2, LGPL-2.1, or LGPL-3 for the full text of these licenses.
-
-</pre>
-<div class="license-packages">
-Used by these packages: x11-libs/pango-1.32.5-r1 dev-libs/glib-2.34.3-r2
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="LGPL-2.1" class="title">Gentoo Package Stock License LGPL-2.1</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- &lt;one line to give the library's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- &lt;signature of Ty Coon&gt;, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
-
-</pre>
-<div class="license-packages">
-Used by these packages: dev-util/shflags-1.0.3-r1 dev-libs/engine_pkcs11-0.1.8-r1 media-libs/ladspa-sdk-1.13-r1 media-plugins/alsa-plugins-1.0.25-r1 net-dns/avahi-0.6.31-r4 x11-libs/cairo-1.12.12 dev-libs/libusb-compat-0.1.5-r3 dev-libs/libgpg-error-1.10-r1 dev-libs/libp11-0.2.8-r1 dev-libs/libusb-1.0.18 media-libs/sbc-1.0 dev-libs/nss-3.16-r1 dev-python/pyudev-0.16.1 media-gfx/zbar-0.10-r4 dev-libs/libgcrypt-1.4.6 dev-python/pygtk-2.14.1-r5 net-misc/modemmanager-next-1.3.0-r242 media-libs/libmtp-0.0.1-r18 sys-libs/libcap-ng-0.6.6 dev-libs/libdaemon-0.14-r1 app-crypt/nss-3.16-r1 sys-apps/util-linux-2.24 net-wireless/bluez-5.19-r7 dev-python/pygobject-2.18.0-r5 media-libs/libv4l-0.8.8 dev-libs/libnl-3.2.24 net-misc/modemmanager-classic-interfaces-0.0.1 sys-apps/acl-2.2.51 dev-python/pycairo-1.10.0-r4 sys-apps/attr-2.4.46-r2 sys-apps/keyutils-1.1-r1 media-libs/alsa-lib-1.0.27.2 app-editors/qemacs-0.4.0_pre20090420 dev-libs/opensc-0.12.2-r1 dev-libs/libnl-1.1-r1 app-accessibility/brltty-4.5-r10 dev-libs/nspr-4.10.4 media-sound/sox-14.3.2-r1
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="LGPL-3" class="title">Gentoo Package Stock License LGPL-3</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. &lt;http://fsf.org/&gt;
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
-
-</pre>
-<div class="license-packages">
-Used by these packages: sys-devel/binutils-2.22-r27 app-admin/rsyslog-5.8.11-r1 sys-libs/gcc-libs-4.8.2-r11 dev-libs/gmp-5.0.2_p1 media-libs/mesa-10.3-r3 dev-python/pycairo-1.10.0-r4 chromeos-base/autotest-deps-piglit-0.0.1-r4755
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="MPL-2.0" class="title">Gentoo Package Stock License MPL-2.0</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-Mozilla Public License Version 2.0
-==================================
-
-1. Definitions
---------------
-
-1.1. "Contributor"
- means each individual or legal entity that creates, contributes to
- the creation of, or owns Covered Software.
-
-1.2. "Contributor Version"
- means the combination of the Contributions of others (if any) used
- by a Contributor and that particular Contributor's Contribution.
-
-1.3. "Contribution"
- means Covered Software of a particular Contributor.
-
-1.4. "Covered Software"
- means Source Code Form to which the initial Contributor has attached
- the notice in Exhibit A, the Executable Form of such Source Code
- Form, and Modifications of such Source Code Form, in each case
- including portions thereof.
-
-1.5. "Incompatible With Secondary Licenses"
- means
-
- (a) that the initial Contributor has attached the notice described
- in Exhibit B to the Covered Software; or
-
- (b) that the Covered Software was made available under the terms of
- version 1.1 or earlier of the License, but not also under the
- terms of a Secondary License.
-
-1.6. "Executable Form"
- means any form of the work other than Source Code Form.
-
-1.7. "Larger Work"
- means a work that combines Covered Software with other material, in
- a separate file or files, that is not Covered Software.
-
-1.8. "License"
- means this document.
-
-1.9. "Licensable"
- means having the right to grant, to the maximum extent possible,
- whether at the time of the initial grant or subsequently, any and
- all of the rights conveyed by this License.
-
-1.10. "Modifications"
- means any of the following:
-
- (a) any file in Source Code Form that results from an addition to,
- deletion from, or modification of the contents of Covered
- Software; or
-
- (b) any new file in Source Code Form that contains any Covered
- Software.
-
-1.11. "Patent Claims" of a Contributor
- means any patent claim(s), including without limitation, method,
- process, and apparatus claims, in any patent Licensable by such
- Contributor that would be infringed, but for the grant of the
- License, by the making, using, selling, offering for sale, having
- made, import, or transfer of either its Contributions or its
- Contributor Version.
-
-1.12. "Secondary License"
- means either the GNU General Public License, Version 2.0, the GNU
- Lesser General Public License, Version 2.1, the GNU Affero General
- Public License, Version 3.0, or any later versions of those
- licenses.
-
-1.13. "Source Code Form"
- means the form of the work preferred for making modifications.
-
-1.14. "You" (or "Your")
- means an individual or a legal entity exercising rights under this
- License. For legal entities, "You" includes any entity that
- controls, is controlled by, or is under common control with You. For
- purposes of this definition, "control" means (a) the power, direct
- or indirect, to cause the direction or management of such entity,
- whether by contract or otherwise, or (b) ownership of more than
- fifty percent (50%) of the outstanding shares or beneficial
- ownership of such entity.
-
-2. License Grants and Conditions
---------------------------------
-
-2.1. Grants
-
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark)
- Licensable by such Contributor to use, reproduce, make available,
- modify, display, perform, distribute, and otherwise exploit its
- Contributions, either on an unmodified basis, with Modifications, or
- as part of a Larger Work; and
-
-(b) under Patent Claims of such Contributor to make, use, sell, offer
- for sale, have made, import, and otherwise transfer either its
- Contributions or its Contributor Version.
-
-2.2. Effective Date
-
-The licenses granted in Section 2.1 with respect to any Contribution
-become effective for each Contribution on the date the Contributor first
-distributes such Contribution.
-
-2.3. Limitations on Grant Scope
-
-The licenses granted in this Section 2 are the only rights granted under
-this License. No additional rights or licenses will be implied from the
-distribution or licensing of Covered Software under this License.
-Notwithstanding Section 2.1(b) above, no patent license is granted by a
-Contributor:
-
-(a) for any code that a Contributor has removed from Covered Software;
- or
-
-(b) for infringements caused by: (i) Your and any other third party's
- modifications of Covered Software, or (ii) the combination of its
- Contributions with other software (except as part of its Contributor
- Version); or
-
-(c) under Patent Claims infringed by Covered Software in the absence of
- its Contributions.
-
-This License does not grant any rights in the trademarks, service marks,
-or logos of any Contributor (except as may be necessary to comply with
-the notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
-No Contributor makes additional grants as a result of Your choice to
-distribute the Covered Software under a subsequent version of this
-License (see Section 10.2) or under the terms of a Secondary License (if
-permitted under the terms of Section 3.3).
-
-2.5. Representation
-
-Each Contributor represents that the Contributor believes its
-Contributions are its original creation(s) or it has sufficient rights
-to grant the rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
-This License is not intended to limit any rights You have under
-applicable copyright doctrines of fair use, fair dealing, or other
-equivalents.
-
-2.7. Conditions
-
-Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
-in Section 2.1.
-
-3. Responsibilities
--------------------
-
-3.1. Distribution of Source Form
-
-All distribution of Covered Software in Source Code Form, including any
-Modifications that You create or to which You contribute, must be under
-the terms of this License. You must inform recipients that the Source
-Code Form of the Covered Software is governed by the terms of this
-License, and how they can obtain a copy of this License. You may not
-attempt to alter or restrict the recipients' rights in the Source Code
-Form.
-
-3.2. Distribution of Executable Form
-
-If You distribute Covered Software in Executable Form then:
-
-(a) such Covered Software must also be made available in Source Code
- Form, as described in Section 3.1, and You must inform recipients of
- the Executable Form how they can obtain a copy of such Source Code
- Form by reasonable means in a timely manner, at a charge no more
- than the cost of distribution to the recipient; and
-
-(b) You may distribute such Executable Form under the terms of this
- License, or sublicense it under different terms, provided that the
- license for the Executable Form does not attempt to limit or alter
- the recipients' rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
-You may create and distribute a Larger Work under terms of Your choice,
-provided that You also comply with the requirements of this License for
-the Covered Software. If the Larger Work is a combination of Covered
-Software with a work governed by one or more Secondary Licenses, and the
-Covered Software is not Incompatible With Secondary Licenses, this
-License permits You to additionally distribute such Covered Software
-under the terms of such Secondary License(s), so that the recipient of
-the Larger Work may, at their option, further distribute the Covered
-Software under the terms of either this License or such Secondary
-License(s).
-
-3.4. Notices
-
-You may not remove or alter the substance of any license notices
-(including copyright notices, patent notices, disclaimers of warranty,
-or limitations of liability) contained within the Source Code Form of
-the Covered Software, except that You may alter any license notices to
-the extent required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
-You may choose to offer, and to charge a fee for, warranty, support,
-indemnity or liability obligations to one or more recipients of Covered
-Software. However, You may do so only on Your own behalf, and not on
-behalf of any Contributor. You must make it absolutely clear that any
-such warranty, support, indemnity, or liability obligation is offered by
-You alone, and You hereby agree to indemnify every Contributor for any
-liability incurred by such Contributor as a result of warranty, support,
-indemnity or liability terms You offer. You may include additional
-disclaimers of warranty and limitations of liability specific to any
-jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
----------------------------------------------------
-
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Software due to
-statute, judicial order, or regulation then You must: (a) comply with
-the terms of this License to the maximum extent possible; and (b)
-describe the limitations and the code they affect. Such description must
-be placed in a text file included with all distributions of the Covered
-Software under this License. Except to the extent prohibited by statute
-or regulation, such description must be sufficiently detailed for a
-recipient of ordinary skill to be able to understand it.
-
-5. Termination
---------------
-
-5.1. The rights granted under this License will terminate automatically
-if You fail to comply with any of its terms. However, if You become
-compliant, then the rights granted under this License from a particular
-Contributor are reinstated (a) provisionally, unless and until such
-Contributor explicitly and finally terminates Your grants, and (b) on an
-ongoing basis, if such Contributor fails to notify You of the
-non-compliance by some reasonable means prior to 60 days after You have
-come back into compliance. Moreover, Your grants from a particular
-Contributor are reinstated on an ongoing basis if such Contributor
-notifies You of the non-compliance by some reasonable means, this is the
-first time You have received notice of non-compliance with this License
-from such Contributor, and You become compliant prior to 30 days after
-Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
-infringement claim (excluding declaratory judgment actions,
-counter-claims, and cross-claims) alleging that a Contributor Version
-directly or indirectly infringes any patent, then the rights granted to
-You by any and all Contributors for the Covered Software under Section
-2.1 of this License shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all
-end user license agreements (excluding distributors and resellers) which
-have been validly granted by You or Your distributors under this License
-prior to termination shall survive termination.
-
-************************************************************************
-* *
-* 6. Disclaimer of Warranty *
-* ------------------------- *
-* *
-* Covered Software is provided under this License on an "as is" *
-* basis, without warranty of any kind, either expressed, implied, or *
-* statutory, including, without limitation, warranties that the *
-* Covered Software is free of defects, merchantable, fit for a *
-* particular purpose or non-infringing. The entire risk as to the *
-* quality and performance of the Covered Software is with You. *
-* Should any Covered Software prove defective in any respect, You *
-* (not any Contributor) assume the cost of any necessary servicing, *
-* repair, or correction. This disclaimer of warranty constitutes an *
-* essential part of this License. No use of any Covered Software is *
-* authorized under this License except under this disclaimer. *
-* *
-************************************************************************
-
-************************************************************************
-* *
-* 7. Limitation of Liability *
-* -------------------------- *
-* *
-* Under no circumstances and under no legal theory, whether tort *
-* (including negligence), contract, or otherwise, shall any *
-* Contributor, or anyone who distributes Covered Software as *
-* permitted above, be liable to You for any direct, indirect, *
-* special, incidental, or consequential damages of any character *
-* including, without limitation, damages for lost profits, loss of *
-* goodwill, work stoppage, computer failure or malfunction, or any *
-* and all other commercial damages or losses, even if such party *
-* shall have been informed of the possibility of such damages. This *
-* limitation of liability shall not apply to liability for death or *
-* personal injury resulting from such party's negligence to the *
-* extent applicable law prohibits such limitation. Some *
-* jurisdictions do not allow the exclusion or limitation of *
-* incidental or consequential damages, so this exclusion and *
-* limitation may not apply to You. *
-* *
-************************************************************************
-
-8. Litigation
--------------
-
-Any litigation relating to this License may be brought only in the
-courts of a jurisdiction where the defendant maintains its principal
-place of business and such litigation shall be governed by laws of that
-jurisdiction, without reference to its conflict-of-law provisions.
-Nothing in this Section shall prevent a party's ability to bring
-cross-claims or counter-claims.
-
-9. Miscellaneous
-----------------
-
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent
-necessary to make it enforceable. Any law or regulation which provides
-that the language of a contract shall be construed against the drafter
-shall not be used to construe this License against a Contributor.
-
-10. Versions of the License
----------------------------
-
-10.1. New Versions
-
-Mozilla Foundation is the license steward. Except as provided in Section
-10.3, no one other than the license steward has the right to modify or
-publish new versions of this License. Each version will be given a
-distinguishing version number.
-
-10.2. Effect of New Versions
-
-You may distribute the Covered Software under the terms of the version
-of the License under which You originally received the Covered Software,
-or under the terms of any subsequent version published by the license
-steward.
-
-10.3. Modified Versions
-
-If you create software not governed by this License, and you want to
-create a new license for such software, you may create and use a
-modified version of this License if you rename the license and remove
-any references to the name of the license steward (except to note that
-such modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary
-Licenses
-
-If You choose to distribute Source Code Form that is Incompatible With
-Secondary Licenses under the terms of this version of the License, the
-notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
--------------------------------------------
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular
-file, then You may include the notice in a location (such as a LICENSE
-file in a relevant directory) where a recipient would be likely to look
-for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
- This Source Code Form is "Incompatible With Secondary Licenses", as
- defined by the Mozilla Public License, v. 2.0.
-
-
-</pre>
-<div class="license-packages">
-Used by these packages: dev-libs/nss-3.16-r1 app-crypt/nss-3.16-r1 dev-libs/nspr-4.10.4
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="OFL-1.1" class="title">Gentoo Package Stock License OFL-1.1</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------
-
-PREAMBLE
-
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free
-and open framework in which fonts may be shared and improved in
-partnership with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply to
-any document created using the fonts or their derivatives.
-
-DEFINITIONS
-
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components
-as distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software
-to a new environment.
-
-"Author" refers to any designer, engineer, programmer, technical writer
-or other person who contributed to the Font Software.
-
-PERMISSION &amp; CONDITIONS
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components, in
-Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or in
-the appropriate machine-readable metadata fields within text or binary
-files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the
-corresponding Copyright Holder. This restriction only applies to the
-primary font name as presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS",
-WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR
-OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR
-CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF
-CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE
-USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
-
-</pre>
-<div class="license-packages">
-Used by these packages: media-fonts/my-padauk-2.50 media-fonts/crosextrafonts-carlito-20130920 media-fonts/ml-anjalioldlipi-0.740 media-fonts/tibt-jomolhari-0.0.3c media-fonts/ko-nanumfonts-3.10.0 media-fonts/lohitfonts-cros-2.5.0-r1
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="PSF-2" class="title">Gentoo Package Stock License PSF-2</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
---------------------------------------------
-
-1. This LICENSE AGREEMENT is between the Python Software Foundation
-("PSF"), and the Individual or Organization ("Licensee") accessing and
-otherwise using this software ("Python") in source or binary form and
-its associated documentation.
-
-2. Subject to the terms and conditions of this License Agreement, PSF hereby
-grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
-analyze, test, perform and/or display publicly, prepare derivative works,
-distribute, and otherwise use Python alone or in any derivative version,
-provided, however, that PSF's License Agreement and PSF's notice of copyright,
-i.e., "Copyright (c) &lt;YEARS&gt; Python Software Foundation; All Rights Reserved"
-are retained in Python alone or in any derivative version prepared by Licensee.
-
-3. In the event Licensee prepares a derivative work that is based on
-or incorporates Python or any part thereof, and wants to make
-the derivative work available to others as provided herein, then
-Licensee hereby agrees to include in any such work a brief summary of
-the changes made to Python.
-
-4. PSF is making Python available to Licensee on an "AS IS"
-basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
-A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
-OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-7. Nothing in this License Agreement shall be deemed to create any
-relationship of agency, partnership, or joint venture between PSF and
-Licensee. This License Agreement does not grant permission to use PSF
-trademarks or trade name in a trademark sense to endorse or promote
-products or services of Licensee, or any third party.
-
-8. By copying, installing or otherwise using Python, Licensee
-agrees to be bound by the terms and conditions of this License
-Agreement.
-
-</pre>
-<div class="license-packages">
-Used by these packages: dev-python/setuptools-0.8-r1 dev-lang/python-2.7.3-r7 chromeos-base/minifakedns-0.0.1-r13
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="public-domain" class="title">Gentoo Package Stock License public-domain</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-Software is in the public domain.
-
-</pre>
-<div class="license-packages">
-Used by these packages: sys-apps/hwids-20130915.1 app-arch/xz-utils-5.0.5-r1 sys-libs/timezone-data-2014e sys-apps/util-linux-2.24 dev-libs/jsoncpp-0.6.0_rc2
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="SGI-B-2.0" class="title">Gentoo Package Stock License SGI-B-2.0</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
-
-Copyright (C) [dates of first publication] Silicon Graphics, Inc. All Rights
-Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice including the dates of first publication and either
-this permission notice or a reference to http://oss.sgi.com/projects/FreeB/
-shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON
-GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Silicon Graphics, Inc. shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Silicon
-Graphics, Inc.
-
-</pre>
-<div class="license-packages">
-Used by these packages: x11-proto/glproto-1.4.14-r1 media-libs/mesa-10.3-r3 media-libs/glu-9.0.0
-</div>
-</div>
-</div>
-
-<div class="product">
-<a name="X" class="title">Custom License X</a>
-<a class="show" href="#" onclick="return toggle(this);">show license text</a>
-<div class="licence">
-<pre>
-The following is the 'standard copyright' agreed upon by most contributors,
-and is currently the canonical license preferred by the X.Org Foundation.
-This is a slight variant of the common MIT license form published by the
-Open Source Initiative at http://www.opensource.org/licenses/mit-license.php
-
-Copyright holders of new code should use this license statement where
-possible, and insert their name to this list. Please sort by surname
-for people, and by the full name for other entities (e.g. Juliusz
-Chroboczek sorts before Intel Corporation sorts before Daniel Stone).
-
-Copyright © 2000-2001 Juliusz Chroboczek
-Copyright © 1998 Egbert Eich
-Copyright © 2006-2007 Intel Corporation
-Copyright © 2006 Nokia Corporation
-Copyright © 2006-2008 Peter Hutterer
-Copyright © 2006 Adam Jackson
-Copyright © 2009 NVIDIA Corporation
-Copyright © 1999 Keith Packard
-Copyright © 2007-2009 Red Hat, Inc.
-Copyright © 2005-2008 Daniel Stone
-Copyright © 2006-2009 Simon Thum
-Copyright © 1987, 2003-2006, 2008-2009 Sun Microsystems, Inc.
-Copyright © 2006 Luc Verhaegen
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-
-
-
-The following licenses are 'legacy': usually MIT/X11 licenses with the name
-of the copyright holder(s) in the license statement, but also some BSD-like
-licenses.
-
-
-Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
-Copyright (C) Colin Harrison 2005-2008
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
-NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the XFree86 Project shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the XFree86 Project.
-
-
-Copyright 1997 by The XFree86 Project, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of the XFree86 Project, Inc.
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. The Xfree86
-Project, Inc. makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1985-1998, 2001 The Open Group
-Copyright 2002 Red Hat Inc., Durham, North Carolina.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright (c) 1987, 1989-1990, 1992-1995 X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-
-
-Copyright © 1999-2000 SuSE, Inc.
-Copyright © 2007 Red Hat, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of SuSE not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. SuSE makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1987-1991, 1993 by Digital Equipment Corporation, Maynard, Massachusetts.
-Copyright 1991 Massachusetts Institute of Technology, Cambridge, Massachusetts.
-Copyright 1991, 1993 Olivetti Research Limited, Cambridge, England.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-Copyright 1994 Quarterdeck Office Systems.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital and
-Quarterdeck not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-DIGITAL AND QUARTERDECK DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1997 Digital Equipment Corporation.
-All rights reserved.
-
-This software is furnished under license and may be used and copied only in
-accordance with the following terms and conditions. Subject to these
-conditions, you may download, copy, install, use, modify and distribute
-this software in source and/or binary form. No title or ownership is
-transferred hereby.
-
-1) Any source code used, modified or distributed must reproduce and retain
- this copyright notice and list of conditions as they appear in the
- source file.
-
-2) No right is granted to use any trade name, trademark, or logo of Digital
- Equipment Corporation. Neither the "Digital Equipment Corporation"
- name nor any trademark or logo of Digital Equipment Corporation may be
- used to endorse or promote products derived from this software without
- the prior written permission of Digital Equipment Corporation.
-
-3) This software is provided "AS-IS" and any express or implied warranties,
- including but not limited to, any implied warranties of merchantability,
- fitness for a particular purpose, or non-infringement are disclaimed.
- In no event shall DIGITAL be liable for any damages whatsoever, and in
- particular, DIGITAL shall not be liable for special, indirect,
- consequential, or incidental damages or damages for lost profits, loss
- of revenue or loss of use, whether such damages arise in contract,
- negligence, tort, under statute, in equity, at law or otherwise, even
- if advised of the possibility of such damage.
-
-
-Copyright (c) 1991, 1996-1997 Digital Equipment Corporation, Maynard, Massachusetts.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Digital Equipment Corporation
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
-Equipment Corporation.
-
-
-SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
-Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice including the dates of first publication and
-either this permission notice or a reference to
-http://oss.sgi.com/projects/FreeB/
-shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-Copyright (c) 1994, 1995 Hewlett-Packard Company
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the Hewlett-Packard
-Company shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the Hewlett-Packard Company.
-
-
-Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
-All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Hewlett-Packard not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
-Copyright (c) 2003 by the XFree86 Project, Inc.
-Copyright 2004-2005 Red Hat Inc., Raleigh, North Carolina.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation on the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial
-portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
-BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-Copyright © 2008 Red Hat, Inc.
-Partly based on code Copyright © 2000 SuSE, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without
-fee, provided that the above copyright notice appear in all copies
-and that both that copyright notice and this permission notice
-appear in supporting documentation, and that the name of Red Hat
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission. Red
-Hat makes no representations about the suitability of this software
-for any purpose. It is provided "as is" without express or implied
-warranty.
-
-Red Hat DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
-NO EVENT SHALL Red Hat BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of SuSE not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. SuSE makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
-BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright © 2006 Red Hat, Inc.
-(C) Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sub license,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-RED HAT, INC, OR PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
-OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright (c) 1995 X Consortium
-Copyright 2004 Red Hat Inc., Durham, North Carolina.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation on the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT, THE X CONSORTIUM,
-AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium
-shall not be used in advertising or otherwise to promote the sale,
-use or other dealings in this Software without prior written
-authorization from the X Consortium.
-
-
-Copyright 1998-2000 Precision Insight, Inc., Cedar Park, Texas.
-Copyright 2000 VA Linux Systems, Inc.
-Copyright (c) 2002, 2008, 2009 Apple Computer, Inc.
-Copyright (c) 2003-2004 Torrey T. Lyons.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-(C) Copyright IBM Corporation 2003
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-on the rights to use, copy, modify, merge, publish, distribute, sub
-license, and/or sell copies of the Software, and to permit persons to whom
-the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-(C) Copyright IBM Corporation 2004-2005
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sub license,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-IBM,
-AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-Copyright (c) 1997 Metro Link Incorporated
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of the Metro Link shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from Metro Link.
-
-
-Copyright 1995-1998 by Metro Link, Inc.
-Copyright (c) 1997 Matthieu Herrb
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Metro Link, Inc. not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Metro Link, Inc. makes no
-representations about the suitability of this software for any purpose.
- It is provided "as is" without express or implied warranty.
-
-METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1998 by Metro Link Incorporated
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Metro Link
-Incorporated not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission. Metro Link Incorporated makes no representations
-about the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-METRO LINK INCORPORATED DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL METRO LINK INCORPORATED BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-CONECTIVA LINUX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of Conectiva Linux shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from
-Conectiva Linux.
-
-
-Copyright (c) 2001, Andy Ritger aritger@nvidia.com
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-o Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-o Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-o Neither the name of NVIDIA nor the names of its contributors
- may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
-NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-
-Copyright 1992 Vrije Universiteit, The Netherlands
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of the Vrije Universiteit not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. The Vrije Universiteit makes no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-The Vrije Universiteit DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL The Vrije Universiteit BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1998 by Concurrent Computer Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Concurrent Computer
-Corporation not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission. Concurrent Computer Corporation makes no representations
-about the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-CONCURRENT COMPUTER CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL CONCURRENT COMPUTER CORPORATION BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright © 2004 Nokia
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Nokia not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Nokia makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-NOKIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-(c)Copyright 1988,1991 Adobe Systems Incorporated.
-All rights reserved.
-
-Permission to use, copy, modify, distribute, and sublicense this software and its
-documentation for any purpose and without fee is hereby granted, provided that
-the above copyright notices appear in all copies and that both those copyright
-notices and this permission notice appear in supporting documentation and that
-the name of Adobe Systems Incorporated not be used in advertising or publicity
-pertaining to distribution of the software without specific, written prior
-permission. No trademark license to use the Adobe trademarks is hereby
-granted. If the Adobe trademark "Display PostScript"(tm) is used to describe
-this software, its functionality or for any other purpose, such use shall be
-limited to a statement that this software works in conjunction with the Display
-PostScript system. Proper trademark attribution to reflect Adobe's ownership
-of the trademark shall be given whenever any such reference to the Display
-PostScript system is made.
-
-ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR ANY
-PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ADOBE
-DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-
-INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE TO YOU
-OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,NEGLIGENCE, STRICT
-LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT PROVIDE ANY TRAINING OR OTHER
-SUPPORT FOR THE SOFTWARE.
-
-Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems
-Incorporated which may be registered in certain jurisdictions.
-
-
-Copyright 1989 Network Computing Devices, Inc., Mountain View, California.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of N.C.D. not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. N.C.D. makes no representations about the
-suitability of this software for any purpose. It is provided "as is"
-without express or implied warranty.
-
-
-Copyright (c) 1987 by the Regents of the University of California
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies. The University of California
-makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without
-express or implied warranty.
-
-
-Copyright 1992, 1993 Data General Corporation;
-Copyright 1992, 1993 OMRON Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that the
-above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and that
-neither the name OMRON or DATA GENERAL be used in advertising or publicity
-pertaining to distribution of the software without specific, written prior
-permission of the party whose name is to be used. Neither OMRON or
-DATA GENERAL make any representation about the suitability of this software
-for any purpose. It is provided "as is" without express or implied warranty.
-
-OMRON AND DATA GENERAL EACH DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL OMRON OR DATA GENERAL BE LIABLE FOR ANY SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
-
-Copyright © 1998-2004, 2006 Keith Packard
-Copyright © 2000-2002 Keith Packard, member of The XFree86 Project, Inc.
-Copyright (c) 2002 Apple Computer, Inc.
-Copyright (c) 2003 Torrey T. Lyons.
-All Rights Reserved.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright © 1999 Keith Packard
-Copyright © 2000 Compaq Computer Corporation
-Copyright © 2002 MontaVista Software Inc.
-Copyright © 2005 OpenedHand Ltd.
-Copyright © 2006 Nokia Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of the authors and/or copyright holders
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. The authors and/or
-copyright holders make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THE AUTHORS AND/OR COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL THE AUTHORS AND/OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1993 by Davor Matic
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation. Davor Matic makes no representations about
-the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-
-Copyright (C) 2001-2004 Harold L Hunt II All Rights Reserved.
-Copyright (C) Colin Harrison 2005-2008
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL HAROLD L HUNT II BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Harold L Hunt II
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-from Harold L Hunt II.
-
-
-Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Thomas Roell not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Thomas Roell makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Thomas Roell and David Wexelblat
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Thomas Roell and
-David Wexelblat makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THOMAS ROELL AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THOMAS ROELL OR DAVID WEXELBLAT BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1990,91,92,93 by Thomas Roell, Germany.
-Copyright 1991,92,93 by SGCS (Snitily Graphics Consulting Services), USA.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Thomas Roell nor
-SGCS be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-Thomas Roell nor SGCS makes no representations about the suitability
-of this software for any purpose. It is provided "as is" without
-express or implied warranty.
-
-THOMAS ROELL AND SGCS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THOMAS ROELL OR SGCS BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1998 by Alan Hourihane, Wigan, England.
-Copyright 2000-2002 by Alan Hourihane, Flint Mountain, North Wales.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Alan Hourihane not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Alan Hourihane makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1995 Kaleb S. KEITHLEY
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES
-OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Kaleb S. KEITHLEY
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-from Kaleb S. KEITHLEY
-
-
-Copyright (c) 1997 Matthieu Herrb
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Matthieu Herrb not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Matthieu Herrb makes no
-representations about the suitability of this software for any purpose.
- It is provided "as is" without express or implied warranty.
-
-MATTHIEU HERRB DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL MATTHIEU HERRB BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 2004, Egbert Eich
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-EGBERT EICH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
-NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Egbert Eich shall not
-be used in advertising or otherwise to promote the sale, use or other deal-
-ings in this Software without prior written authorization from Egbert Eich.
-
-
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-Copyright 2005 by Kean Johnston &lt;jkj@sco.com&gt;
-Copyright 1993 by David McCullough &lt;davidm@stallion.oz.au&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of David Wexelblat not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. David Wexelblat makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL DAVID WEXELBLAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1992 by Orest Zborowski &lt;obz@Kodak.com&gt;
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Orest Zborowski and David Wexelblat
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Orest Zborowski
-and David Wexelblat make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-OREST ZBOROWSKI AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1992 by Orest Zborowski &lt;obz@Kodak.com&gt;
-Copyright 1993 by David Dawes &lt;dawes@xfree86.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Orest Zborowski and David Dawes
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Orest Zborowski
-and David Dawes make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-OREST ZBOROWSKI AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID DAWES BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1995-1999 by Frederic Lepied, France. &lt;fred@sugix.frmug.fr.net&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Frederic Lepied not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Frederic Lepied makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-FREDERIC LEPIED DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FREDERIC LEPIED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1992 by Rich Murphey &lt;Rich@Rice.edu&gt;
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Rich Murphey and David Wexelblat
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Rich Murphey and
-David Wexelblat make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-RICH MURPHEY AND DAVID WEXELBLAT DISCLAIM ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID WEXELBLAT BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1992 by Rich Murphey &lt;Rich@Rice.edu&gt;
-Copyright 1993 by David Dawes &lt;dawes@xfree86.org&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Rich Murphey and David Dawes
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. Rich Murphey and
-David Dawes make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-RICH MURPHEY AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID DAWES BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright © 2003-2004 Anders Carlsson
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Anders Carlsson not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Anders Carlsson makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-ANDERS CARLSSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL ANDERS CARLSSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (C) 2003 Anders Carlsson
-Copyright © 2003-2004 Eric Anholt
-Copyright © 2004 Keith Packard
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Eric Anholt not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Eric Anholt makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-ERIC ANHOLT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL ERIC ANHOLT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright © 2004 PillowElephantBadgerBankPond
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of PillowElephantBadgerBankPond not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. PillowElephantBadgerBankPond makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-PillowElephantBadgerBankPond DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL PillowElephantBadgerBankPond BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (c) 1998 Todd C. Miller &lt;Todd.Miller@courtesan.com&gt;
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE
-FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright © 2003-2004 Philip Blundell
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Philip Blundell not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Philip Blundell makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-PHILIP BLUNDELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL PHILIP BLUNDELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-
-Copyright (c) 1994-2003 by The XFree86 Project, Inc.
-Copyright 1997 by Metro Link, Inc.
-Copyright 2003 by David H. Dawes.
-Copyright 2003 by X-Oz Technologies.
-Copyright (c) 2004, X.Org Foundation
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the copyright holder(s)
-and author(s) shall not be used in advertising or otherwise to promote
-the sale, use or other dealings in this Software without prior written
-authorization from the copyright holder(s) and author(s).
-
-
-Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
-Copyright 1993 by David Wexelblat &lt;dwex@goblin.org&gt;
-Copyright 1999 by David Holland &lt;davidh@iquest.net&gt;
-Copyright © 2000 Compaq Computer Corporation
-Copyright © 2002 Hewlett-Packard Company
-Copyright © 2004, 2005 Red Hat, Inc.
-Copyright © 2004 Nicholas Miell
-Copyright © 2005 Trolltech AS
-Copyright © 2006 Intel Corporation
-Copyright © 2006-2007 Keith Packard
-Copyright © 2008 Red Hat, Inc
-Copyright © 2008 George Sapountzis &lt;gsap7@yahoo.gr&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of the copyright holders not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. The copyright holders make no representations
-about the suitability of this software for any purpose. It is provided "as
-is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
- 2005 Lars Knoll &amp; Zack Rusin, Trolltech
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Keith Packard makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-Copyright 1987, 1998 The Open Group
-Copyright © 1998-1999, 2001 The XFree86 Project, Inc.
-Copyright © 2000 VA Linux Systems, Inc.
-Copyright (c) 2000, 2001 Nokia Home Communications
-Copyright © 2007, 2008 Red Hat, Inc.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
-
-
-Copyright 1996 by Thomas E. Dickey &lt;dickey@clark.net&gt;
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of the above listed
-copyright holder(s) not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission.
-
-THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-Copyright (c) 2001 Andreas Monitzer.
-Copyright (c) 2001-2004 Greg Parker.
-Copyright (c) 2001-2004 Torrey T. Lyons
-Copyright (c) 2002-2003 Apple Computer, Inc.
-Copyright (c) 2004-2005 Alexander Gottwald
-Copyright (c) 2002-2009 Apple Inc.
-Copyright (c) 2007 Jeremy Huddleston
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name(s) of the above copyright
-holders shall not be used in advertising or otherwise to promote the sale,
-use or other dealings in this Software without prior written authorization.
-
-
-Copyright (C) 1999,2000 by Eric Sunshine &lt;sunshine@sunshineco.com&gt;
-Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria.
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
-NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-Copyright (C) 2005 Bogdan D. bogdand@users.sourceforge.net
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the author shall not be used in
-advertising or otherwise to promote the sale, use or other dealings in this
-Software without prior written authorization from the author.
-
-
-Copyright © 2002 David Dawes
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of the author(s) shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from
-the author(s).
-
-
-Copyright (C) 1996-1999 SciTech Software, Inc.
-Copyright (C) David Mosberger-Tang
-Copyright (C) 1999 Egbert Eich
-Copyright (C) 2008 Bart Trojanowski, Symbio Technologies, LLC
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of the authors not be used
-in advertising or publicity pertaining to distribution of the software
-without specific, written prior permission. The authors makes no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 2005-2006 Luc Verhaegen.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright 1995 by Robin Cutshaw &lt;robin@XFree86.Org&gt;
-Copyright 2000 by Egbert Eich
-Copyright 2002 by David Dawes
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of the above listed copyright holder(s)
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. The above listed
-copyright holder(s) make(s) no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 1997-2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting documentation, and
-that the name of Marc Aurele La France not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission. Marc Aurele La France makes no representations
-about the suitability of this software for any purpose. It is provided
-"as-is" without express or implied warranty.
-
-MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
-EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
-
-Copyright 1990, 1991 by Thomas Roell, Dinkelscherben, Germany
-Copyright 1992 by David Dawes &lt;dawes@XFree86.org&gt;
-Copyright 1992 by Jim Tsillas &lt;jtsilla@damon.ccs.northeastern.edu&gt;
-Copyright 1992 by Rich Murphey &lt;Rich@Rice.edu&gt;
-Copyright 1992 by Robert Baron &lt;Robert.Baron@ernst.mach.cs.cmu.edu&gt;
-Copyright 1992 by Orest Zborowski &lt;obz@eskimo.com&gt;
-Copyright 1993 by Vrije Universiteit, The Netherlands
-Copyright 1993 by David Wexelblat &lt;dwex@XFree86.org&gt;
-Copyright 1994, 1996 by Holger Veit &lt;Holger.Veit@gmd.de&gt;
-Copyright 1997 by Takis Psarogiannakopoulos &lt;takis@dpmms.cam.ac.uk&gt;
-Copyright 1994-2003 by The XFree86 Project, Inc
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of the above listed copyright holders
-not be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. The above listed
-copyright holders make no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright 2001-2005 by J. Kean Johnston &lt;jkj@sco.com&gt;
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name J. Kean Johnston not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. J. Kean Johnston makes no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-J. KEAN JOHNSTON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL J. KEAN JOHNSTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (C) 2000 Jakub Jelinek (jakub@redhat.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-JAKUB JELINEK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright 1997,1998 by UCHIYAMA Yasushi
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of UCHIYAMA Yasushi not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. UCHIYAMA Yasushi makes no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (C) 2000 Keith Packard
- 2004 Eric Anholt
- 2005 Zack Rusin
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of copyright holders not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. Copyright holders make no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-
-(C) Copyright IBM Corporation 2002-2007
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-on the rights to use, copy, modify, merge, publish, distribute, sub
-license, and/or sell copies of the Software, and to permit persons to whom
-the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
-THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-this permission notice appear in supporting documentation. This permission
-notice shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright © 2007 OpenedHand Ltd
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of OpenedHand Ltd not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission. OpenedHand Ltd makes no
-representations about the suitability of this software for any purpose. It
-is provided "as is" without express or implied warranty.
-
-OpenedHand Ltd DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL OpenedHand Ltd BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-Copyright (c) 1989, 1990, 1993, 1994
- The Regents of the University of California. All rights reserved.
-
-This code is derived from software contributed to Berkeley by
-Chris Torek.
-
-This code is derived from software contributed to Berkeley by
-Michael Rendell of Memorial University of Newfoundland.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
-</pre>
-<div class="license-packages">
-Used by these packages: x11-libs/libdrm-2.4.54-r1 x11-libs/xcb-util-wm-0.3.8 x11-libs/xcb-util-renderutil-0.3.8 x11-libs/xcb-util-image-0.3.8 x11-libs/xcb-util-0.3.8 x11-libs/xcb-util-keysyms-0.3.8 x11-base/X.Org-1.9.3 x11-apps/xset-mini-1.2.2-r3 x11-libs/libdrm-tests-2.4.54
-</div>
-</div>
-</div>
-
-
-<!-- Note that some packages included above are used during build, but not
-shipped with ChromeOS proper /merlin -->
-<script src="chrome://os-credits/keyboard_utils.js"></script>
+<h1>Placeholder</h1>
+<p>See <a href="http://dev.chromium.org/chromium-os/licensing-for-chromiumos-developers">Licensing for Chromium OS Developers</a> and
+ <a href="http://dev.chromium.org/chromium-os/licensing-for-chromiumos-package-owners">Licensing for Chromium OS Package Owners</a></p>
+<p>
+If you need to change styles, fonts, layout, etc of <a href="chrome://os_credits">chrome://os_credits</a> page,
+edit <a href="https://chromium.googlesource.com/chromiumos/chromite/+/master/licensing/about_credits.tmpl">chromite/licensing/about_credits.tmpl</a>.
+The template is used to generate
+a device-dependent about_os_credits.html when a CrOS image is built.</p>
</body>
</html>
diff --git a/chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.html b/chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.html
index ab7c6ed1500..5a3bd3925ca 100644
--- a/chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.html
+++ b/chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.html
@@ -13,8 +13,10 @@
<script src="chrome://resources/js/event_tracker.js"></script>
<script src="chrome://resources/js/cr/event_target.js"></script>
<script src="chrome://resources/js/cr/ui.js"></script>
-<script src="chrome://resources/js/cr/ui/touch_handler.js"></script>
<script src="chrome://resources/js/cr/ui/array_data_model.js"></script>
+<script src="chrome://resources/js/cr/ui/focus_manager.js"></script>
+<script src="chrome://resources/js/cr/ui/focus_outline_manager.js"></script>
+<script src="chrome://resources/js/cr/ui/touch_handler.js"></script>
<script src="chrome://resources/js/load_time_data.js"></script>
<script src="chrome://resources/js/util.js"></script>
<script src="chrome://resources/js/cr/ui/page_manager/page_manager.js"></script>
diff --git a/chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.js b/chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.js
index 30cdedfb7cc..7cba61d84a1 100644
--- a/chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.js
+++ b/chromium/chrome/browser/resources/chromeos/bluetooth_pair_device.js
@@ -18,6 +18,23 @@ window.onbeforeunload = function() {
PageManager.willClose();
};
+/*
+ * Override calls from BluetoothOptionsHandler.
+ */
+cr.define('options', function() {
+ function BluetoothOptions() {}
+
+ BluetoothOptions.startDeviceDiscovery = function() {};
+ BluetoothOptions.updateDiscoveryState = function() {};
+ BluetoothOptions.dismissOverlay = function() {
+ PageManager.closeOverlay();
+ };
+
+ return {
+ BluetoothOptions: BluetoothOptions
+ };
+});
+
/**
* DOMContentLoaded handler, sets up the page.
*/
diff --git a/chromium/chrome/browser/resources/chromeos/braille_ime/BUILD.gn b/chromium/chrome/browser/resources/chromeos/braille_ime/BUILD.gn
new file mode 100644
index 00000000000..092cbce3bc1
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/braille_ime/BUILD.gn
@@ -0,0 +1,14 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+assert(is_chromeos)
+
+copy("braille_ime_manifest") {
+ sources = [
+ "manifest.json",
+ ]
+ outputs = [
+ "$root_out_dir/resources/chromeos/braille_ime/manifest.json",
+ ]
+}
diff --git a/chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime.js b/chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime.js
index deed955617b..c91257446db 100644
--- a/chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime.js
+++ b/chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime.js
@@ -18,7 +18,9 @@
* Sent on focus/blur to inform ChromeVox of the type of the current field.
* In the latter case (blur), context is null.
* {type: 'reset'}
- * Sent when the {@code onReset} IME event fires.
+ * Sent when the {@code onReset} IME event fires or uncommitted text is
+ * committed without being triggered by ChromeVox (e.g. because of a
+ * key press).
* {type: 'brailleDots', dots: number}
* Sent when the user typed a braille cell using the standard keyboard.
* ChromeVox treats this similarly to entering braille input using the
@@ -35,6 +37,14 @@
* and inserts {@code newText}. {@code contextID} identifies the text field
* to apply the update to (no change will happen if focus has moved to a
* different field).
+ * {type: 'setUncommitted', contextID: number, text: string}
+ * Stores text for the field identified by contextID to be committed
+ * either as a result of a 'commitUncommitted' message or a by the IME
+ * unhandled key press event. Unlike 'replaceText', this does not send the
+ * uncommitted text to the input field, but instead stores it in the IME.
+ * {type: 'commitUncommitted', contextID: number}
+ * Commits any uncommitted text if it matches the given context ID.
+ * See 'setUncommitted' above.
* {type: 'keyEventHandled', requestId: string, result: boolean}
* Response to a {@code backspace} message indicating whether the
* backspace was handled by ChromeVox or should be allowed to propagate
@@ -108,7 +118,7 @@ BrailleIme.prototype = {
* Note that the mapping below is arranged like the dots in a braille cell.
* Only 6 dot input is supported.
* @private
- * @const {Object<string, number>}
+ * @const {Object<number>}
*/
CODE_TO_DOT_: {'KeyF': 0x01, 'KeyJ': 0x08,
'KeyD': 0x02, 'KeyK': 0x10,
@@ -131,6 +141,13 @@ BrailleIme.prototype = {
port_: null,
/**
+ * Uncommitted text and context ID.
+ * @type {?{contextID: number, text: string}}
+ * @private
+ */
+ uncommitted_: null,
+
+ /**
* Registers event listeners in the chrome IME API.
*/
init: function() {
@@ -216,9 +233,8 @@ BrailleIme.prototype = {
*/
onKeyEvent_: function(engineID, event) {
var result = this.processKey_(event);
- if (result !== undefined) {
- chrome.input.ime.keyEventHandled(event.requestId, result);
- }
+ if (result !== undefined)
+ this.keyEventHandled_(event.requestId, event.type, result);
},
/**
@@ -356,7 +372,17 @@ BrailleIme.prototype = {
case 'keyEventHandled':
message =
/** @type {{requestId: string, result: boolean}} */ (message);
- chrome.input.ime.keyEventHandled(message.requestId, message.result);
+ this.keyEventHandled_(message.requestId, 'keydown', message.result);
+ break;
+ case 'setUncommitted':
+ message =
+ /** @type {{contextID: number, text: string}} */ (message);
+ this.setUncommitted_(message.contextID, message.text);
+ break;
+ case 'commitUncommitted':
+ message =
+ /** @type {{contextID: number}} */ (message);
+ this.commitUncommitted_(message.contextID);
break;
default:
console.error('Unknown message from ChromeVox: ' +
@@ -430,6 +456,42 @@ BrailleIme.prototype = {
},
/**
+ * Responds to an asynchronous key event, indicating whether it was handled
+ * or not. If it wasn't handled, any uncommitted text is committed
+ * before sending the response to the IME API.
+ * @param {string} requestId Key event request id.
+ * @param {string} type Type of key event being responded to.
+ * @param {boolean} response Whether the IME handled the event.
+ */
+ keyEventHandled_: function(requestId, type, response) {
+ if (!response && type === 'keydown' && this.uncommitted_) {
+ this.commitUncommitted_(this.uncommitted_.contextID);
+ this.sendToChromeVox_({type: 'reset'});
+ }
+ chrome.input.ime.keyEventHandled(requestId, response);
+ },
+
+ /**
+ * Stores uncommitted text that will be committed on any key press or
+ * when {@code commitUncommitted_} is called.
+ * @param {number} contextID of the current field.
+ * @param {string} text to store.
+ */
+ setUncommitted_: function(contextID, text) {
+ this.uncommitted_ = {contextID: contextID, text: text};
+ },
+
+ /**
+ * Commits the last set uncommitted text if it matches the given context id.
+ * @param {number} contextID
+ */
+ commitUncommitted_: function(contextID) {
+ if (this.uncommitted_ && contextID === this.uncommitted_.contextID)
+ chrome.input.ime.commitText(this.uncommitted_);
+ this.uncommitted_ = null;
+ },
+
+ /**
* Updates the menu items for this IME.
*/
updateMenuItems_: function() {
diff --git a/chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs b/chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs
index 83740b6c5c9..a0335ab2432 100644
--- a/chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs
+++ b/chromium/chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs
@@ -45,7 +45,7 @@ MockEvent.prototype = {
function MockPort() {
this.onMessage = new MockEvent();
this.onDisconnect = new MockEvent();
- /** @type {Array.<Object>} */
+ /** @type {Array<Object>} */
this.messages = [];
}
@@ -276,3 +276,36 @@ TEST_F('BrailleImeUnitTest', 'ReplaceText', function() {
assertFalse(hasSelection);
assertEquals('Hi, good bye!', text);
});
+
+TEST_F('BrailleImeUnitTest', 'Uncommitted', function() {
+ var CONTEXT_ID = 1;
+ var text = '';
+ chrome.input.ime.commitText = function(params) {
+ assertEquals(CONTEXT_ID, params.contextID);
+ text += params.text;
+ };
+ var sendSetUncommitted = function(text) {
+ this.port.onMessage.dispatch(
+ {type: 'setUncommitted', contextID: CONTEXT_ID, text: text});
+ }.bind(this);
+ var sendCommitUncommitted = function(contextID) {
+ this.port.onMessage.dispatch(
+ {type: 'commitUncommitted', contextID: contextID});
+ }.bind(this);
+
+ this.activateIme();
+ sendSetUncommitted('Hi');
+ assertEquals('', text);
+ sendSetUncommitted('Hello');
+ sendCommitUncommitted(CONTEXT_ID);
+ assertEquals('Hello', text);
+ sendSetUncommitted(' there!');
+ sendCommitUncommitted(CONTEXT_ID + 1);
+ assertEquals('Hello', text);
+
+ sendSetUncommitted(' you!');
+ assertFalse(this.sendKeyDown('KeyY'));
+ assertEquals('Hello you!', text);
+ assertFalse(this.sendKeyUp('KeyY'));
+ assertEquals('Hello you!', text);
+});
diff --git a/chromium/chrome/browser/resources/chromeos/braille_ime/compiled_resources.gyp b/chromium/chrome/browser/resources/chromeos/braille_ime/compiled_resources.gyp
index ea1bc6ec137..1722255dee1 100644
--- a/chromium/chrome/browser/resources/chromeos/braille_ime/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/chromeos/braille_ime/compiled_resources.gyp
@@ -11,7 +11,7 @@
'braille_ime.js',
],
'externs': [
- '<(CLOSURE_DIR)/externs/chrome_extensions.js',
+ '<(EXTERNS_DIR)/chrome_extensions.js',
'externs.js',
],
},
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/BUILD.gn b/chromium/chrome/browser/resources/chromeos/chromevox/BUILD.gn
new file mode 100644
index 00000000000..1538cc8b0f9
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/BUILD.gn
@@ -0,0 +1,393 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/features.gni")
+import("//testing/test.gni")
+import("//chrome/test/base/js2gtest.gni")
+import("chromevox.gni")
+
+assert(is_chromeos)
+
+declare_args() {
+ # Whether to compress the main Chromevox javascript files or load the
+ # modules individually from source files.
+ chromevox_compress_js = !is_debug
+}
+
+chromevox_out_dir = "$root_out_dir/resources/chromeos/chromevox"
+
+group("chromevox") {
+ deps = [
+ "//chrome/browser/resources/chromeos/braille_ime:braille_ime_manifest",
+ "//chrome/browser/resources/chromeos/chromevox/strings:chromevox_strings",
+ "//chrome/third_party/chromevox:chromevox_third_party_resources",
+ "//third_party/liblouis",
+
+ #<(DEPTH)/third_party/liblouis/liblouis_nacl.gyp:liblouis_nacl_wrapper_nacl' # TODO(GYP)
+ ":chromevox_copied_files",
+ ":chromevox_manifest",
+ ":chromevox_guest_manifest",
+ ]
+ if (chromevox_compress_js) {
+ deps += [
+ ":chromevox1_background_script",
+ ":chromevox1_content_script",
+ ":chromevox1_kbexplorer_script",
+ ":chromevox1_options_script",
+ ":chromevox2_background_script",
+ ]
+ } else {
+ deps += [ ":chromevox_deps_js" ]
+ }
+}
+
+template("run_jsbundler") {
+ assert(defined(invoker.mode))
+ assert(defined(invoker.sources))
+ if (defined(invoker.modules)) {
+ modules = invoker.modules
+ } else {
+ modules = []
+ }
+ if (defined(invoker.rewrite_rules)) {
+ rewrite_rules = invoker.rewrite_rules
+ } else {
+ rewrite_rules = []
+ }
+ action(target_name) {
+ script = "tools/jsbundler.py"
+ inputs = jsbundler_modules
+ sources = invoker.sources
+ if (defined(invoker.output_file)) {
+ if (defined(invoker.modules)) {
+ depfile = "$target_out_dir/" +
+ get_path_info(invoker.output_file, "name") + ".d"
+ }
+ outputs = [
+ invoker.output_file,
+ ]
+ } else {
+ assert(!defined(invoker.modules))
+ stampfile = "$target_out_dir/${target_name}_copy.stamp"
+ outputs = [
+ stampfile,
+ ]
+ }
+ args = [
+ "-m",
+ invoker.mode,
+ ]
+ if (defined(depfile)) {
+ args += [
+ "--depfile",
+ rebase_path(depfile, root_build_dir),
+ ]
+ }
+ if (defined(stampfile)) {
+ args += [
+ "--stampfile",
+ rebase_path(stampfile, root_build_dir),
+ ]
+ }
+ if (defined(invoker.output_file)) {
+ args += [
+ "-o",
+ rebase_path(invoker.output_file, root_build_dir),
+ ]
+ }
+ if (defined(invoker.dest_dir)) {
+ args += [
+ "-d",
+ rebase_path(invoker.dest_dir, root_build_dir),
+ ]
+ }
+ foreach(module, modules) {
+ args += [
+ "-M",
+ rebase_path(module, root_build_dir),
+ ]
+ }
+ foreach(rule, rewrite_rules) {
+ args += [
+ "-w",
+ rule,
+ ]
+ }
+ args += rebase_path(sources, root_build_dir)
+ }
+}
+
+chromevox_assets_gypi_values =
+ exec_script("//build/gypi_to_gn.py",
+ [ rebase_path("chromevox_assets.gypi") ],
+ "scope",
+ [ "chromevox_assets.gypi" ])
+
+chromevox_vars_gypi_values = exec_script("//build/gypi_to_gn.py",
+ [ rebase_path("chromevox_vars.gypi") ],
+ "scope",
+ [ "chromevox_vars.gypi" ])
+
+# Instead of setting up one copy target for each subdirectory, use a script
+# to copy all files.
+run_jsbundler("chromevox_copied_files") {
+ mode = "copy"
+ dest_dir = chromevox_out_dir
+ sources = chromevox_assets_gypi_values.chromevox_assets_chromevox
+ sources +=
+ chromevox_assets_gypi_values.chromevox_assets_chromevox_background_earcons
+ sources +=
+ chromevox_assets_gypi_values.chromevox_assets_chromevox_background_keymaps
+ sources += chromevox_assets_gypi_values.chromevox_assets_chromevox_background_mathmaps_functions
+ sources += chromevox_assets_gypi_values.chromevox_assets_chromevox_background_mathmaps_symbols
+ sources += [
+ "chromevox/background/background.html",
+ "chromevox/background/kbexplorer.html",
+ "chromevox/background/options.html",
+ "chromevox/injected/api.js",
+ "cvox2/background/background.html",
+ ]
+ if (chromevox_compress_js) {
+ sources += [ "chromevox/injected/api_util.js" ]
+ } else {
+ sources += chromevox_modules
+ sources += [
+ "closure/closure_preinit.js",
+ chromevox_vars_gypi_values.chromevox1_background_script_loader_file,
+ chromevox_vars_gypi_values.chromevox1_content_script_loader_file,
+ chromevox_vars_gypi_values.chromevox1_kbexplorer_loader_file,
+ chromevox_vars_gypi_values.chromevox1_options_script_loader_file,
+ chromevox_vars_gypi_values.chromevox2_background_script_loader_file,
+ ]
+ }
+ if (!chromevox_compress_js) {
+ sources += closure_library_modules
+ }
+ rewrite_rules = [
+ rebase_path(".", root_build_dir) + ":",
+ rebase_path(closure_library_dir, root_build_dir) + ":closure",
+ ]
+}
+
+template("manifest") {
+ version_file = "//chrome/VERSION"
+ version_script = "//build/util/version.py"
+ template_file = "manifest.json.jinja2"
+ output_file = invoker.output_file
+ key = chromevox_vars_gypi_values.chromevox_extension_key
+ action(target_name) {
+ script = "tools/generate_manifest.py"
+ inputs = [
+ version_file,
+ version_script,
+ ]
+ sources = [
+ template_file,
+ ]
+ outputs = [
+ output_file,
+ ]
+ args = [
+ "--key=$key",
+ "--version_file=" + rebase_path(version_file, root_build_dir),
+ "--output_manifest=" + rebase_path(output_file, root_build_dir),
+ ]
+ if (defined(invoker.is_guest_manifest) && invoker.is_guest_manifest) {
+ args += [ "--is_guest_manifest=1" ]
+ }
+ if (!chromevox_compress_js) {
+ args += [ "--is_js_compressed=0" ]
+ }
+ args += rebase_path(sources, root_build_dir)
+ }
+}
+
+manifest("chromevox_manifest") {
+ output_file = "$chromevox_out_dir/manifest.json"
+}
+
+manifest("chromevox_guest_manifest") {
+ output_file = "$chromevox_out_dir/manifest_guest.json"
+ is_guest_manifest = true
+}
+
+template("generate_deps_js") {
+ if (defined(invoker.rewrite_rules)) {
+ rewrite_rules = invoker.rewrite_rules
+ } else {
+ rewrite_rules = []
+ }
+ action(target_name) {
+ if (defined(invoker.testonly)) {
+ testonly = invoker.testonly
+ }
+ script = "tools/generate_deps.py"
+ inputs = jsbundler_modules
+ sources = invoker.sources
+ outputs = [
+ invoker.output_file,
+ ]
+ args = [
+ "-o",
+ rebase_path(invoker.output_file, root_build_dir),
+ ]
+ foreach(rule, rewrite_rules) {
+ args += [
+ "-w",
+ rule,
+ ]
+ }
+ args += rebase_path(sources, root_build_dir)
+ if (defined(invoker.deps)) {
+ deps = invoker.deps
+ }
+ }
+}
+
+if (chromevox_compress_js) {
+ template("compress_js") {
+ run_jsbundler(target_name) {
+ assert(defined(invoker.output_file))
+ mode = "compressed_bundle"
+ modules = chromevox_modules + closure_library_modules
+ sources = invoker.sources
+ output_file = invoker.output_file
+ }
+ }
+
+ compress_js("chromevox1_background_script") {
+ sources = [
+ chromevox_vars_gypi_values.chromevox1_background_script_loader_file,
+ ]
+ output_file = "$chromevox_out_dir/chromeVoxChromeBackgroundScript.js"
+ }
+
+ compress_js("chromevox1_content_script") {
+ sources = [
+ chromevox_vars_gypi_values.chromevox1_content_script_loader_file,
+ ]
+ output_file = "$chromevox_out_dir/chromeVoxChromePageScript.js"
+ }
+
+ compress_js("chromevox1_kbexplorer_script") {
+ sources = [
+ chromevox_vars_gypi_values.chromevox1_kbexplorer_loader_file,
+ ]
+ output_file = "$chromevox_out_dir/chromeVoxKbExplorerScript.js"
+ }
+
+ compress_js("chromevox1_options_script") {
+ sources = [
+ chromevox_vars_gypi_values.chromevox1_options_script_loader_file,
+ ]
+ output_file = "$chromevox_out_dir/chromeVoxChromeOptionsScript.js"
+ }
+
+ compress_js("chromevox2_background_script") {
+ sources = [
+ chromevox_vars_gypi_values.chromevox1_background_script_loader_file,
+ chromevox_vars_gypi_values.chromevox2_background_script_loader_file,
+ ]
+ output_file = "$chromevox_out_dir/chromeVox2ChromeBackgroundScript.js"
+ }
+} else {
+ generate_deps_js("chromevox_deps_js") {
+ sources = chromevox_modules + closure_library_modules
+ output_file = "$chromevox_out_dir/deps.js"
+ rewrite_rules = [
+ rebase_path(".", root_build_dir) + ":..",
+ rebase_path(closure_library_dir, root_build_dir) + ":../closure",
+ ]
+ }
+}
+
+chromevox_tests_gypi_values =
+ exec_script("//build/gypi_to_gn.py",
+ [ rebase_path("chromevox_tests.gypi") ],
+ "scope",
+ [ "chromevox_tests.gypi" ])
+
+test("chromevox_tests") {
+ sources = chromevox_tests_gypi_values.chromevox_tests_sources
+
+ deps = [
+ "//base",
+ "//base:i18n",
+ "//base/test:test_support",
+ "//chrome:browser_tests_pak",
+ "//chrome:packed_extra_resources",
+ "//chrome:packed_resources",
+ "//chrome:resources",
+ "//chrome:strings",
+ "//chrome/browser",
+ "//chrome/renderer",
+ "//chrome/test:test_support",
+ "//testing/gmock",
+ "//testing/gtest",
+ ":chromevox_extjs_tests",
+ ":chromevox_unitjs_tests",
+ ]
+ if (cld_version == 0 || cld_version == 2) {
+ # Because the browser_tests use translate, they need CLD data.
+ deps += [ "//third_party/cld_2:cld2_platform_impl" ]
+ }
+}
+
+action("chromevox_test_messages_js") {
+ script = "tools/generate_test_messages.py"
+ sources = [
+ "$chromevox_out_dir/_locales/en/messages.json",
+ ]
+ output_file = "$root_out_dir/test_data/chrome/browser/resources/chromeos/chromevox/host/testing/test_messages.js"
+ outputs = [
+ output_file,
+ ]
+ deps = [
+ "strings:chromevox_strings",
+ ]
+ args = [
+ "-o",
+ rebase_path(output_file, root_build_dir),
+ ] + rebase_path(sources, root_build_dir)
+}
+
+chromevox_test_modules = [
+ "host/testing/earcons.js",
+ "host/testing/host.js",
+ "host/testing/mathjax.js",
+ "host/testing/tts.js",
+ "testing/spoken_list_builder.js",
+ "testing/test_msgs.js",
+ "testing/tester.js",
+ ] + get_target_outputs(":chromevox_test_messages_js")
+
+generate_deps_js("chromevox_test_deps_js") {
+ sources = closure_library_modules + chromevox_modules + chromevox_test_modules
+ output_file = "$target_gen_dir/test_deps.js"
+ rewrite_rules = [
+ rebase_path("//", root_build_dir) + ":",
+ rebase_path("$root_out_dir/test_data", root_build_dir) + ":",
+ ]
+ deps = [
+ ":chromevox_test_messages_js",
+ ]
+}
+
+js2gtest("chromevox_unitjs_tests") {
+ test_type = "webui"
+ sources = chromevox_tests_gypi_values.chromevox_tests_unitjs_sources
+ test_deps_js_outputs = get_target_outputs(":chromevox_test_deps_js")
+ deps_js = test_deps_js_outputs[0]
+ deps = [
+ ":chromevox_test_deps_js",
+ ]
+ defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
+}
+
+js2gtest("chromevox_extjs_tests") {
+ test_type = "extension"
+ sources = chromevox_tests_gypi_values.chromevox_tests_extjs_sources
+ sources -= [ "braille/liblouis_test.extjs" ] # TODO(GYP)
+ defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
+}
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler.js b/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler.js
index 25677d5b539..5dc4c9a0ed9 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler.js
@@ -73,9 +73,19 @@ cvox.BrailleInputHandler = function(translatorManager) {
* @private
*/
this.entryState_ = null;
+ /**
+ * @type {cvox.ExtraCellsSpan}
+ * @private
+ */
+ this.uncommittedCellsSpan_ = null;
+ /**
+ * @type {function()?}
+ * @private
+ */
+ this.uncommittedCellsChangedListener_ = null;
this.translatorManager_.addChangeListener(
- this.clearEntryState_.bind(this));
+ this.commitAndClearEntryState_.bind(this));
};
/**
@@ -122,12 +132,18 @@ cvox.BrailleInputHandler.prototype = {
* input state according to the new content.
* @param {cvox.Spannable} text Text, optionally with value and selection
* spans.
+ * @param {function()} listener Called when the uncommitted cells
+ * have changed.
*/
- onDisplayContentChanged: function(text) {
+ onDisplayContentChanged: function(text, listener) {
var valueSpan = text.getSpanInstanceOf(cvox.ValueSpan);
var selectionSpan = text.getSpanInstanceOf(cvox.ValueSelectionSpan);
if (!(valueSpan && selectionSpan))
return;
+ // Don't call the old listener any further, since new content is being
+ // set. If the old listener is not cleared here, it could be called
+ // spuriously if the entry state is cleared below.
+ this.uncommittedCellsChangedListener_ = null;
// The type casts are ok because the spans are known to exist.
var valueStart = /** @type {number} */ (text.getSpanStart(valueSpan));
var valueEnd = /** @type {number} */ (text.getSpanEnd(valueSpan));
@@ -144,6 +160,13 @@ cvox.BrailleInputHandler.prototype = {
this.entryState_.onTextBeforeChanged(newTextBefore);
this.currentTextBefore_ = newTextBefore;
this.currentTextAfter_ = text.toString().substring(selectionEnd, valueEnd);
+ this.uncommittedCellsSpan_ = new cvox.ExtraCellsSpan();
+ text.setSpan(this.uncommittedCellsSpan_, selectionStart, selectionStart);
+ if (this.entryState_ && this.entryState_.usesUncommittedCells) {
+ this.updateUncommittedCells_(
+ new Uint8Array(this.entryState_.cells_).buffer);
+ }
+ this.uncommittedCellsChangedListener_ = listener;
},
/**
@@ -164,7 +187,7 @@ cvox.BrailleInputHandler.prototype = {
this.onBackspace_()) {
return true;
} else {
- this.clearEntryState_();
+ this.commitAndClearEntryState_();
this.sendKeyEventPair_(event);
return true;
}
@@ -213,14 +236,8 @@ cvox.BrailleInputHandler.prototype = {
}
if (!this.inputContext_)
return false;
- // Avoid accumulating cells forever when typing without moving the cursor
- // by flushing the input when we see a blank cell.
- // Note that this might switch to contracted if appropriate.
- if (this.entryState_ && this.entryState_.lastCellIsBlank())
- this.clearEntryState_();
if (!this.entryState_) {
- this.entryState_ = this.createEntryState_();
- if (!this.entryState_)
+ if (!(this.entryState_ = this.createEntryState_()))
return false;
}
this.entryState_.appendCell(dots);
@@ -255,6 +272,7 @@ cvox.BrailleInputHandler.prototype = {
return null;
var uncontractedTranslator =
this.translatorManager_.getUncontractedTranslator();
+ var constructor = cvox.BrailleInputHandler.EditsEntryState_;
if (uncontractedTranslator) {
var textBefore = this.currentTextBefore_;
var textAfter = this.currentTextAfter_;
@@ -264,10 +282,23 @@ cvox.BrailleInputHandler.prototype = {
(cvox.BrailleInputHandler.STARTS_WITH_NON_WHITESPACE_RE_.test(
textAfter))) {
translator = uncontractedTranslator;
+ } else {
+ constructor = cvox.BrailleInputHandler.LateCommitEntryState_;
}
}
- return new cvox.BrailleInputHandler.EditsEntryState_(this, translator);
+ return new constructor(this, translator);
+ },
+
+ /**
+ * Commits the current entry state and clears it, if any.
+ * @private
+ */
+ commitAndClearEntryState_: function() {
+ if (this.entryState_) {
+ this.entryState_.commit();
+ this.clearEntryState_();
+ }
},
/**
@@ -276,12 +307,25 @@ cvox.BrailleInputHandler.prototype = {
*/
clearEntryState_: function() {
if (this.entryState_) {
+ if (this.entryState_.usesUncommittedCells)
+ this.updateUncommittedCells_(new ArrayBuffer(0));
this.entryState_.inputHandler_ = null;
this.entryState_ = null;
}
},
/**
+ * @param {ArrayBuffer} cells
+ * @private
+ */
+ updateUncommittedCells_: function(cells) {
+ if (this.uncommittedCellsSpan_)
+ this.uncommittedCellsSpan_.cells = cells;
+ if (this.uncommittedCellsChangedListener_)
+ this.uncommittedCellsChangedListener_();
+ },
+
+ /**
* Called when another extension connects to this extension. Accepts
* connections from the ChromeOS builtin Braille IME and ignores connections
* from other extensions.
@@ -499,9 +543,18 @@ cvox.BrailleInputHandler.EntryState_.prototype = {
this.inputHandler_.clearEntryState_();
},
- /** @return {boolean} */
- lastCellIsBlank: function() {
- return this.cells_[this.cells_.length - 1] === 0;
+ /**
+ * Makes sure the current text is permanently added to the edit field.
+ * After this call, this object should be abandoned.
+ */
+ commit: function() {
+ },
+
+ /**
+ * @return {boolean} true if the entry state uses uncommitted cells.
+ */
+ get usesUncommittedCells() {
+ return false;
},
/**
@@ -511,6 +564,9 @@ cvox.BrailleInputHandler.EntryState_.prototype = {
*/
updateText_: function() {
var cellsBuffer = new Uint8Array(this.cells_).buffer;
+ var commit = this.lastCellIsBlank_;
+ if (!commit && this.usesUncommittedCells)
+ this.inputHandler_.updateUncommittedCells_(cellsBuffer);
this.translator_.backTranslate(cellsBuffer, function(result) {
if (result === null) {
console.error('Error when backtranslating braille cells');
@@ -520,10 +576,20 @@ cvox.BrailleInputHandler.EntryState_.prototype = {
return;
this.sendTextChange_(result);
this.text_ = result;
+ if (commit)
+ this.inputHandler_.commitAndClearEntryState_();
}.bind(this));
},
/**
+ * @return {boolean}
+ * @private
+ */
+ get lastCellIsBlank_() {
+ return this.cells_[this.cells_.length - 1] === 0;
+ },
+
+ /**
* Sends new text to the IME. This dhould be overriden by subclasses.
* The old text is still available in the {@code text_} property.
* @param {string} newText Text to send.
@@ -585,3 +651,42 @@ cvox.BrailleInputHandler.EditsEntryState_.prototype = {
}
}
};
+
+/**
+ * Entry state that only updates the edit field when a blank cell is entered.
+ * During the input of a single 'word', the uncommitted text is stored by the
+ * IME.
+ * @param {!cvox.BrailleInputHandler} inputHandler
+ * @param {!cvox.LibLouis.Translator} translator
+ * @constructor
+ * @private
+ * @extends {cvox.BrailleInputHandler.EntryState_}
+ */
+cvox.BrailleInputHandler.LateCommitEntryState_ = function(
+ inputHandler, translator) {
+ cvox.BrailleInputHandler.EntryState_.call(this, inputHandler, translator);
+};
+
+cvox.BrailleInputHandler.LateCommitEntryState_.prototype = {
+ __proto__: cvox.BrailleInputHandler.EntryState_.prototype,
+
+ /** @override */
+ commit: function() {
+ this.inputHandler_.postImeMessage_(
+ {type: 'commitUncommitted',
+ contextID: this.inputHandler_.inputContext_.contextID});
+ },
+
+ /** @override */
+ get usesUncommittedCells() {
+ return true;
+ },
+
+ /** @override */
+ sendTextChange_: function(newText) {
+ this.inputHandler_.postImeMessage_(
+ {type: 'setUncommitted',
+ contextID: this.inputHandler_.inputContext_.contextID,
+ text: newText});
+ }
+};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler_test.unitjs b/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler_test.unitjs
index 59fa53e7f55..aeec1fb08d5 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler_test.unitjs
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_input_handler_test.unitjs
@@ -38,6 +38,10 @@ function FakeEditor(port, inputHandler) {
this.contextID_ = 0;
/** @private {boolean} */
this.allowDeletes_ = false;
+ /** @private {string} */
+ this.uncommittedText_ = '';
+ /** @private {?Array<number>} */
+ this.extraCells_ = [];
port.postMessage = goog.bind(this.handleMessage_, this);
}
@@ -134,6 +138,25 @@ FakeEditor.prototype.assertContentIs = function(
/**
+ * Asserts that the uncommitted text last sent to the IME is the given text.
+ * @param {string} text
+ */
+FakeEditor.prototype.assertUncommittedTextIs = function(text) {
+ assertEquals(text, this.uncommittedText_);
+};
+
+
+/**
+ * Asserts that the input handler has added 'extra cells' for uncommitted
+ * text into the braille content.
+ * @param {string} cells Cells as a space-separated list of numbers.
+ */
+FakeEditor.prototype.assertExtraCellsAre = function(cells) {
+ assertEqualsJSON(cellsToArray(cells), this.extraCells_);
+};
+
+
+/**
* Sends a message from the IME to the input handler.
* @param {Object} msg The message to send.
* @private
@@ -151,9 +174,17 @@ FakeEditor.prototype.message_ = function(msg) {
* @private
*/
FakeEditor.prototype.callOnDisplayContentChanged_ = function() {
- this.inputHandler_.onDisplayContentChanged(
- cvox.BrailleUtil.createValue(
- this.text_, this.selectionStart_, this.selectionEnd_));
+ var content = cvox.BrailleUtil.createValue(
+ this.text_, this.selectionStart_, this.selectionEnd_)
+ var grabExtraCells = function() {
+ var span = content.getSpanInstanceOf(cvox.ExtraCellsSpan);
+ assertNotEquals(null, span);
+ // Convert the ArrayBuffer to a normal array for easier comparision.
+ this.extraCells_ = Array.prototype.map.call(new Uint8Array(span.cells),
+ function(a) {return a;});
+ }.bind(this);
+ this.inputHandler_.onDisplayContentChanged(content, grabExtraCells);
+ grabExtraCells();
};
@@ -186,23 +217,36 @@ FakeEditor.prototype.blur = function() {
* @private
*/
FakeEditor.prototype.handleMessage_ = function(msg) {
- assertEquals('replaceText', msg.type);
assertEquals(this.contextID_, msg.contextID);
- var deleteBefore = msg.deleteBefore;
- var newText = msg.newText;
- assertTrue(goog.isNumber(deleteBefore));
- assertTrue(goog.isString(newText));
- assertTrue(deleteBefore <= this.selectionStart_);
- if (deleteBefore > 0) {
- assertTrue(this.allowDeletes_);
- this.text_ =
- this.text_.substring(0, this.selectionStart_ - deleteBefore) +
- this.text_.substring(this.selectionEnd_);
- this.selectionStart_ -= deleteBefore;
- this.selectionEnd_ = this.selectionStart_;
- this.callOnDisplayContentChanged_();
+ switch(msg.type) {
+ case 'replaceText':
+ var deleteBefore = msg.deleteBefore;
+ var newText = msg.newText;
+ assertTrue(goog.isNumber(deleteBefore));
+ assertTrue(goog.isString(newText));
+ assertTrue(deleteBefore <= this.selectionStart_);
+ if (deleteBefore > 0) {
+ assertTrue(this.allowDeletes_);
+ this.text_ =
+ this.text_.substring(0, this.selectionStart_ - deleteBefore) +
+ this.text_.substring(this.selectionEnd_);
+ this.selectionStart_ -= deleteBefore;
+ this.selectionEnd_ = this.selectionStart_;
+ this.callOnDisplayContentChanged_();
+ }
+ this.insert(newText);
+ break;
+ case 'setUncommitted':
+ assertTrue(goog.isString(msg.text));
+ this.uncommittedText_ = msg.text;
+ break;
+ case 'commitUncommitted':
+ this.insert(this.uncommittedText_);
+ this.uncommittedText_ = '';
+ break;
+ default:
+ throw new Error('Unexpected message to IME: ' + JSON.stringify(msg));
}
- this.insert(newText);
};
/*
@@ -222,7 +266,7 @@ function FakePort() {
/**
* Mapping from braille cells to Unicode characters.
- * @const Array.<Array.<string> >
+ * @const Array<Array<string> >
*/
var UNCONTRACTED_TABLE = [
['0', ' '],
@@ -251,7 +295,7 @@ var CONTRACTED_TABLE = [
/**
* A fake braille translator that can do back translation according
* to one of the tables above.
- * @param {Array.<Array.<number>>} table Backtranslation mapping.
+ * @param {Array<Array<number>>} table Backtranslation mapping.
* @param {boolean=} opt_capitalize Whether the result should be capitalized.
* @constructor
*/
@@ -358,10 +402,12 @@ FakeTranslatorManager.prototype = {
* Each group corresponds to one braille cell and each digit in a group
* corresponds to a particular dot in the cell (1 to 8). As a special
* case, the digit 0 by itself represents a blank cell.
- * @return {Array.<number>} An array with each cell encoded as a bit
+ * @return {Array<number>} An array with each cell encoded as a bit
* pattern (dot 1 uses bit 0, etc).
*/
function cellsToArray(cells) {
+ if (!cells)
+ return [];
return cells.split(/\s+/).map(function(cellString) {
var cell = 0;
assertTrue(cellString.length > 0);
@@ -532,25 +578,32 @@ TEST_F('CvoxBrailleInputHandlerUnitTest', 'InputContracted', function() {
var editor = this.createEditor();
this.translatorManager.setTranslators(this.contractedTranslator,
this.uncontractedTranslator);
+ editor.setContent('', 0);
editor.setActive(true);
editor.focus('text');
this.assertExpandingSelection();
// First, type a 'b'.
assertTrue(this.sendCells('12'));
+ editor.assertContentIs('', 0);
// Remember that the contracted translator produces uppercase.
- editor.assertContentIs('BUT', 'BUT'.length);
+ editor.assertUncommittedTextIs('BUT');
+ editor.assertExtraCellsAre('12');
this.assertExpandingNone();
- // From here on, the input handler needs to replace already entered text.
- editor.setAllowDeletes(true);
// Typing 'rl' changes to a different contraction.
assertTrue(this.sendCells('1235 123'));
- editor.assertContentIs('BRAILLE', 'BRAILLE'.length);
+ editor.assertUncommittedTextIs('BRAILLE');
+ editor.assertContentIs('', 0);
+ editor.assertExtraCellsAre('12 1235 123');
+ this.assertExpandingNone();
+
// Now, finish the word.
assertTrue(this.sendCells('0'));
editor.assertContentIs('BRAILLE ', 'BRAILLE '.length);
- this.assertExpandingNone();
+ editor.assertUncommittedTextIs('');
+ editor.assertExtraCellsAre('');
+ this.assertExpandingSelection();
// Move the cursor to the beginning.
editor.select(0);
@@ -567,15 +620,16 @@ TEST_F('CvoxBrailleInputHandlerUnitTest', 'InputContracted', function() {
// Move to the end, where contracted typing should work.
editor.select('bBRAILLEb '.length);
assertTrue(this.sendCells('1456 0')); // Symbol for 'this', then space.
- this.assertExpandingNone();
- editor.assertContentIs('bBRAILLEb THIS ', 'bBRAILLEb this '.length);
+ this.assertExpandingSelection();
+ editor.assertContentIs('bBRAILLEb THIS ', 'bBRAILLEb THIS '.length);
- // Move between the two words.
+ // Move to between the two words.
editor.select('bBRAILLEb'.length);
this.assertExpandingSelection();
- assertTrue(this.sendCells('0'));
- assertTrue(this.sendCells('12')); // 'b' for 'but'
- editor.assertContentIs('bBRAILLEb BUT THIS ', 'bBRAILLEb BUT'.length);
+ assertTrue(this.sendCells('0 12')); // Space plus 'b' for 'but'
+ editor.assertUncommittedTextIs('BUT');
+ editor.assertExtraCellsAre('12');
+ editor.assertContentIs('bBRAILLEb THIS ', 'bBRAILLEb '.length);
this.assertExpandingNone();
});
@@ -614,19 +668,17 @@ TEST_F('CvoxBrailleInputHandlerUnitTest', 'Backspace', function() {
// Add some text that we can delete later.
editor.setContent('Text ', 'Text '.length);
- // The IME needs to delete text, even when typing.
- editor.setAllowDeletes(true);
// Type 'brl' to make sure replacement works when deleting text.
assertTrue(this.sendCells('12 1235 123'));
- editor.assertContentIs('Text BRAILLE', 'Text BRAILLE'.length);
+ editor.assertUncommittedTextIs('BRAILLE');
// Delete what we just typed, one cell at a time.
this.sendKeyEvent('Backspace');
- editor.assertContentIs('Text BR', 'Text BR'.length);
+ editor.assertUncommittedTextIs('BR');
this.sendKeyEvent('Backspace');
- editor.assertContentIs('Text BUT', 'Text BUT'.length);
+ editor.assertUncommittedTextIs('BUT');
this.sendKeyEvent('Backspace');
- editor.assertContentIs('Text ', 'Text '.length);
+ editor.assertUncommittedTextIs('');
// Now, backspace should be handled as usual, synthetizing key events.
assertEquals(0, this.keyEvents.length);
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js b/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js
index 8454dfb1b1b..f6e6095d1c0 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js
@@ -96,7 +96,7 @@ cvox.BrailleKeyEvent.keyCodeToCharValue = function(keyCode) {
/**
* Map from DOM level 4 key codes to legacy numeric key codes.
- * @private {Object<string, number>}
+ * @private {Object<number>}
*/
cvox.BrailleKeyEvent.legacyKeyCodeMap_ = {
'Backspace': 8,
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator.js b/chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator.js
index 24b28b42e34..18baad777cc 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator.js
@@ -9,6 +9,7 @@
goog.provide('cvox.ExpandingBrailleTranslator');
+goog.require('cvox.ExtraCellsSpan');
goog.require('cvox.LibLouis');
goog.require('cvox.Spannable');
goog.require('cvox.ValueSelectionSpan');
@@ -88,7 +89,12 @@ cvox.ExpandingBrailleTranslator.ExpansionType = {
cvox.ExpandingBrailleTranslator.prototype.translate =
function(text, expansionType, callback) {
var expandRanges = this.findExpandRanges_(text, expansionType);
- if (expandRanges.length == 0) {
+ var extraCellsSpans = text.getSpansInstanceOf(cvox.ExtraCellsSpan)
+ .filter(function(span) { return span.cells.byteLength > 0;});
+ var extraCellsPositions = extraCellsSpans.map(function(span) {
+ return text.getSpanStart(span);
+ });
+ if (expandRanges.length == 0 && extraCellsSpans.length == 0) {
this.defaultTranslator_.translate(
text.toString(),
cvox.ExpandingBrailleTranslator.nullParamsToEmptyAdapter_(
@@ -97,8 +103,28 @@ cvox.ExpandingBrailleTranslator.prototype.translate =
}
var chunks = [];
+ function maybeAddChunkToTranslate(translator, start, end) {
+ if (start < end)
+ chunks.push({translator: translator, start: start, end: end});
+ }
+ function addExtraCellsChunk(pos, cells) {
+ var chunk = {translator: null,
+ start: pos,
+ end: pos,
+ cells: cells,
+ textToBraille: [],
+ brailleToText: new Array(cells.byteLength)};
+ for (var i = 0; i < cells.byteLength; ++i)
+ chunk.brailleToText[i] = 0;
+ chunks.push(chunk);
+ }
function addChunk(translator, start, end) {
- chunks.push({translator: translator, start: start, end: end});
+ while (extraCellsSpans.length > 0 && extraCellsPositions[0] <= end) {
+ maybeAddChunkToTranslate(translator, start, extraCellsPositions[0]);
+ start = extraCellsPositions.shift();
+ addExtraCellsChunk(start, extraCellsSpans.shift().cells);
+ }
+ maybeAddChunkToTranslate(translator, start, end);
}
var lastEnd = 0;
for (var i = 0; i < expandRanges.length; ++i) {
@@ -109,19 +135,19 @@ cvox.ExpandingBrailleTranslator.prototype.translate =
addChunk(this.uncontractedTranslator_, range.start, range.end);
lastEnd = range.end;
}
- if (lastEnd < text.getLength()) {
- addChunk(this.defaultTranslator_, lastEnd, text.getLength());
- }
+ addChunk(this.defaultTranslator_, lastEnd, text.getLength());
- var numPendingCallbacks = chunks.length;
+ var chunksToTranslate = chunks.filter(function(chunk) {
+ return chunk.translator;
+ });
+ var numPendingCallbacks = chunksToTranslate.length;
function chunkTranslated(chunk, cells, textToBraille, brailleToText) {
chunk.cells = cells;
chunk.textToBraille = textToBraille;
chunk.brailleToText = brailleToText;
- if (--numPendingCallbacks <= 0) {
+ if (--numPendingCallbacks <= 0)
finish();
- }
}
function finish() {
@@ -145,11 +171,15 @@ cvox.ExpandingBrailleTranslator.prototype.translate =
callback(cells.buffer, textToBraille, brailleToText);
}
- for (var i = 0, chunk; chunk = chunks[i]; ++i) {
- chunk.translator.translate(
- text.toString().substring(chunk.start, chunk.end),
- cvox.ExpandingBrailleTranslator.nullParamsToEmptyAdapter_(
- chunk.end - chunk.start, goog.partial(chunkTranslated, chunk)));
+ if (chunksToTranslate.length > 0) {
+ chunksToTranslate.forEach(function(chunk) {
+ chunk.translator.translate(
+ text.toString().substring(chunk.start, chunk.end),
+ cvox.ExpandingBrailleTranslator.nullParamsToEmptyAdapter_(
+ chunk.end - chunk.start, goog.partial(chunkTranslated, chunk)));
+ });
+ } else {
+ finish();
}
};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs b/chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs
index bd598dd6e27..8b4f3137891 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs
@@ -116,28 +116,42 @@ var totalRunTranslationTests = 0;
*/
function doTranslationTest(name, contracted, valueExpansion, text,
expectedOutput) {
- totalRunTranslationTests++;
- var uncontractedTranslator = new FakeTranslator('u');
- var expandingTranslator;
- if (contracted) {
- var contractedTranslator = new FakeTranslator('c');
- expandingTranslator = new cvox.ExpandingBrailleTranslator(
- contractedTranslator, uncontractedTranslator);
- } else {
- expandingTranslator = new cvox.ExpandingBrailleTranslator(
- uncontractedTranslator);
- }
- var expectedMapping = [];
- for (var i = 0; i < expectedOutput.length; ++i) {
- expectedMapping[i] = i;
+ try {
+ totalRunTranslationTests++;
+ var uncontractedTranslator = new FakeTranslator('u');
+ var expandingTranslator;
+ if (contracted) {
+ var contractedTranslator = new FakeTranslator('c');
+ expandingTranslator = new cvox.ExpandingBrailleTranslator(
+ contractedTranslator, uncontractedTranslator);
+ } else {
+ expandingTranslator = new cvox.ExpandingBrailleTranslator(
+ uncontractedTranslator);
+ }
+ var extraCellsSpan = text.getSpanInstanceOf(cvox.ExtraCellsSpan);
+ if (extraCellsSpan)
+ var extraCellsSpanPos = text.getSpanStart(extraCellsSpan);
+ var expectedTextToBraille = [];
+ var expectedBrailleToText = [];
+ for (var i = 0, pos = 0; i < text.getLength(); ++i, ++pos) {
+ if (i === extraCellsSpanPos)
+ ++pos;
+ expectedTextToBraille.push(pos);
+ expectedBrailleToText.push(i);
+ }
+ if (extraCellsSpan)
+ expectedBrailleToText.splice(extraCellsSpanPos, 0, extraCellsSpanPos);
+
+ expandingTranslator.translate(
+ text, valueExpansion, function(cells, textToBraille, brailleToText) {
+ assertArrayBufferMatches(expectedOutput, cells, name);
+ assertEqualsJSON(expectedTextToBraille, textToBraille, name);
+ assertEqualsJSON(expectedBrailleToText, brailleToText, name);
+ });
+ } catch (e) {
+ console.error('Subtest ' + name + ' failed.');
+ throw e;
}
-
- expandingTranslator.translate(
- text, valueExpansion, function(cells, textToBraille, brailleToText) {
- assertArrayBufferMatches(expectedOutput, cells, name);
- assertEqualsJSON(expectedMapping, textToBraille, name);
- assertEqualsJSON(expectedMapping, brailleToText, name);
- });
};
/**
@@ -149,16 +163,27 @@ function doTranslationTest(name, contracted, valueExpansion, text,
* and contracted translators.
* @param {cvox.ExpandingBrailleTranslation.ExpansionType} valueExpansion
* What kind of value expansion to apply.
- * @param {cvox.Spannable} text Input text.
- * @param {string=} opt_expectedContractedOutput Expected output (see
- * {@code TESTDATA}).
+ * @param {boolean} withExtraCells Whether to insert an extra cells span
+ * right before the selection in the input.
*/
-function runTranslationTestVariants(testCase, contracted, valueExpansion) {
+function runTranslationTestVariants(testCase, contracted, valueExpansion,
+ withExtraCells) {
var expType = cvox.ExpandingBrailleTranslator.ExpansionType;
// Construct the full name.
var fullName = contracted ? 'Contracted_' : 'Uncontracted_';
fullName += 'Expansion' + valueExpansion + '_';
+ if (withExtraCells)
+ fullName += 'ExtraCells_';
fullName += testCase.name;
+ var input = testCase.input;
+ if (withExtraCells) {
+ input = input.substring(0); // Shallow copy.
+ var selectionStart = input.getSpanStart(
+ input.getSpanInstanceOf(cvox.ValueSelectionSpan));
+ var extraCellsSpan = new cvox.ExtraCellsSpan();
+ extraCellsSpan.cells = new Uint8Array(['e'.charCodeAt(0)]).buffer;
+ input.setSpan(extraCellsSpan, selectionStart, selectionStart);
+ }
// The expected output depends on the contraction mode and value expansion.
var outputChar = contracted ? 'c' : 'u';
var expectedOutput;
@@ -170,14 +195,18 @@ function runTranslationTestVariants(testCase, contracted, valueExpansion) {
expectedOutput =
new Array(testCase.input.getLength() + 1).join(outputChar);
}
- doTranslationTest(fullName, contracted, valueExpansion, testCase.input,
+ if (withExtraCells) {
+ expectedOutput = expectedOutput.substring(0, selectionStart) + 'e' +
+ expectedOutput.substring(selectionStart);
+ }
+ doTranslationTest(fullName, contracted, valueExpansion, input,
expectedOutput);
// Run another test, with the value surrounded by some text.
var surroundedText = new cvox.Spannable('Name: ');
var surroundedExpectedOutput =
new Array('Name: '.length + 1).join(outputChar);
- surroundedText.append(testCase.input);
+ surroundedText.append(input);
surroundedExpectedOutput += expectedOutput;
if (testCase.input.getLength() > 0) {
surroundedText.append(' ');
@@ -186,7 +215,7 @@ function runTranslationTestVariants(testCase, contracted, valueExpansion) {
surroundedText.append('edtxt');
surroundedExpectedOutput +=
new Array('edtxt'.length + 1).join(outputChar);
- doTranslationTest(fullName + '_Surrounded', contracted, valueExpansion,
+ doTranslationTest(fullName + '_Surrounded', contracted, valueExpansion,
surroundedText, surroundedExpectedOutput);
}
@@ -250,15 +279,23 @@ TEST_F('CvoxExpandingBrailleTranslatorUnitTest', 'successfulTranslations',
input: createText(TEXT, 2, 9),
contractedOutput: 'uuuuuucuuuuuu' }
];
+ var TESTDATA_WITH_SELECTION = TESTDATA.filter(function(testCase) {
+ return testCase.input.getSpanInstanceOf(cvox.ValueSelectionSpan);
+ });
var expType = cvox.ExpandingBrailleTranslator.ExpansionType;
for (var i = 0, testCase; testCase = TESTDATA[i]; ++i) {
- runTranslationTestVariants(testCase, false, expType.SELECTION);
- runTranslationTestVariants(testCase, true, expType.NONE);
- runTranslationTestVariants(testCase, true, expType.SELECTION);
- runTranslationTestVariants(testCase, true, expType.ALL);
+ runTranslationTestVariants(testCase, false, expType.SELECTION, false);
+ runTranslationTestVariants(testCase, true, expType.NONE, false);
+ runTranslationTestVariants(testCase, true, expType.SELECTION, false);
+ runTranslationTestVariants(testCase, true, expType.ALL, false);
}
+ for (var i = 0, testCase; testCase = TESTDATA_WITH_SELECTION[i]; ++i)
+ runTranslationTestVariants(testCase, true, expType.SELECTION, true);
+
// Make sure that the logic above runs the tests, adjust when adding more
- // tests.
- assertEquals(64, totalRunTranslationTests);
+ // test variants.
+ var totalExpectedTranslationTests =
+ 2 * (TESTDATA.length * 4 + TESTDATA_WITH_SELECTION.length);
+ assertEquals(totalExpectedTranslationTests, totalRunTranslationTests);
});
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/braille/liblouis.js b/chromium/chrome/browser/resources/chromeos/chromevox/braille/liblouis.js
index f56a8a7f218..0b8a2ee0006 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/braille/liblouis.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/braille/liblouis.js
@@ -37,7 +37,7 @@ cvox.LibLouis = function(nmfPath, opt_tablesDir) {
/**
* Pending RPC callbacks. Maps from message IDs to callbacks.
- * @private {!Object<string, function(!Object)>}
+ * @private {!Object<function(!Object)>}
*/
this.pendingRpcCallbacks_ = {};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/braille/spans.js b/chromium/chrome/browser/resources/chromeos/chromevox/braille/spans.js
index 560fa0fca67..39ffea6ce8d 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/braille/spans.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/braille/spans.js
@@ -7,6 +7,7 @@
* and selections.
*/
+goog.provide('cvox.ExtraCellsSpan');
goog.provide('cvox.ValueSelectionSpan');
goog.provide('cvox.ValueSpan');
@@ -63,3 +64,15 @@ cvox.ValueSelectionSpan = function() {
cvox.Spannable.registerStatelessSerializableSpan(
cvox.ValueSelectionSpan,
'cvox.ValueSelectionSpan');
+
+
+/**
+ * Causes raw cells to be added when translating from text to braille.
+ * This is supported by the {@code cvox.ExpandingBrailleTranslator}
+ * class.
+ * @constructor
+ */
+cvox.ExtraCellsSpan = function() {
+ /** @type {ArrayBuffer} */
+ this.cells = new Uint8Array(0).buffer;
+};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox.gni b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox.gni
new file mode 100644
index 00000000000..8f25de01b5f
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox.gni
@@ -0,0 +1,204 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# Common variables shared amongst all ChromeVox targets.
+
+assert(is_chromeos)
+
+# TODO(plundblad): Move the below variables to BUILD.gn when crbug.com/395883
+# is resolved.
+
+closure_library_dir =
+ "//chrome/third_party/chromevox/third_party/closure-library/closure/goog"
+
+jsbundler_modules = rebase_path([
+ "depstree.py",
+ "source.py",
+ "treescan.py",
+ ],
+ ".",
+ "$closure_library_dir/../bin/build")
+jsbundler_modules += [ "//third_party/WebKit/Source/build/scripts/rjsmin.py" ]
+
+# List of all modules that are included in one or more of the production
+# chromevox scripts.
+chromevox_modules = [
+ "braille/braille_display_manager.js",
+ "braille/braille_input_handler.js",
+ "braille/braille_key_types.js",
+ "braille/braille_table.js",
+ "braille/braille_translator_manager.js",
+ "braille/expanding_braille_translator.js",
+ "braille/liblouis.js",
+ "braille/nav_braille.js",
+ "braille/pan_strategy.js",
+ "braille/spans.js",
+ "chromevox/background/background.js",
+ "chromevox/background/braille_captions_background.js",
+ "chromevox/background/injected_script_loader.js",
+ "chromevox/background/kbexplorer.js",
+ "chromevox/background/keymaps/key_map.js",
+ "chromevox/background/mathmaps/math_map.js",
+ "chromevox/background/options.js",
+ "chromevox/background/prefs.js",
+ "chromevox/background/tabs_api_handler.js",
+ "chromevox/injected/active_indicator.js",
+ "chromevox/injected/api_implementation.js",
+ "chromevox/injected/api_util.js",
+ "chromevox/injected/console_tts.js",
+ "chromevox/injected/event_suspender.js",
+ "chromevox/injected/event_watcher.js",
+ "chromevox/injected/history.js",
+ "chromevox/injected/init_document.js",
+ "chromevox/injected/init_globals.js",
+ "chromevox/injected/initial_speech.js",
+ "chromevox/injected/keyboard_handler.js",
+ "chromevox/injected/live_regions.js",
+ "chromevox/injected/navigation_history.js",
+ "chromevox/injected/navigation_manager.js",
+ "chromevox/injected/navigation_shifter.js",
+ "chromevox/injected/navigation_speaker.js",
+ "chromevox/injected/node_breadcrumb.js",
+ "chromevox/injected/pdf_processor.js",
+ "chromevox/injected/script_installer.js",
+ "chromevox/injected/serializer.js",
+ "chromevox/injected/ui/braille_overlay_widget.js",
+ "chromevox/injected/ui/context_menu_widget.js",
+ "chromevox/injected/ui/keyboard_help_widget.js",
+ "chromevox/injected/ui/node_search_widget.js",
+ "chromevox/injected/ui/overlay_widget.js",
+ "chromevox/injected/ui/search_widget.js",
+ "chromevox/injected/ui/select_widget.js",
+ "chromevox/injected/ui/widget.js",
+ "chromevox/injected/user_commands.js",
+ "chromevox/injected/user_event_detail.js",
+ "chromevox/messages/msgs.js",
+ "chromevox/messages/spoken_message.js",
+ "chromevox/messages/spoken_messages.js",
+ "common/aria_util.js",
+ "common/aural_style_util.js",
+ "common/braille_text_handler.js",
+ "common/braille_util.js",
+ "common/buildinfo.js",
+ "common/chromevox.js",
+ "common/chromevox_json.js",
+ "common/command_store.js",
+ "common/composite_tts.js",
+ "common/content_editable_extractor.js",
+ "common/cursor.js",
+ "common/cursor_selection.js",
+ "common/date_widget.js",
+ "common/description_util.js",
+ "common/dom_predicates.js",
+ "common/dom_util.js",
+ "common/earcon_util.js",
+ "common/editable_text.js",
+ "common/editable_text_area_shadow.js",
+ "common/editable_text_base.js",
+ "common/find_util.js",
+ "common/focus_util.js",
+ "common/focuser.js",
+ "common/group_util.js",
+ "common/interframe.js",
+ "common/key_sequence.js",
+ "common/key_util.js",
+ "common/math_semantic_attr.js",
+ "common/math_semantic_tree.js",
+ "common/math_semantic_util.js",
+ "common/math_util.js",
+ "common/media_widget.js",
+ "common/memoize.js",
+ "common/nav_description.js",
+ "common/nav_math_description.js",
+ "common/node_state.js",
+ "common/page_selection.js",
+ "common/platform_util.js",
+ "common/selection_util.js",
+ "common/spannable.js",
+ "common/string_util.js",
+ "common/table_util.js",
+ "common/time_widget.js",
+ "common/traverse_content.js",
+ "common/traverse_math.js",
+ "common/traverse_table.js",
+ "common/traverse_util.js",
+ "common/xpath_util.js",
+ "cvox2/background/automation_predicate.js",
+ "cvox2/background/automation_util.js",
+ "cvox2/background/background.js",
+ "cvox2/background/classic_compatibility.js",
+ "cvox2/background/cursors.js",
+ "cvox2/background/output.js",
+ "extensions/searchvox/abstract_result.js",
+ "extensions/searchvox/constants.js",
+ "extensions/searchvox/context_menu.js",
+ "extensions/searchvox/loader.js",
+ "extensions/searchvox/results.js",
+ "extensions/searchvox/search.js",
+ "extensions/searchvox/search_tools.js",
+ "extensions/searchvox/util.js",
+ "host/chrome/braille.js",
+ "host/chrome/braille_background.js",
+ "host/chrome/earcons.js",
+ "host/chrome/earcons_background.js",
+ "host/chrome/extension_bridge.js",
+ "host/chrome/host.js",
+ "host/chrome/mathjax.js",
+ "host/chrome/tts.js",
+ "host/chrome/tts_background.js",
+ "host/chrome/tts_base.js",
+ "host/interface/abstract_braille.js",
+ "host/interface/abstract_earcons.js",
+ "host/interface/abstract_host.js",
+ "host/interface/abstract_mathjax.js",
+ "host/interface/abstract_tts.js",
+ "host/interface/braille_interface.js",
+ "host/interface/host_factory.js",
+ "host/interface/mathjax_interface.js",
+ "host/interface/tts_interface.js",
+ "speech_rules/base_rule_store.js",
+ "speech_rules/math_simple_store.js",
+ "speech_rules/math_store.js",
+ "speech_rules/mathml_store.js",
+ "speech_rules/mathml_store_rules.js",
+ "speech_rules/mathml_store_util.js",
+ "speech_rules/speech_rule.js",
+ "speech_rules/speech_rule_engine.js",
+ "speech_rules/speech_rule_evaluator.js",
+ "speech_rules/speech_rule_functions.js",
+ "speech_rules/speech_rule_store.js",
+ "speech_rules/store_util.js",
+ "walkers/abstract_node_walker.js",
+ "walkers/abstract_selection_walker.js",
+ "walkers/abstract_shifter.js",
+ "walkers/abstract_walker.js",
+ "walkers/bare_object_walker.js",
+ "walkers/character_walker.js",
+ "walkers/column_walker.js",
+ "walkers/group_walker.js",
+ "walkers/layout_line_walker.js",
+ "walkers/math_shifter.js",
+ "walkers/object_walker.js",
+ "walkers/row_walker.js",
+ "walkers/sentence_walker.js",
+ "walkers/structural_line_walker.js",
+ "walkers/table_shifter.js",
+ "walkers/table_walker.js",
+ "walkers/word_walker.js",
+]
+
+# Closure library modules neede by chromevox.
+relative_closure_library_modules = [
+ "i18n/pluralrules.js",
+ "i18n/ordinalrules.js",
+ "i18n/messageformat.js",
+ "string/string.js",
+ "dom/nodetype.js",
+ "base.js",
+ "asserts/asserts.js",
+ "debug/error.js",
+ "object/object.js",
+]
+
+closure_library_modules =
+ rebase_path(relative_closure_library_modules, ".", closure_library_dir)
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox.gyp b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox.gyp
index 226c35c229e..10011720e19 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox.gyp
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox.gyp
@@ -8,14 +8,11 @@
'variables': {
# Whether to compress the 4 main ChromeVox scripts.
'chromevox_compress_js%': '1',
- 'chromevox1_background_script_loader_file': 'chromevox/background/loader.js',
- 'chromevox1_content_script_loader_file': 'chromevox/injected/loader.js',
- 'chromevox1_kbexplorer_loader_file': 'chromevox/background/kbexplorer_loader.js',
- 'chromevox1_options_script_loader_file': 'chromevox/background/options_loader.js',
- 'chromevox2_background_script_loader_file': 'cvox2/background/loader.js',
},
'includes': [
+ 'chromevox_assets.gypi',
'chromevox_tests.gypi',
+ 'chromevox_vars.gypi',
'common.gypi',
],
'targets': [
@@ -62,13 +59,6 @@
],
},
{
- 'target_name': 'chromevox_assets',
- 'type': 'none',
- 'includes': [
- 'chromevox_assets.gypi',
- ],
- },
- {
'target_name': 'chromevox_static_files',
'type': 'none',
'copies': [
@@ -81,7 +71,7 @@
],
},
{
- 'destination': '<(PRODUCT_DIR)/resources/chromeos/chromevox/cvox2/background',
+ 'destination': '<(chromevox_dest_dir)/cvox2/background',
'files': [
'cvox2/background/background.html',
],
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js
index daad1a48933..1f072648861 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js
@@ -281,24 +281,20 @@ cvox.ChromeVoxBackground.prototype.addBridgeListener = function() {
switch (target) {
case 'OpenTab':
- var destination = new Object();
- destination.url = msg['url'];
+ var destination = {url: msg['url']};
chrome.tabs.create(destination);
break;
case 'KbExplorer':
- var explorerPage = new Object();
- explorerPage.url = 'chromevox/background/kbexplorer.html';
+ var explorerPage = {url: 'chromevox/background/kbexplorer.html'};
chrome.tabs.create(explorerPage);
break;
case 'HelpDocs':
- var helpPage = new Object();
- helpPage.url = 'http://chromevox.com/tutorial/index.html';
+ var helpPage = {url: 'http://chromevox.com/tutorial/index.html'};
chrome.tabs.create(helpPage);
break;
case 'Options':
if (action == 'open') {
- var optionsPage = new Object();
- optionsPage.url = 'chromevox/background/options.html';
+ var optionsPage = {url: 'chromevox/background/options.html'};
chrome.tabs.create(optionsPage);
}
break;
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/externs.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/externs.js
index fc5a149acba..9b04b6d9bc9 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/externs.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/externs.js
@@ -9,29 +9,6 @@ var localStorage = {};
/**
* @type {Object}
*/
-chrome.systemPrivate = {};
-
-/**
- * @param {function(!Object)} callback
- */
-chrome.systemPrivate.getUpdateStatus = function(callback) {};
-
-/** @type {ChromeEvent} */
-chrome.systemPrivate.onBrightnessChanged;
-
-/** @type ChromeEvent */
-chrome.systemPrivate.onVolumeChanged;
-
-/** @type ChromeEvent */
-chrome.systemPrivate.onScreenUnlocked;
-
-/** @type ChromeEvent */
-chrome.systemPrivate.onWokeUp;
-
-
-/**
- * @type {Object}
- */
chrome.accessibilityPrivate = {};
/**
@@ -88,42 +65,3 @@ chrome.accessibilityPrivate.onTextChanged;
chrome.accessibilityPrivate.onChromeVoxLoadStateChanged;
/** @type {function()} */
chrome.accessibilityPrivate.onChromeVoxLoadStateChanged.destroy_;
-
-
-/**
- * @type {Object}
- */
-chrome.experimental = {};
-
-/**
- * @type {Object}
- *
- * TODO(dmazzoni): Remove after the stable version of Chrome no longer
- * has the experimental accessibility API.
- */
-chrome.experimental.accessibility = chrome.accessibilityPrivate;
-
-
-/**
- *
- */
-chrome.app.getDetails = function() {};
-
-/** @constructor */
-var AccessibilityObject = function() {};
-/** @type {string} */
-AccessibilityObject.prototype.type;
-/** @type {string} */
-AccessibilityObject.prototype.name;
-/** @type {Object} */
-AccessibilityObject.prototype.details;
-/** @type {string} */
-AccessibilityObject.prototype.details.value;
-/** @type {number} */
-AccessibilityObject.prototype.details.selectionStart;
-/** @type {number} */
-AccessibilityObject.prototype.details.selectionEnd;
-/** @type {number} */
-AccessibilityObject.prototype.details.itemCount;
-/** @type {number} */
-AccessibilityObject.prototype.details.itemIndex;
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/keymaps/key_map.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/keymaps/key_map.js
index 5720fa8087b..c3833eca7bc 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/keymaps/key_map.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/keymaps/key_map.js
@@ -27,16 +27,14 @@ goog.require('cvox.KeyUtil');
goog.require('cvox.PlatformUtil');
/**
- * @param {Array<Object<string,
- * {command: string, sequence: cvox.KeySequence}>>}
+ * @param {Array<Object<{command: string, sequence: cvox.KeySequence}>>}
* commandsAndKeySequences An array of pairs - KeySequences and commands.
* @constructor
*/
cvox.KeyMap = function(commandsAndKeySequences) {
/**
* An array of bindings - commands and KeySequences.
- * @type {Array<Object<string,
- * {command: string, sequence: cvox.KeySequence}>>}
+ * @type {Array<Object<{command: string, sequence: cvox.KeySequence}>>}
* @private
*/
this.bindings_ = commandsAndKeySequences;
@@ -44,7 +42,7 @@ cvox.KeyMap = function(commandsAndKeySequences) {
/**
* Maps a command to a key. This optimizes the process of searching for a
* key sequence when you already know the command.
- * @type {Object<string, cvox.KeySequence>}
+ * @type {Object<cvox.KeySequence>}
* @private
*/
this.commandToKey_ = {};
@@ -66,7 +64,7 @@ cvox.KeyMap.KEYMAP_PATH = 'chromevox/background/keymaps/';
* TODO(dtseng): Not really sure this belongs here, but it doesn't seem to be
* user configurable, so it doesn't make sense to json-stringify it.
* Should have class to siwtch among and manage multiple key maps.
- * @type {Object<string, Object<string, string>>}
+ * @type {Object<Object<string>>}
* @const
*/
cvox.KeyMap.AVAILABLE_MAP_INFO = {
@@ -112,8 +110,7 @@ cvox.KeyMap.prototype.keys = function() {
/**
* Returns a collection of command, KeySequence bindings.
- * @return {Array<Object<string, cvox.KeySequence>>} Array of all command,
- * key bindings.
+ * @return {Array<Object<cvox.KeySequence>>} Array of all command, key bindings.
* @suppress {checkTypes} inconsistent return type
* found : (Array<(Object<{command: string,
* sequence: (cvox.KeySequence|null)}>|null)>|null)
@@ -338,8 +335,8 @@ cvox.KeyMap.fromDefaults = function() {
cvox.KeyMap.fromJSON = function(json) {
try {
var commandsAndKeySequences =
- /** @type {Array<Object<string,
- * {command: string, sequence: cvox.KeySequence}>>} */
+ /** @type {Array<Object<{command: string,
+ * sequence: cvox.KeySequence}>>} */
(JSON.parse(json).bindings);
commandsAndKeySequences = commandsAndKeySequences.filter(function(value) {
return value.sequence.platformFilter === undefined ||
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js
index b40df3c09fc..40434447619 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js
@@ -42,7 +42,7 @@ cvox.OptionsPage.prefs;
/**
* A mapping from keycodes to their human readable text equivalents.
* This is initialized in cvox.OptionsPage.init for internationalization.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
cvox.OptionsPage.KEYCODE_TO_TEXT = {
};
@@ -50,7 +50,7 @@ cvox.OptionsPage.KEYCODE_TO_TEXT = {
/**
* A mapping from human readable text to keycode values.
* This is initialized in cvox.OptionsPage.init for internationalization.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
cvox.OptionsPage.TEXT_TO_KEYCODE = {
};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js
index 15f2938a946..a0d64ef86fa 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js
@@ -32,7 +32,7 @@ cvox.ChromeVoxPrefs = function() {
if (lastRunVersion == '1.16.0') {
loadExistingSettings = false;
}
- localStorage['lastRunVersion'] = chrome.app.getDetails().version;
+ localStorage['lastRunVersion'] = chrome.runtime.getManifest().version;
/**
* The current mapping from keys to command.
@@ -56,7 +56,7 @@ cvox.ChromeVoxPrefs = function() {
/**
* The default value of all preferences except the key map.
* @const
- * @type {Object<string, Object>}
+ * @type {Object<Object>}
*/
cvox.ChromeVoxPrefs.DEFAULT_PREFS = {
'active': true,
@@ -125,7 +125,7 @@ cvox.ChromeVoxPrefs.prototype.getPrefs = function() {
for (var pref in cvox.ChromeVoxPrefs.DEFAULT_PREFS) {
prefs[pref] = localStorage[pref];
}
- prefs['version'] = chrome.app.getDetails().version;
+ prefs['version'] = chrome.runtime.getManifest().version;
return prefs;
};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/tabs_api_handler.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/tabs_api_handler.js
index baa004dc9cb..8c48e1dc933 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/tabs_api_handler.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/background/tabs_api_handler.js
@@ -135,9 +135,10 @@ cvox.TabsApiHandler.prototype = {
return;
}
chrome.windows.get(windowId, function(window) {
- chrome.tabs.getSelected(windowId, function(tab) {
+ chrome.tabs.query({active: true, windowId: windowId}, function(tabs) {
var msgId = window.incognito ? 'chrome_incognito_window_selected' :
- 'chrome_normal_window_selected';
+ 'chrome_normal_window_selected';
+ var tab = tabs[0] || {};
var title = tab.title ? tab.title : tab.url;
this.tts_.speak(this.msg_(msgId, [title]),
cvox.QueueMode.FLUSH,
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/externs.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/externs.js
index 8be8020cda8..2cf06d22ba2 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/externs.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/externs.js
@@ -2,13 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Node.prototype.role;
-
-/**
- * @type {boolean}
- */
-document.webkitHidden;
-
/**
* External functions for MathJax bridge.
* @typedef {Object}
@@ -147,7 +140,7 @@ MathJax.HTML;
* Creates an HTML element from a node tag, an object with attributes and an
* array of text content.
* @param {string} tag
- * @param {Object<string, string>} attribs
+ * @param {Object<string>} attribs
* @param {Array<string>} text
*/
MathJax.HTML.Element = function(tag, attribs, text) { };
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/keyboard_handler.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/keyboard_handler.js
index f486e039a03..d9b8aeb8159 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/keyboard_handler.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/keyboard_handler.js
@@ -44,8 +44,8 @@ cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable = function(
* Converts the key bindings table into an array that is sorted by the lengths
* of the key bindings. After the sort, the key bindings that describe single
* keys will come before the key bindings that describe multiple keys.
- * @param {Object<string, string>} keyToFunctionsTable Contains each key
- * binding and its associated function name.
+ * @param {Object<string>} keyToFunctionsTable Contains each key binding and its
+ * associated function name.
* @return {Array<Array<string>>} The sorted key bindings table in
* array form. Each entry in the array is itself an array containing the
* key binding and its associated function name.
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions.js
index d4ed721a08d..a2a52f4e770 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions.js
@@ -49,7 +49,7 @@ cvox.LiveRegions.VISIBILITY_TIMEOUT_MS = 50;
/**
* A mapping from announced text to the time it was last spoken.
- * @type {Object<string, Date>}
+ * @type {Object<Date>}
*/
cvox.LiveRegions.lastAnnouncedMap = {};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions_test.unitjs b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions_test.unitjs
index ded94e04be4..e43e82a4200 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions_test.unitjs
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/live_regions_test.unitjs
@@ -51,7 +51,8 @@ TEST_F('CvoxLiveRegionsUnitTest', 'InsertNonLiveRegion', function() {
/**
* Test inserting an 'alert' live region.
*/
-TEST_F('CvoxLiveRegionsUnitTest', 'InsertAlertLiveRegion', function() {
+// Flaky on Chromium OS: crbug.com/498881.
+TEST_F('CvoxLiveRegionsUnitTest', 'DISABLED_InsertAlertLiveRegion', function() {
var region = document.createElement('div');
region.innerHTML = '<div role="alert">Alpha</div>';
document.body.appendChild(region);
@@ -93,7 +94,8 @@ TEST_F('CvoxLiveRegionsUnitTest', 'RevealAlertLiveRegion', function() {
/**
* Test inserting a 'polite' live region.
*/
-TEST_F('CvoxLiveRegionsUnitTest', 'InsertPoliteLiveRegion', function() {
+// Flaky on Chromium OS: crbug.com/498881.
+TEST_F('CvoxLiveRegionsUnitTest', 'DISABLED_InsertPoliteLiveRegion', function() {
var region = document.createElement('div');
region.innerHTML = '<div aria-live="polite">Beta</div>';
document.body.appendChild(region);
@@ -160,7 +162,8 @@ TEST_F('CvoxLiveRegionsUnitTest', 'AddToLiveRegion', function() {
/**
* Test removing elements from live regions.
*/
-TEST_F('CvoxLiveRegionsUnitTest', 'RemoveFromLiveRegion', function() {
+// Flaky on Chromium OS: crbug.com/498881.
+TEST_F('CvoxLiveRegionsUnitTest', 'DISABLED_RemoveFromLiveRegion', function() {
this.loadDoc(function() {/*!
<div>
<div id="buddylist2" aria-relevant="removals">
@@ -252,7 +255,8 @@ TEST_F('CvoxLiveRegionsUnitTest', 'FocusTriggeredAlertLiveRegion', function() {
/**
* Test focus followed by live region change, make sure both are spoken.
*/
-TEST_F('CvoxLiveRegionsUnitTest', 'FocusThenLiveRegion', function() {
+// Flaky on Chromium OS: crbug.com/498881.
+TEST_F('CvoxLiveRegionsUnitTest', 'DISABLED_FocusThenLiveRegion', function() {
this.loadDoc(function() {/*!
<button id="button_to_focus">Button To Focus</button>
<div id="live" aria-live="polite"></div>
@@ -272,7 +276,8 @@ TEST_F('CvoxLiveRegionsUnitTest', 'FocusThenLiveRegion', function() {
/**
* Test live region change followed by focus, make sure both are spoken.
*/
-TEST_F('CvoxLiveRegionsUnitTest', 'LiveRegionThenFocus', function() {
+// Flaky on Chromium OS: crbug.com/498881.
+TEST_F('CvoxLiveRegionsUnitTest', 'DISABLED_LiveRegionThenFocus', function() {
this.loadDoc(function() {/*!
<button id="button_to_focus">Button To Focus</button>
<div id="live" aria-live="polite"></div>
@@ -295,7 +300,8 @@ TEST_F('CvoxLiveRegionsUnitTest', 'LiveRegionThenFocus', function() {
* Two elements inside a live region. These are all combined into
* one utterance until this bug is fixed: http://crbug.com/415679
*/
-TEST_F('CvoxLiveRegionsUnitTest', 'TwoElementsInLiveRegion', function() {
+// Flaky on Chromium OS: crbug.com/498881.
+TEST_F('CvoxLiveRegionsUnitTest', 'DISABLED_TwoElementsInLiveRegion', function() {
this.loadDoc(function() {/*!
<div id="live" aria-live="polite">
<div id="hidden" style="display:none">
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager_test.unitjs b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager_test.unitjs
index c2e47233c23..f807f25b5e6 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager_test.unitjs
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager_test.unitjs
@@ -40,8 +40,8 @@ CvoxNavigationManagerUnitTest.prototype = {
/**
* Check a sequence of navigations.
*
- * @param {Array.<string>} strategies A list of nav strategies to try.
- * @param {Array.<Object>} commandsAndExpectations An array of objects,
+ * @param {Array<string>} strategies A list of nav strategies to try.
+ * @param {Array<Object>} commandsAndExpectations An array of objects,
* each one of which should contain:
* 'command': The UserCommands command to execute.
* 'text': The expected text of the node that's navigated to.
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_shifter.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_shifter.js
index 209388cc582..6f17ada1e8e 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_shifter.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_shifter.js
@@ -70,7 +70,7 @@ goog.inherits(cvox.NavigationShifter, cvox.AbstractShifter);
// These "const" literals may be used, but no order may be assumed
// between them by any outside callers.
/**
- * @type {Object<string, number>}
+ * @type {Object<number>}
*/
cvox.NavigationShifter.GRANULARITIES = {
'CHARACTER': 0,
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/user_commands.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/user_commands.js
index 6d6b220d6cb..1d5838ac1ab 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/user_commands.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/injected/user_commands.js
@@ -55,7 +55,7 @@ cvox.ChromeVoxUserCommands.init_ = function() {
/**
- * @type {!Object<string, function(Object=): boolean>}
+ * @type {!Object<function(Object=): boolean>}
*/
cvox.ChromeVoxUserCommands.commands;
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/messages/msgs.js b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/messages/msgs.js
index fc4fc80ae52..20a720af33d 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/messages/msgs.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox/messages/msgs.js
@@ -14,7 +14,7 @@ goog.provide('cvox.Msgs');
*/
cvox.Msgs = function() {
/**
- * @type {Object<string, string>}
+ * @type {Object<string>}
* @private
*/
this.localeNameDict_ = null;
@@ -98,7 +98,7 @@ cvox.Msgs.prototype.getNumber = function(num) {
*/
cvox.Msgs.prototype.getLocaleDisplayName = function(locale) {
if (!this.localeNameDict_) {
- this.localeNameDict_ = /** @type {Object<string, string>} */(
+ this.localeNameDict_ = /** @type {Object<string>} */(
JSON.parse(this.getMsg('locale_dict')));
}
var name = this.localeNameDict_[locale];
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_assets.gypi b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_assets.gypi
index 26b90089637..33a995bc59e 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_assets.gypi
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_assets.gypi
@@ -3,102 +3,125 @@
# found in the LICENSE file.
{
- 'copies': [
+ 'variables': {
+ 'chromevox_assets_chromevox': [
+ 'chromevox/chromevox-128.png',
+ 'chromevox/chromevox-16.png',
+ 'chromevox/chromevox-19.png',
+ 'chromevox/chromevox-48.png',
+ ],
+ 'chromevox_assets_chromevox_background_earcons': [
+ 'chromevox/background/earcons/alert_modal.ogg',
+ 'chromevox/background/earcons/alert_nonmodal.ogg',
+ 'chromevox/background/earcons/bullet.ogg',
+ 'chromevox/background/earcons/busy_progress_loop.ogg',
+ 'chromevox/background/earcons/busy_working_loop.ogg',
+ 'chromevox/background/earcons/button.ogg',
+ 'chromevox/background/earcons/check_off.ogg',
+ 'chromevox/background/earcons/check_on.ogg',
+ 'chromevox/background/earcons/collapsed.ogg',
+ 'chromevox/background/earcons/editable_text.ogg',
+ 'chromevox/background/earcons/ellipsis.ogg',
+ 'chromevox/background/earcons/expanded.ogg',
+ 'chromevox/background/earcons/font_change.ogg',
+ 'chromevox/background/earcons/invalid_keypress.ogg',
+ 'chromevox/background/earcons/link.ogg',
+ 'chromevox/background/earcons/listbox.ogg',
+ 'chromevox/background/earcons/long_desc.ogg',
+ 'chromevox/background/earcons/new_mail.ogg',
+ 'chromevox/background/earcons/object_close.ogg',
+ 'chromevox/background/earcons/object_delete.ogg',
+ 'chromevox/background/earcons/object_deselect.ogg',
+ 'chromevox/background/earcons/object_enter.ogg',
+ 'chromevox/background/earcons/object_exit.ogg',
+ 'chromevox/background/earcons/object_open.ogg',
+ 'chromevox/background/earcons/object_select.ogg',
+ 'chromevox/background/earcons/paragraph_break.ogg',
+ 'chromevox/background/earcons/search_hit.ogg',
+ 'chromevox/background/earcons/search_miss.ogg',
+ 'chromevox/background/earcons/section.ogg',
+ 'chromevox/background/earcons/selection.ogg',
+ 'chromevox/background/earcons/selection_reverse.ogg',
+ 'chromevox/background/earcons/special_content.ogg',
+ 'chromevox/background/earcons/task_success.ogg',
+ 'chromevox/background/earcons/wrap_edge.ogg',
+ 'chromevox/background/earcons/wrap.ogg',
+ ],
+ 'chromevox_assets_chromevox_background_keymaps': [
+ 'chromevox/background/keymaps/classic_keymap.json',
+ 'chromevox/background/keymaps/experimental.json',
+ 'chromevox/background/keymaps/flat_keymap.json',
+ ],
+ 'chromevox_assets_chromevox_background_mathmaps_functions': [
+ 'chromevox/background/mathmaps/functions/algebra.json',
+ 'chromevox/background/mathmaps/functions/elementary.json',
+ 'chromevox/background/mathmaps/functions/hyperbolic.json',
+ 'chromevox/background/mathmaps/functions/trigonometry.json',
+ ],
+ 'chromevox_assets_chromevox_background_mathmaps_symbols': [
+ 'chromevox/background/mathmaps/symbols/greek-capital.json',
+ 'chromevox/background/mathmaps/symbols/greek-mathfonts.json',
+ 'chromevox/background/mathmaps/symbols/greek-scripts.json',
+ 'chromevox/background/mathmaps/symbols/greek-small.json',
+ 'chromevox/background/mathmaps/symbols/greek-symbols.json',
+ 'chromevox/background/mathmaps/symbols/hebrew_letters.json',
+ 'chromevox/background/mathmaps/symbols/latin-lower-double-accent.json',
+ 'chromevox/background/mathmaps/symbols/latin-lower-normal.json',
+ 'chromevox/background/mathmaps/symbols/latin-lower-phonetic.json',
+ 'chromevox/background/mathmaps/symbols/latin-lower-single-accent.json',
+ 'chromevox/background/mathmaps/symbols/latin-mathfonts.json',
+ 'chromevox/background/mathmaps/symbols/latin-rest.json',
+ 'chromevox/background/mathmaps/symbols/latin-upper-double-accent.json',
+ 'chromevox/background/mathmaps/symbols/latin-upper-normal.json',
+ 'chromevox/background/mathmaps/symbols/latin-upper-single-accent.json',
+ 'chromevox/background/mathmaps/symbols/math_angles.json',
+ 'chromevox/background/mathmaps/symbols/math_arrows.json',
+ 'chromevox/background/mathmaps/symbols/math_characters.json',
+ 'chromevox/background/mathmaps/symbols/math_delimiters.json',
+ 'chromevox/background/mathmaps/symbols/math_digits.json',
+ 'chromevox/background/mathmaps/symbols/math_geometry.json',
+ 'chromevox/background/mathmaps/symbols/math_harpoons.json',
+ 'chromevox/background/mathmaps/symbols/math_non_characters.json',
+ 'chromevox/background/mathmaps/symbols/math_symbols.json',
+ 'chromevox/background/mathmaps/symbols/math_whitespace.json',
+ 'chromevox/background/mathmaps/symbols/other_stars.json',
+ ],
+ },
+ 'targets': [
{
- 'destination': '<(chromevox_dest_dir)/chromevox',
- 'files': [
- 'chromevox/chromevox-128.png',
- 'chromevox/chromevox-16.png',
- 'chromevox/chromevox-19.png',
- 'chromevox/chromevox-48.png',
- ],
- },
- {
- 'destination': '<(chromevox_dest_dir)/chromevox/background/earcons',
- 'files': [
- 'chromevox/background/earcons/alert_modal.ogg',
- 'chromevox/background/earcons/alert_nonmodal.ogg',
- 'chromevox/background/earcons/bullet.ogg',
- 'chromevox/background/earcons/busy_progress_loop.ogg',
- 'chromevox/background/earcons/busy_working_loop.ogg',
- 'chromevox/background/earcons/button.ogg',
- 'chromevox/background/earcons/check_off.ogg',
- 'chromevox/background/earcons/check_on.ogg',
- 'chromevox/background/earcons/collapsed.ogg',
- 'chromevox/background/earcons/editable_text.ogg',
- 'chromevox/background/earcons/ellipsis.ogg',
- 'chromevox/background/earcons/expanded.ogg',
- 'chromevox/background/earcons/font_change.ogg',
- 'chromevox/background/earcons/invalid_keypress.ogg',
- 'chromevox/background/earcons/link.ogg',
- 'chromevox/background/earcons/listbox.ogg',
- 'chromevox/background/earcons/long_desc.ogg',
- 'chromevox/background/earcons/new_mail.ogg',
- 'chromevox/background/earcons/object_close.ogg',
- 'chromevox/background/earcons/object_delete.ogg',
- 'chromevox/background/earcons/object_deselect.ogg',
- 'chromevox/background/earcons/object_enter.ogg',
- 'chromevox/background/earcons/object_exit.ogg',
- 'chromevox/background/earcons/object_open.ogg',
- 'chromevox/background/earcons/object_select.ogg',
- 'chromevox/background/earcons/paragraph_break.ogg',
- 'chromevox/background/earcons/search_hit.ogg',
- 'chromevox/background/earcons/search_miss.ogg',
- 'chromevox/background/earcons/section.ogg',
- 'chromevox/background/earcons/selection.ogg',
- 'chromevox/background/earcons/selection_reverse.ogg',
- 'chromevox/background/earcons/special_content.ogg',
- 'chromevox/background/earcons/task_success.ogg',
- 'chromevox/background/earcons/wrap_edge.ogg',
- 'chromevox/background/earcons/wrap.ogg',
- ],
- },
- {
- 'destination': '<(chromevox_dest_dir)/chromevox/background/keymaps',
- 'files': [
- 'chromevox/background/keymaps/classic_keymap.json',
- 'chromevox/background/keymaps/experimental.json',
- 'chromevox/background/keymaps/flat_keymap.json',
- ],
- },
- {
- 'destination': '<(chromevox_dest_dir)/chromevox/background/mathmaps/functions',
- 'files': [
- 'chromevox/background/mathmaps/functions/algebra.json',
- 'chromevox/background/mathmaps/functions/elementary.json',
- 'chromevox/background/mathmaps/functions/hyperbolic.json',
- 'chromevox/background/mathmaps/functions/trigonometry.json',
- ],
- },
- {
- 'destination': '<(chromevox_dest_dir)/chromevox/background/mathmaps/symbols',
- 'files': [
- 'chromevox/background/mathmaps/symbols/greek-capital.json',
- 'chromevox/background/mathmaps/symbols/greek-mathfonts.json',
- 'chromevox/background/mathmaps/symbols/greek-scripts.json',
- 'chromevox/background/mathmaps/symbols/greek-small.json',
- 'chromevox/background/mathmaps/symbols/greek-symbols.json',
- 'chromevox/background/mathmaps/symbols/hebrew_letters.json',
- 'chromevox/background/mathmaps/symbols/latin-lower-double-accent.json',
- 'chromevox/background/mathmaps/symbols/latin-lower-normal.json',
- 'chromevox/background/mathmaps/symbols/latin-lower-phonetic.json',
- 'chromevox/background/mathmaps/symbols/latin-lower-single-accent.json',
- 'chromevox/background/mathmaps/symbols/latin-mathfonts.json',
- 'chromevox/background/mathmaps/symbols/latin-rest.json',
- 'chromevox/background/mathmaps/symbols/latin-upper-double-accent.json',
- 'chromevox/background/mathmaps/symbols/latin-upper-normal.json',
- 'chromevox/background/mathmaps/symbols/latin-upper-single-accent.json',
- 'chromevox/background/mathmaps/symbols/math_angles.json',
- 'chromevox/background/mathmaps/symbols/math_arrows.json',
- 'chromevox/background/mathmaps/symbols/math_characters.json',
- 'chromevox/background/mathmaps/symbols/math_delimiters.json',
- 'chromevox/background/mathmaps/symbols/math_digits.json',
- 'chromevox/background/mathmaps/symbols/math_geometry.json',
- 'chromevox/background/mathmaps/symbols/math_harpoons.json',
- 'chromevox/background/mathmaps/symbols/math_non_characters.json',
- 'chromevox/background/mathmaps/symbols/math_symbols.json',
- 'chromevox/background/mathmaps/symbols/math_whitespace.json',
- 'chromevox/background/mathmaps/symbols/other_stars.json',
+ 'target_name': 'chromevox_assets',
+ 'type': 'none',
+ 'copies': [
+ {
+ 'destination': '<(chromevox_dest_dir)/chromevox',
+ 'files': [
+ '<@(chromevox_assets_chromevox)',
+ ],
+ },
+ {
+ 'destination': '<(chromevox_dest_dir)/chromevox/background/earcons',
+ 'files': [
+ '<@(chromevox_assets_chromevox_background_earcons)',
+ ],
+ },
+ {
+ 'destination': '<(chromevox_dest_dir)/chromevox/background/keymaps',
+ 'files': [
+ '<@(chromevox_assets_chromevox_background_keymaps)',
+ ],
+ },
+ {
+ 'destination': '<(chromevox_dest_dir)/chromevox/background/mathmaps/functions',
+ 'files': [
+ '<@(chromevox_assets_chromevox_background_mathmaps_functions)',
+ ],
+ },
+ {
+ 'destination': '<(chromevox_dest_dir)/chromevox/background/mathmaps/symbols',
+ 'files': [
+ '<@(chromevox_assets_chromevox_background_mathmaps_symbols)',
+ ],
+ },
],
},
],
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_tests.gypi b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_tests.gypi
index 9b0bd1296f1..44be1c2a733 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_tests.gypi
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_tests.gypi
@@ -9,6 +9,69 @@
'variables': {
'chromevox_test_deps_js_file': '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/chromevox/test_deps.js',
'chromevox_test_messages_js_file': '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/chromevox/host/testing/test_messages.js',
+ 'chromevox_tests_sources': [
+ '../../../../browser/extensions/browsertest_util.cc',
+ '../../../../browser/extensions/browsertest_util.h',
+ '../../../../browser/ui/webui/web_ui_test_handler.cc',
+ '../../../../browser/ui/webui/web_ui_test_handler.h',
+ '../../../../test/base/browser_tests_main.cc',
+ '../../../../test/base/extension_js_browser_test.cc',
+ '../../../../test/base/extension_js_browser_test.h',
+ '../../../../test/base/extension_load_waiter_one_shot.cc',
+ '../../../../test/base/extension_load_waiter_one_shot.h',
+ '../../../../test/base/javascript_browser_test.cc',
+ '../../../../test/base/javascript_browser_test.h',
+ '../../../../test/base/test_chrome_web_ui_controller_factory.cc',
+ '../../../../test/base/test_chrome_web_ui_controller_factory.h',
+ '../../../../test/base/web_ui_browser_test.cc',
+ '../../../../test/base/web_ui_browser_test.h',
+ ],
+ 'chromevox_tests_unitjs_sources': [
+ 'braille/braille_display_manager_test.unitjs',
+ 'braille/braille_input_handler_test.unitjs',
+ 'braille/expanding_braille_translator_test.unitjs',
+ 'braille/pan_strategy_test.unitjs',
+ 'common/aria_util_test.unitjs',
+ 'common/braille_text_handler_test.unitjs',
+ 'common/braille_util_test.unitjs',
+ 'common/command_store_test.unitjs',
+ 'common/content_editable_extractor_test.unitjs',
+ 'common/cursor_selection_test.unitjs',
+ 'common/dom_util_test.unitjs',
+ 'common/editable_text_area_shadow_test.unitjs',
+ 'common/editable_text_test.unitjs',
+ 'common/find_util_test.unitjs',
+ 'common/key_sequence_test.unitjs',
+ 'common/math_semantic_tree_test.unitjs',
+ 'common/page_selection_test.unitjs',
+ 'common/selection_util_test.unitjs',
+ 'common/spannable_test.unitjs',
+ 'common/string_util_test.unitjs',
+ 'chromevox/injected/event_watcher_test.unitjs',
+ 'chromevox/injected/live_regions_test.unitjs',
+ 'chromevox/injected/user_commands_test.unitjs',
+ 'chromevox/injected/navigation_manager_test.unitjs',
+ 'host/chrome/braille_integration_test.unitjs',
+ 'walkers/character_walker_test.unitjs',
+ 'walkers/group_walker_test.unitjs',
+ 'walkers/object_walker_test.unitjs',
+ 'walkers/layout_line_walker_test.unitjs',
+ 'walkers/math_shifter_test.unitjs',
+ 'walkers/sentence_walker_test.unitjs',
+ 'walkers/structural_line_walker_test.unitjs',
+ 'walkers/table_walker_test.unitjs',
+ 'walkers/word_walker_test.unitjs',
+ ],
+ 'chromevox_tests_extjs_sources': [
+ 'braille/braille_table_test.extjs',
+ 'braille/braille_translator_manager_test.extjs',
+ 'braille/liblouis_test.extjs',
+ 'cvox2/background/automation_util_test.extjs',
+ 'cvox2/background/background_test.extjs',
+ 'cvox2/background/cursors_test.extjs',
+ 'cvox2/background/output_test.extjs',
+ 'host/chrome/tts_background_test.extjs',
+ ],
},
'targets': [
{
@@ -37,6 +100,13 @@
# the application embedder is using.
'<(DEPTH)/third_party/cld_2/cld_2.gyp:cld2_platform_impl', ],
}],
+ ['disable_nacl==0 and disable_nacl_untrusted==0', {
+ 'dependencies': [
+ '<(DEPTH)/components/nacl.gyp:nacl_helper',
+ '<(DEPTH)/components/nacl_nonsfi.gyp:nacl_helper_nonsfi',
+ '<(DEPTH)/native_client/src/trusted/service_runtime/linux/nacl_bootstrap.gyp:nacl_helper_bootstrap',
+ ],
+ }],
],
'defines': [
'HAS_OUT_OF_PROC_TEST_RUNNER',
@@ -139,64 +209,9 @@
},
],
'sources': [
- '<(DEPTH)/chrome/browser/extensions/browsertest_util.cc',
- '<(DEPTH)/chrome/browser/extensions/browsertest_util.h',
- '<(DEPTH)/chrome/browser/ui/webui/web_ui_test_handler.cc',
- '<(DEPTH)/chrome/browser/ui/webui/web_ui_test_handler.h',
- '<(DEPTH)/chrome/test/base/browser_tests_main.cc',
- '<(DEPTH)/chrome/test/base/extension_js_browser_test.cc',
- '<(DEPTH)/chrome/test/base/extension_js_browser_test.h',
- '<(DEPTH)/chrome/test/base/extension_load_waiter_one_shot.cc',
- '<(DEPTH)/chrome/test/base/extension_load_waiter_one_shot.h',
- '<(DEPTH)/chrome/test/base/javascript_browser_test.cc',
- '<(DEPTH)/chrome/test/base/javascript_browser_test.h',
- '<(DEPTH)/chrome/test/base/test_chrome_web_ui_controller_factory.cc',
- '<(DEPTH)/chrome/test/base/test_chrome_web_ui_controller_factory.h',
- '<(DEPTH)/chrome/test/base/web_ui_browser_test.cc',
- '<(DEPTH)/chrome/test/base/web_ui_browser_test.h',
-
- 'braille/braille_display_manager_test.unitjs',
- 'braille/braille_input_handler_test.unitjs',
- 'braille/braille_table_test.extjs',
- 'braille/braille_translator_manager_test.extjs',
- 'braille/expanding_braille_translator_test.unitjs',
- 'braille/liblouis_test.extjs',
- 'braille/pan_strategy_test.unitjs',
- 'common/aria_util_test.unitjs',
- 'common/braille_text_handler_test.unitjs',
- 'common/braille_util_test.unitjs',
- 'common/command_store_test.unitjs',
- 'common/content_editable_extractor_test.unitjs',
- 'common/cursor_selection_test.unitjs',
- 'common/dom_util_test.unitjs',
- 'common/editable_text_area_shadow_test.unitjs',
- 'common/editable_text_test.unitjs',
- 'common/find_util_test.unitjs',
- 'common/key_sequence_test.unitjs',
- 'common/math_semantic_tree_test.unitjs',
- 'common/page_selection_test.unitjs',
- 'common/selection_util_test.unitjs',
- 'common/spannable_test.unitjs',
- 'common/string_util_test.unitjs',
- 'chromevox/injected/event_watcher_test.unitjs',
- 'chromevox/injected/live_regions_test.unitjs',
- 'chromevox/injected/user_commands_test.unitjs',
- 'chromevox/injected/navigation_manager_test.unitjs',
- 'cvox2/background/automation_util_test.extjs',
- 'cvox2/background/background_test.extjs',
- 'cvox2/background/cursors_test.extjs',
- 'cvox2/background/output_test.extjs',
- 'host/chrome/braille_integration_test.unitjs',
- 'host/chrome/tts_background_test.extjs',
- 'walkers/character_walker_test.unitjs',
- 'walkers/group_walker_test.unitjs',
- 'walkers/object_walker_test.unitjs',
- 'walkers/layout_line_walker_test.unitjs',
- 'walkers/math_shifter_test.unitjs',
- 'walkers/sentence_walker_test.unitjs',
- 'walkers/structural_line_walker_test.unitjs',
- 'walkers/table_walker_test.unitjs',
- 'walkers/word_walker_test.unitjs',
+ '<@(chromevox_tests_sources)',
+ '<@(chromevox_tests_unitjs_sources)',
+ '<@(chromevox_tests_extjs_sources)',
],
}, # target chromevox_tests
{
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_vars.gypi b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_vars.gypi
new file mode 100644
index 00000000000..e43990643e8
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/chromevox_vars.gypi
@@ -0,0 +1,16 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Variables shared between gn and gyp.
+
+{
+ 'variables': {
+ 'chromevox1_background_script_loader_file': 'chromevox/background/loader.js',
+ 'chromevox1_content_script_loader_file': 'chromevox/injected/loader.js',
+ 'chromevox1_kbexplorer_loader_file': 'chromevox/background/kbexplorer_loader.js',
+ 'chromevox1_options_script_loader_file': 'chromevox/background/options_loader.js',
+ 'chromevox2_background_script_loader_file': 'cvox2/background/loader.js',
+ 'chromevox_extension_key': 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDltVl1k15pjRzuZfMc3B69inxwm2bZeZ2O8/zFO+NluHnBm3GJ3fzdOoFGJd+M16I8p7zxxQyHeDMfWYASyCeB8XnUEDKjqNLQfCnncsANzHsYoEbYj2nEUML2P13b9q+AAvpCBpAJ4cZp81e9n1y/vbSXHE4385cgkKueItzikQIDAQAB',
+ }
+}
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/aria_util.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/aria_util.js
index 7df05627b2c..c1b7dc3e094 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/aria_util.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/aria_util.js
@@ -24,17 +24,11 @@ cvox.AriaUtil = function() {
/**
- * A constant indicating no role name.
- * @type {string}
- */
-cvox.AriaUtil.NO_ROLE_NAME = ' ';
-
-/**
* A mapping from ARIA role names to their message ids.
* Note: If you are adding a new mapping, the new message identifier needs a
* corresponding braille message. For example, a message id 'tag_button'
* requires another message 'tag_button_brl' within messages.js.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
cvox.AriaUtil.WIDGET_ROLE_TO_NAME = {
'alert' : 'aria_role_alert',
@@ -55,7 +49,7 @@ cvox.AriaUtil.WIDGET_ROLE_TO_NAME = {
'menuitem' : 'aria_role_menuitem',
'menuitemcheckbox' : 'aria_role_menuitemcheckbox',
'menuitemradio' : 'aria_role_menuitemradio',
- 'option' : cvox.AriaUtil.NO_ROLE_NAME,
+ 'option' : 'aria_role_option',
'progressbar' : 'aria_role_progressbar',
'radio' : 'aria_role_radio',
'radiogroup' : 'aria_role_radiogroup',
@@ -79,7 +73,7 @@ cvox.AriaUtil.WIDGET_ROLE_TO_NAME = {
* Note: If you are adding a new mapping, the new message identifier needs a
* corresponding braille message. For example, a message id 'tag_button'
* requires another message 'tag_button_brl' within messages.js.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME = {
'article' : 'aria_role_article',
@@ -266,10 +260,6 @@ cvox.AriaUtil.getRoleNameMsgForRole_ = function(role) {
if (!msgId) {
return null;
}
- if (msgId == cvox.AriaUtil.NO_ROLE_NAME) {
- // TODO(dtseng): This isn't the way to insert silence; beware!
- return ' ';
- }
return msgId;
};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/braille_util.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/braille_util.js
index bc133b7c5dd..8c673da791c 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/braille_util.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/braille_util.js
@@ -54,7 +54,7 @@ cvox.BrailleUtil.CONTAINER = [
* c: replaced with braille container role; this potentially returns whitespace,
* so place at the beginning or end of templates for trimming.
* v: replaced with braille value.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
cvox.BrailleUtil.TEMPLATE = {
'base': 'c n v r s',
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/chrome_extension_externs.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/chrome_extension_externs.js
index 86fa446e2d9..4506a1079c8 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/chrome_extension_externs.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/chrome_extension_externs.js
@@ -10,1206 +10,7 @@
*/
-/**
- * @const
- */
-chrome.app = {};
-
-
-/**
- * @const
- */
-chrome.extension = {};
-
-
-/** @type {!Object|undefined} */
-chrome.extension.lastError = {};
-
-
-/**
- * @type {string|undefined}
- */
-chrome.extension.lastError.message;
-
-
-/** @type {boolean|undefined} */
-chrome.extension.inIncognitoContext;
-
-
-/**
- * @param {string|Object<string>=} opt_extensionIdOrConnectInfo Either the
- * extensionId to connect to, in which case connectInfo params can be
- * passed in the next optional argument, or the connectInfo params.
- * @param {Object<string>=} opt_connectInfo The connectInfo object,
- * if arg1 was the extensionId to connect to.
- * @return {Port} New port.
- */
-chrome.extension.connect = function(
- opt_extensionIdOrConnectInfo, opt_connectInfo) {};
-
-
-/**
- * @return {Window} The global JS object for the background page.
- */
-chrome.extension.getBackgroundPage = function() {};
-
-
-/**
- * @param {string} path A path to a resource within an extension expressed
- * relative to it's install directory.
- * @return {string} The fully-qualified URL to the resource.
- */
-chrome.extension.getURL = function(path) {};
-
-
-/**
- * @param {function(boolean): void} callback Callback function.
- */
-chrome.extension.isAllowedIncognitoAccess = function(callback) {};
-
-
-/**
- * @param {string|*} extensionIdOrRequest Either the extensionId to send the
- * request to, in which case the request is passed as the next arg, or the
- * request.
- * @param {*=} opt_request The request value, if arg1 was the extensionId.
- * @param {function(*): void=} opt_callback The callback function which
- * takes a JSON response object sent by the handler of the request.
- */
-chrome.extension.sendMessage = function(
- extensionIdOrRequest, opt_request, opt_callback) {};
-
-
-/** @type {ChromeEvent} */
-chrome.extension.onConnect;
-
-
-/** @type {ChromeEvent} */
-chrome.extension.onConnectExternal;
-
-
-/** @type {ChromeEvent} */
-chrome.extension.onMessage;
-
-
-/**
- * @const
- */
-chrome.runtime = {};
-
-
-/** @type {!Object|undefined} */
-chrome.runtime.lastError = {};
-
-
-/**
- * @type {string|undefined}
- */
-chrome.runtime.lastError.message;
-
-
-/** @type {string} */
-chrome.runtime.id;
-
-
-/**
- * @param {function(!Window=): void} callback Callback function.
- */
-chrome.runtime.getBackgroundPage = function(callback) {};
-
-
-
-/**
- * Manifest information returned from chrome.runtime.getManifest. See
- * http://developer.chrome.com/extensions/manifest.html. Note that there are
- * several other fields not included here. They should be added to these externs
- * as needed.
- * @constructor
- */
-chrome.runtime.Manifest = function() {};
-
-
-/** @type {string} */
-chrome.runtime.Manifest.prototype.name;
-
-
-/** @type {string} */
-chrome.runtime.Manifest.prototype.version;
-
-
-/** @type {number|undefined} */
-chrome.runtime.Manifest.prototype.manifest_version;
-
-
-/** @type {string|undefined} */
-chrome.runtime.Manifest.prototype.description;
-
-
-/** @type {!chrome.runtime.Manifest.Oauth2|undefined} */
-chrome.runtime.Manifest.prototype.oauth2;
-
-
-
-/**
- * Oauth2 info in the manifest.
- * See http://developer.chrome.com/apps/app_identity.html#update_manifest.
- * @constructor
- */
-chrome.runtime.Manifest.Oauth2 = function() {};
-
-
-/** @type {string} */
-chrome.runtime.Manifest.Oauth2.prototype.client_id;
-
-/**@type {!Array<string>} */
-chrome.runtime.Manifest.Oauth2.prototype.scopes;
-
-
-/**
- * http://developer.chrome.com/extensions/runtime.html#method-getManifest
- * @return {!chrome.runtime.Manifest} The full manifest file of the app or
- * extension.
- */
-chrome.runtime.getManifest = function() {};
-
-
-/**
- * @param {string} path A path to a resource within an extension expressed
- * relative to it's install directory.
- * @return {string} The fully-qualified URL to the resource.
- */
-chrome.runtime.getURL = function(path) {};
-
-/**
- * @param {string|!Object<string>=} opt_extensionIdOrConnectInfo Either the
- * extensionId to connect to, in which case connectInfo params can be
- * passed in the next optional argument, or the connectInfo params.
- * @param {!Object<string>=} opt_connectInfo The connectInfo object,
- * if arg1 was the extensionId to connect to.
- * @return {!Port} New port.
- */
-chrome.runtime.connect = function(
- opt_extensionIdOrConnectInfo, opt_connectInfo) {};
-
-
-/**
- * @param {string|*} extensionIdOrMessage Either the extensionId to send the
- * message to, in which case the message is passed as the next arg, or the
- * message itself.
- * @param {(*|Object|function(*): void)=} opt_messageOrOptsOrCallback
- * One of:
- * The message, if arg1 was the extensionId.
- * The options for message sending, if arg1 was the message and this
- * argument is not a function.
- * The callback, if arg1 was the message and this argument is a function.
- * @param {(Object|function(*): void)=} opt_optsOrCallback
- * Either the options for message sending, if arg2 was the message,
- * or the callback.
- * @param {function(*): void=} opt_callback The callback function which
- * takes a JSON response object sent by the handler of the request.
- */
-chrome.runtime.sendMessage = function(
- extensionIdOrMessage, opt_messageOrOptsOrCallback, opt_optsOrCallback,
- opt_callback) {};
-
-
-/**
- *
- * @param {function(!Object)} callback
- */
-chrome.runtime.getPlatformInfo = function(callback) {};
-
-
-/** @type {!chrome.runtime.PortEvent} */
-chrome.runtime.onConnect;
-
-
-/** @type {!chrome.runtime.PortEvent} */
-chrome.runtime.onConnectExternal;
-
-
-/** @type {!chrome.runtime.MessageSenderEvent} */
-chrome.runtime.onMessage;
-
-
-/** @type {!chrome.runtime.MessageSenderEvent} */
-chrome.runtime.onMessageExternal;
-
-
-/**
- * Event whose listeners take a Port parameter.
- * @constructor
- */
-chrome.runtime.PortEvent = function() {};
-
-
-/**
- * @param {function(!Port): void} callback Callback.
- */
-chrome.runtime.PortEvent.prototype.addListener = function(callback) {};
-
-
-/**
- * @param {function(!Port): void} callback Callback.
- */
-chrome.runtime.PortEvent.prototype.removeListener = function(callback) {};
-
-
-/**
- * @param {function(!Port): void} callback Callback.
- * @return {boolean}
- */
-chrome.runtime.PortEvent.prototype.hasListener = function(callback) {};
-
-
-/**
- * @return {boolean}
- */
-chrome.runtime.PortEvent.prototype.hasListeners = function() {};
-
-
-
-/**
- * Event whose listeners take a MessageSender and additional parameters.
- * @constructor
- */
-chrome.runtime.MessageSenderEvent = function() {};
-
-
-/**
- * @param {function(*, !MessageSender, function(*): void): (boolean|undefined)}
- * callback Callback.
- */
-chrome.runtime.MessageSenderEvent.prototype.addListener = function(callback) {};
-
-
-/**
- * @param {function(*, !MessageSender, function(*): void): (boolean|undefined)}
- * callback Callback.
- */
-chrome.runtime.MessageSenderEvent.prototype.removeListener = function(callback)
- {};
-
-
-/**
- * @param {function(*, !MessageSender, function(*): void): (boolean|undefined)}
- * callback Callback.
- * @return {boolean}
- */
-chrome.runtime.MessageSenderEvent.prototype.hasListener = function(callback) {};
-
-
-/**
- * @return {boolean}
- */
-chrome.runtime.MessageSenderEvent.prototype.hasListeners = function() {};
-
-
-/**
- * @const
- */
-chrome.tabs = {};
-
-
-/**
- * @param {number?} windowId Window Id.
- * @param {Object?} options parameters of image capture, such as the format of
- * the resulting image.
- * @param {function(string): void} callback Callback function which accepts
- * the data URL string of a JPEG encoding of the visible area of the
- * captured tab. May be assigned to the 'src' property of an HTML Image
- * element for display.
- */
-chrome.tabs.captureVisibleTab = function(windowId, options, callback) {};
-
-
-/**
- * @param {number} tabId Tab Id.
- * @param {Object<string>=} opt_connectInfo Info Object.
- */
-chrome.tabs.connect = function(tabId, opt_connectInfo) {};
-
-
-/**
- * @param {Object} createProperties Info object.
- * @param {function(Tab): void=} opt_callback The callback function.
- */
-chrome.tabs.create = function(createProperties, opt_callback) {};
-
-
-/**
- * @param {number?} tabId Tab id.
- * @param {function(string): void} callback Callback function.
- */
-chrome.tabs.detectLanguage = function(tabId, callback) {};
-
-
-/**
- * @param {number?} tabId Tab id.
- * @param {Object?} details An object which may have 'code', 'file',
- * or 'allFrames' keys.
- * @param {function(): void=} opt_callback Callback function.
- */
-chrome.tabs.executeScript = function(tabId, details, opt_callback) {};
-
-
-/**
- * @param {number} tabId Tab id.
- * @param {function(Tab): void} callback Callback.
- */
-chrome.tabs.get = function(tabId, callback) {};
-
-
-/**
- * Note: as of 2012-04-12, this function is no longer documented on
- * the public web pages, but there are still existing usages
- *
- * @param {number?} windowId Window id.
- * @param {function(Array<Tab>): void} callback Callback.
- */
-chrome.tabs.getAllInWindow = function(windowId, callback) {};
-
-
-/**
- * @param {function(Tab): void} callback Callback.
- */
-chrome.tabs.getCurrent = function(callback) {};
-
-
-/**
- * Note: as of 2012-04-12, this function is no longer documented on
- * the public web pages, but there are still existing usages.
- *
- * @param {number?} windowId Window id.
- * @param {function(Tab): void} callback Callback.
- */
-chrome.tabs.getSelected = function(windowId, callback) {};
-
-
-/**
- * @param {Object<string, (number|Array<number>)>} highlightInfo
- * An object with 'windowId' (number) and 'tabs'
- * (number or array of numbers) keys.
- * @param {function(Window): void} callback Callback function invoked
- * with each appropriate Window.
- */
-chrome.tabs.highlight = function(highlightInfo, callback) {};
-
-
-/**
- * @param {number?} tabId Tab id.
- * @param {Object?} details An object which may have 'code', 'file',
- * or 'allFrames' keys.
- * @param {function(): void=} opt_callback Callback function.
- */
-chrome.tabs.insertCSS = function(tabId, details, opt_callback) {};
-
-
-/**
- * @param {number} tabId Tab id.
- * @param {Object<string, number>} moveProperties An object with 'index'
- * and optional 'windowId' keys.
- * @param {function(Tab): void=} opt_callback Callback.
- */
-chrome.tabs.move = function(tabId, moveProperties, opt_callback) {};
-
-
-/**
- * @param {Object<string, (number|string)>} queryInfo An object which may have
- * 'active', 'pinned', 'highlighted', 'status', 'title', 'url', 'windowId',
- * and 'windowType' keys.
- * @param {function(Array<Tab>): void=} opt_callback Callback.
- * @return {!Array<Tab>}
- */
-chrome.tabs.query = function(queryInfo, opt_callback) {};
-
-
-/**
- * @param {number=} opt_tabId Tab id.
- * @param {Object<string, boolean>=} opt_reloadProperties An object which
- * may have a 'bypassCache' key.
- * @param {function(): void=} opt_callback The callback function invoked
- * after the tab has been reloaded.
- */
-chrome.tabs.reload = function(opt_tabId, opt_reloadProperties, opt_callback) {};
-
-
-/**
- * @param {number|Array<number>} tabIds A tab ID or an array of tab IDs.
- * @param {function(Tab): void=} opt_callback Callback.
- */
-chrome.tabs.remove = function(tabIds, opt_callback) {};
-
-
-/**
- * @param {number} tabId Tab id.
- * @param {*} request The request value of any type.
- * @param {function(*): void=} opt_callback The callback function which
- * takes a JSON response object sent by the handler of the request.
- */
-chrome.tabs.sendMessage = function(tabId, request, opt_callback) {};
-
-
-/**
- * @param {number} tabId Tab id.
- * @param {*} request The request value of any type.
- * @param {function(*): void=} opt_callback The callback function which
- * takes a JSON response object sent by the handler of the request.
- */
-chrome.tabs.sendRequest = function(tabId, request, opt_callback) {};
-
-
-/**
- * @param {number} tabId Tab id.
- * @param {Object<string, (string|boolean)>} updateProperties An object which
- * may have 'url' or 'selected' key.
- * @param {function(Tab): void=} opt_callback Callback.
- */
-chrome.tabs.update = function(tabId, updateProperties, opt_callback) {};
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onActiveChanged;
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onActivated;
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onAttached;
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onCreated;
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onDetached;
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onHighlightChanged;
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onMoved;
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onRemoved;
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onUpdated;
-
-
-/** @type {ChromeEvent} */
-chrome.tabs.onReplaced;
-
-/**
- * @const
- */
-chrome.windows = {};
-
-
-/**
- * @param {Object=} opt_createData May have many keys to specify parameters.
- * Or the callback.
- * @param {function(ChromeWindow): void=} opt_callback Callback.
- */
-chrome.windows.create = function(opt_createData, opt_callback) {};
-
-
-/**
- * @param {number} id Window id.
- * @param {Object=} opt_getInfo May have 'populate' key. Or the callback.
- * @param {function(!ChromeWindow): void=} opt_callback Callback when
- * opt_getInfo is an object.
- */
-chrome.windows.get = function(id, opt_getInfo, opt_callback) {};
-
-
-/**
- * @param {Object=} opt_getInfo May have 'populate' key. Or the callback.
- * @param {function(!Array<!ChromeWindow>): void=} opt_callback Callback.
- */
-chrome.windows.getAll = function(opt_getInfo, opt_callback) {};
-
-
-/**
- * @param {Object=} opt_getInfo May have 'populate' key. Or the callback.
- * @param {function(ChromeWindow): void=} opt_callback Callback.
- */
-chrome.windows.getCurrent = function(opt_getInfo, opt_callback) { };
-
-
-/**
- * @param {Object=} opt_getInfo May have 'populate' key. Or the callback.
- * @param {function(ChromeWindow): void=} opt_callback Callback.
- */
-chrome.windows.getLastFocused = function(opt_getInfo, opt_callback) { };
-
-
-/**
- * @param {number} tabId Tab Id.
- * @param {function(): void=} opt_callback Callback.
- */
-chrome.windows.remove = function(tabId, opt_callback) {};
-
-
-/**
- * @param {number} tabId Tab Id.
- * @param {Object} updateProperties An object which may have many keys for
- * various options.
- * @param {function(): void=} opt_callback Callback.
- */
-chrome.windows.update = function(tabId, updateProperties, opt_callback) {};
-
-
-/** @type {ChromeEvent} */
-chrome.windows.onCreated;
-
-
-/** @type {ChromeEvent} */
-chrome.windows.onFocusChanged;
-
-
-/** @type {ChromeEvent} */
-chrome.windows.onRemoved;
-
-
-/**
- * @type {number}
- */
-chrome.windows.WINDOW_ID_NONE;
-
-
-/**
- * @type {number}
- */
-chrome.windows.WINDOW_ID_CURRENT;
-
-
-/**
- * @const
- */
-chrome.i18n = {};
-
-
-/**
- * @param {function(Array<string>): void} callback The callback function which
- * accepts an array of the accept languages of the browser, such as
- * 'en-US','en','zh-CN'.
- */
-chrome.i18n.getAcceptLanguages = function(callback) {};
-
-
-/**
- * @param {string} messageName
- * @param {(string|Array<string>)=} opt_args
- * @return {string}
- */
-chrome.i18n.getMessage = function(messageName, opt_args) {};
-
-
-/**
- * Chrome Text-to-Speech API.
- * @const
- */
-chrome.tts = {};
-
-
-
-/**
- * An event from the TTS engine to communicate the status of an utterance.
- * @constructor
- */
-function TtsEvent() {}
-
-
-/** @type {string} */
-TtsEvent.prototype.type;
-
-
-/** @type {number} */
-TtsEvent.prototype.charIndex;
-
-
-/** @type {string} */
-TtsEvent.prototype.errorMessage;
-
-
-
-/**
- * A description of a voice available for speech synthesis.
- * @constructor
- */
-function TtsVoice() {}
-
-
-/** @type {string} */
-TtsVoice.prototype.voiceName;
-
-
-/** @type {string} */
-TtsVoice.prototype.lang;
-
-
-/** @type {string} */
-TtsVoice.prototype.gender;
-
-
-/** @type {string} */
-TtsVoice.prototype.extensionId;
-
-
-/** @type {Array<string>} */
-TtsVoice.prototype.eventTypes;
-
-
-/**
- * Gets an array of all available voices.
- * @param {function(Array<TtsVoice>)=} opt_callback An optional callback
- * function.
- */
-chrome.tts.getVoices = function(opt_callback) {};
-
-
-/**
- * Checks if the engine is currently speaking.
- * @param {function(boolean)=} opt_callback The callback function.
- */
-chrome.tts.isSpeaking = function(opt_callback) {};
-
-
-/**
- * Speaks text using a text-to-speech engine.
- * @param {string} utterance The text to speak, either plain text or a complete,
- * well-formed SSML document. Speech engines that do not support SSML will
- * strip away the tags and speak the text. The maximum length of the text is
- * 32,768 characters.
- * @param {Object=} opt_options The speech options.
- * @param {function()=} opt_callback Called right away, before speech finishes.
- */
-chrome.tts.speak = function(utterance, opt_options, opt_callback) {};
-
-
-/**
- * Stops any current speech.
- */
-chrome.tts.stop = function() {};
-
-
-/**
- * @const
- */
-chrome.history = {};
-
-
-/**
- * @param {Object<string, string>} details Object with a 'url' key.
- */
-chrome.history.addUrl = function(details) {};
-
-
-/**
- * @param {function(): void} callback Callback function.
- */
-chrome.history.deleteAll = function(callback) {};
-
-
-/**
- * @param {Object<string, string>} range Object with 'startTime'
- * and 'endTime' keys.
- * @param {function(): void} callback Callback function.
- */
-chrome.history.deleteRange = function(range, callback) {};
-
-
-/**
- * @param {Object<string, string>} details Object with a 'url' key.
- */
-chrome.history.deleteUrl = function(details) {};
-
-
-/**
- * @param {Object<string, string>} details Object with a 'url' key.
- * @param {function(!Array<!VisitItem>): void} callback Callback function.
- * @return {!Array<!VisitItem>}
- */
-chrome.history.getVisits = function(details, callback) {};
-
-
-/**
- * @param {Object<string, string>} query Object with a 'text' (string)
- * key and optional 'startTime' (number), 'endTime' (number) and
- * 'maxResults' keys.
- * @param {function(!Array<!HistoryItem>): void} callback Callback function.
- * @return {!Array<!HistoryItem>}
- */
-chrome.history.search = function(query, callback) {};
-
-
-/** @type {ChromeEvent} */
-chrome.history.onVisitRemoved;
-
-
-/** @type {ChromeEvent} */
-chrome.history.onVisited;
-
-
-/**
- * @const
- */
-chrome.permissions = {};
-
-
-/**
- * @typedef {{
- * permissions: (Array<string>|undefined),
- * origins: (Array<string>|undefined)
- * }}
-* @see http://developer.chrome.com/extensions/permissions.html#type-Permissions
-*/
-chrome.permissions.Permissions;
-
-
-/**
- * @param {!chrome.permissions.Permissions} permissions
- * @param {function(boolean): void} callback Callback function.
- */
-chrome.permissions.contains = function(permissions, callback) {};
-
-
-/**
- * @param {function(!chrome.permissions.Permissions): void} callback
- * Callback function.
- */
-chrome.permissions.getAll = function(callback) {};
-
-
-/**
- * @param {!chrome.permissions.Permissions} permissions
- * @param {function(boolean): void=} opt_callback Callback function.
- */
-chrome.permissions.remove = function(permissions, opt_callback) {};
-
-
-/**
- * @param {!chrome.permissions.Permissions} permissions
- * @param {function(boolean): void=} opt_callback Callback function.
- */
-chrome.permissions.request = function(permissions, opt_callback) {};
-
-
-/** @type {!ChromeEvent} */
-chrome.permissions.onAdded;
-
-
-/** @type {!ChromeEvent} */
-chrome.permissions.onRemoved;
-
-
-/**
- */
-chrome.power = {};
-
-
-/**
- * @param {string} level A string describing the degree to which power
- * management should be disabled, should be either "system" or "display".
- */
-chrome.power.requestKeepAwake = function(level) {};
-
-
-/**
- * Releases a request previously made via requestKeepAwake().
- */
-chrome.power.releaseKeepAwake = function() {};
-
-
-/**
- * @constructor
- */
-function Tab() {}
-
-
-/** @type {number} */
-Tab.prototype.id;
-
-
-/** @type {number} */
-Tab.prototype.index;
-
-
-/** @type {number} */
-Tab.prototype.windowId;
-
-
-/** @type {number} */
-Tab.prototype.openerTabId;
-
-
-/** @type {boolean} */
-Tab.prototype.highlighted;
-
-
-/** @type {boolean} */
-Tab.prototype.active;
-
-
-/** @type {boolean} */
-Tab.prototype.pinned;
-
-
-/** @type {string} */
-Tab.prototype.url;
-
-
-/** @type {string} */
-Tab.prototype.title;
-
-
-/** @type {string} */
-Tab.prototype.favIconUrl;
-
-
-/** @type {string} */
-Tab.prototype.status;
-
-
-/** @type {boolean} */
-Tab.prototype.incognito;
-
-
-
-/**
- * @constructor
- */
-function ChromeWindow() {}
-
-
-/** @type {number} */
-ChromeWindow.prototype.id;
-
-
-/** @type {boolean} */
-ChromeWindow.prototype.focused;
-
-
-/** @type {number} */
-ChromeWindow.prototype.top;
-
-
-/** @type {number} */
-ChromeWindow.prototype.left;
-
-
-/** @type {number} */
-ChromeWindow.prototype.width;
-
-
-/** @type {number} */
-ChromeWindow.prototype.height;
-
-
-/** @type {Array<Tab>} */
-ChromeWindow.prototype.tabs;
-
-
-/** @type {boolean} */
-ChromeWindow.prototype.incognito;
-
-
-/** @type {string} */
-ChromeWindow.prototype.type;
-
-
-/** @type {string} */
-ChromeWindow.prototype.state;
-
-
-/** @type {boolean} */
-ChromeWindow.prototype.alwaysOnTop;
-
-
-
-/**
- * @constructor
- */
-function ChromeEvent() {}
-
-
-/** @param {Function} callback */
-ChromeEvent.prototype.addListener = function(callback) {};
-
-
-/** @param {Function} callback */
-ChromeEvent.prototype.removeListener = function(callback) {};
-
-
-/**
- * @param {Function} callback
- * @return {boolean}
- */
-ChromeEvent.prototype.hasListener = function(callback) {};
-
-
-/** @return {boolean} */
-ChromeEvent.prototype.hasListeners = function() {};
-
-
-/**
- * @constructor
- */
-function Port() {}
-
-
-/** @type {string} */
-Port.prototype.name;
-
-
-/** @type {ChromeEvent} */
-Port.prototype.onDisconnect;
-
-
-/** @type {ChromeEvent} */
-Port.prototype.onMessage;
-
-
-/** @type {MessageSender} */
-Port.prototype.sender;
-
-
-/**
- * @param {Object<string>} obj Message object.
- */
-Port.prototype.postMessage = function(obj) {};
-
-
-/**
- * Note: as of 2012-04-12, this function is no longer documented on
- * the public web pages, but there are still existing usages.
- */
-Port.prototype.disconnect = function() {};
-
-
-
-/**
- * @constructor
- */
-function MessageSender() {}
-
-
-/** @type {!Tab|undefined} */
-MessageSender.prototype.tab;
-
-
-/** @type {string|undefined} */
-MessageSender.prototype.id;
-
-
-/** @type {string|undefined} */
-MessageSender.prototype.url;
-
-
-/** @type {string|undefined} */
-MessageSender.prototype.tlsChannelId;
-
-
-
-/**
- * @constructor
- */
-function BookmarkTreeNode() {}
-
-
-/** @type {string} */
-BookmarkTreeNode.prototype.id;
-
-
-/** @type {string} */
-BookmarkTreeNode.prototype.parentId;
-
-
-/** @type {number} */
-BookmarkTreeNode.prototype.index;
-
-
-/** @type {string} */
-BookmarkTreeNode.prototype.url;
-
-
-/** @type {string} */
-BookmarkTreeNode.prototype.title;
-
-
-/** @type {number} */
-BookmarkTreeNode.prototype.dateAdded;
-
-
-/** @type {number} */
-BookmarkTreeNode.prototype.dateGroupModified;
-
-
-/** @type {Array<BookmarkTreeNode>} */
-BookmarkTreeNode.prototype.children;
-
-
-
-/**
- * @constructor
- */
-function Cookie() {}
-
-
-/** @type {string} */
-Cookie.prototype.name;
-
-
-/** @type {string} */
-Cookie.prototype.value;
-
-
-/** @type {string} */
-Cookie.prototype.domain;
-
-
-/** @type {boolean} */
-Cookie.prototype.hostOnly;
-
-
-/** @type {string} */
-Cookie.prototype.path;
-
-
-/** @type {boolean} */
-Cookie.prototype.secure;
-
-
-/** @type {boolean} */
-Cookie.prototype.httpOnly;
-
-
-/** @type {boolean} */
-Cookie.prototype.session;
-
-
-/** @type {number} */
-Cookie.prototype.expirationDate;
-
-
-/** @type {string} */
-Cookie.prototype.storeId;
-
-
-
-/**
- * @constructor
- */
-function Debuggee() {}
-
-
-/** @type {number} */
-Debuggee.prototype.tabId;
-
-
-/**
- * @constructor
- */
-function HistoryItem() {}
-
-
-/** @type {string} */
-HistoryItem.prototype.id;
-
-
-/** @type {string} */
-HistoryItem.prototype.url;
-
-
-/** @type {string} */
-HistoryItem.prototype.title;
-
-
-/** @type {number} */
-HistoryItem.prototype.lastVisitTime;
-
-
-/** @type {number} */
-HistoryItem.prototype.visitCount;
-
-
-/** @type {number} */
-HistoryItem.prototype.typedCount;
-
-
-
-/**
- * @constructor
- */
-function VisitItem() {}
-
-
-/** @type {string} */
-VisitItem.prototype.id;
-
-
-/** @type {string} */
-VisitItem.prototype.visitId;
-
-
-/** @type {number} */
-VisitItem.prototype.visitTime;
-
-
-/** @type {string} */
-VisitItem.prototype.referringVisitId;
-
-
-/** @type {string} */
-VisitItem.prototype.transition;
-
-
-/**
- * @const
- */
-chrome.storage = {};
-
-
-/**
- * @const
- */
-chrome.storage.local = {};
-
-
-/**
- * @param {string|!Object|null} keys
- * @param {function(Object, string)} callback
- */
-chrome.storage.local.get = function(keys, callback) {};
-
-
-/**
- * @param {Object} items
- * @param {function()=} opt_callback
- */
-chrome.storage.local.set = function(items, opt_callback) {};
-
-
-/**
- * @param {string|!Object|null} keys
- * @param {function()=} opt_callback
- */
-chrome.storage.local.remove = function(keys, opt_callback) {};
-
-
-/**
- * @type {ChromeEvent}
- */
-chrome.storage.onChanged;
-
+// TODO: Move these to //third_party/closure_compiler/externs.
// Begin auto generated externs; do not edit.
// The following was generated from:
@@ -1603,17 +404,45 @@ chrome.automation.AutomationNode.prototype.indexInParent;
/**
- * @type {{
- * name: string,
- * url: string,
- * value: string,
- * textSelStart: number,
- * textSelEnd: number,
- * wordStarts: Array<number>,
- * wordEnds: Array<number>
- * }}
+ * @type {string}
+ */
+chrome.automation.AutomationNode.prototype.name;
+
+
+/**
+ * @type {string}
+ */
+chrome.automation.AutomationNode.prototype.url;
+
+
+/**
+ * @type {string}
+ */
+chrome.automation.AutomationNode.prototype.value;
+
+
+/**
+ * @type {number}
+ */
+chrome.automation.AutomationNode.prototype.textSelStart;
+
+
+/**
+ * @type {number}
*/
-chrome.automation.AutomationNode.prototype.attributes;
+chrome.automation.AutomationNode.prototype.textSelEnd;
+
+
+/**
+ * @type {Array<number>}
+ */
+chrome.automation.AutomationNode.prototype.wordStarts;
+
+
+/**
+ * @type {Array<number>}
+ */
+chrome.automation.AutomationNode.prototype.wordEnds;
/**
@@ -1715,6 +544,10 @@ chrome.automation.AutomationNode.prototype.doDefault = function() {};
chrome.automation.AutomationNode.prototype.focus = function() {};
+
+chrome.automation.AutomationNode.prototype.showContextMenu = function() {};
+
+
/** @type {string} */
chrome.automation.AutomationNode.prototype.containerLiveStatus;
@@ -1732,22 +565,3 @@ chrome.automation.AutomationNode.prototype.containerLiveBusy;
* @param {Object} findParams
*/
chrome.automation.AutomationNode.prototype.find = function(findParams) {};
-
-
-/**
- * @const
- */
-chrome.commands = {};
-
-
-/**
- * @type {ChromeEvent}
- */
-chrome.commands.onCommand;
-
-/**
- * @param {function(Array<{description: string,
- * name: string,
- * shortcut: string}>): void} callback
- */
-chrome.commands.getAll = function(callback) {};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/chromevox.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/chromevox.js
index db20382a06a..02df08baf21 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/chromevox.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/chromevox.js
@@ -150,11 +150,11 @@ cvox.ChromeVox.verbosity = cvox.VERBOSITY_VERBOSE;
cvox.ChromeVox.typingEcho = 0;
/**
* Echoing on key press events.
- * @type {Object<string, boolean>}
+ * @type {Object<boolean>}
*/
cvox.ChromeVox.keyEcho = {};
/**
- * @type {Object<string, {x:number, y:number}>}
+ * @type {Object<{x:number, y:number}>}
*/
cvox.ChromeVox.position = {};
/**
@@ -184,7 +184,7 @@ if (cvox.ChromeVox.isChromeOS) {
* @type {!Array<cvox.KeySequence>}
*/
cvox.ChromeVox.sequenceSwitchKeyCodes = [];
-/** @type {Object<string, boolean>} */
+/** @type {Object<boolean>} */
cvox.ChromeVox.visitedUrls = {};
/**
* This function can be called before doing an operation that may trigger
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/command_store.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/command_store.js
index 3fdf69e409e..d50fe47b9d8 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/command_store.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/command_store.js
@@ -95,19 +95,18 @@ cvox.CommandStore.commandsForCategory = function(category) {
/**
* List of commands and their properties
- * @type {Object<string, {forward: (undefined|boolean),
- * backward: (undefined|boolean),
- * announce: boolean,
- * category: (undefined|string),
- * findNext: (undefined|string),
- * doDefault: (undefined|boolean),
- * msgId: (undefined|string),
- * nodeList: (undefined|string),
- * platformFilter: (undefined|cvox.PlatformFilter),
- * skipInput: (undefined|boolean),
- * allowEvents: (undefined|boolean),
- * disallowContinuation: (undefined|boolean)
- * }>}
+ * @type {Object<{forward: (undefined|boolean),
+ * backward: (undefined|boolean),
+ * announce: boolean,
+ * category: (undefined|string),
+ * findNext: (undefined|string),
+ * doDefault: (undefined|boolean),
+ * msgId: (undefined|string),
+ * nodeList: (undefined|string),
+ * platformFilter: (undefined|cvox.PlatformFilter),
+ * skipInput: (undefined|boolean),
+ * allowEvents: (undefined|boolean),
+ * disallowContinuation: (undefined|boolean)}>}
* forward: Whether this command points forward.
* backward: Whether this command points backward. If neither forward or
* backward are specified, it stays facing in the current direction.
@@ -678,9 +677,9 @@ cvox.CommandStore.CMD_WHITELIST = {
/**
* List of find next commands and their associated data.
- * @type {Object<string, {predicate: string,
- * forwardError: string,
- * backwardError: string}>}
+ * @type {Object<{predicate: string,
+ * forwardError: string,
+ * backwardError: string}>}
* predicate: The name of the predicate. This must be defined in DomPredicates.
* forwardError: The message id of the error string when moving forward.
* backwardError: The message id of the error string when moving backward.
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/description_util.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/description_util.js
index 0fb55784c3d..237bb06d939 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/description_util.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/description_util.js
@@ -23,7 +23,7 @@ goog.require('cvox.TraverseMath');
/**
* Lists all Node tagName's who's description is derived from its subtree.
- * @type {Object<string, boolean>}
+ * @type {Object<boolean>}
*/
cvox.DescriptionUtil.COLLECTION_NODE_TYPE = {
'H1': true,
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/dom_util.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/dom_util.js
index f27290da55b..ac2ba476e52 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/dom_util.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/dom_util.js
@@ -949,8 +949,7 @@ cvox.DomUtil.getImageTitle = function(node) {
* the complete set of ids they map to, so that we can skip elements that
* just label other elements and not double-speak them. We cache this
* result and then throw it away at the next event loop.
- * @return {Object<string, boolean>} Set of all ids that are mapped
- * by aria-labelledby.
+ * @return {Object<boolean>} Set of all ids that are mapped by aria-labelledby.
*/
cvox.DomUtil.getLabelledByTargets = function() {
if (cvox.labelledByTargets) {
@@ -2262,8 +2261,8 @@ cvox.DomUtil.toArray = function(nodeList) {
/**
* Creates a new element with the same attributes and no children.
* @param {Node|Text} node A node to clone.
- * @param {Object<string, boolean>} skipattrs Set the attribute to true to
- * skip it during cloning.
+ * @param {Object<boolean>} skipattrs Set the attribute to true to skip it
+ * during cloning.
* @return {Node|Text} The cloned node.
*/
cvox.DomUtil.shallowChildlessClone = function(node, skipattrs) {
@@ -2290,8 +2289,8 @@ cvox.DomUtil.shallowChildlessClone = function(node, skipattrs) {
/**
* Creates a new element with the same attributes and clones of children.
* @param {Node|Text} node A node to clone.
- * @param {Object<string, boolean>} skipattrs Set the attribute to true to
- * skip it during cloning.
+ * @param {Object<boolean>} skipattrs Set the attribute to true to skip it
+ * during cloning.
* @return {Node|Text} The cloned node.
*/
cvox.DomUtil.deepClone = function(node, skipattrs) {
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/editable_text_test.unitjs b/chromium/chrome/browser/resources/chromeos/chromevox/common/editable_text_test.unitjs
index 2df3086d66b..0d00d79d04f 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/editable_text_test.unitjs
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/editable_text_test.unitjs
@@ -16,14 +16,14 @@ function TestTts() {
/**
* The strings that were spoken since the last call to get().
- * @type {Array.<string>}
+ * @type {Array<string>}
*/
TestTts.prototype.strings;
/**
* Returns the list of strings spoken since the last time this method was
* called, and then clears the list.
- * @return {Array.<string>} The list of strings.
+ * @return {Array<string>} The list of strings.
*/
TestTts.prototype.get = function() {
var result = this.strings;
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/externs.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/externs.js
index 2e2886d4237..6ae51f423b0 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/externs.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/externs.js
@@ -2,6 +2,4 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Range.prototype.getBoundingClientRect;
Document.prototype.documentElement.innerWidth;
-Document.prototype.documentElement.head;
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_attr.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_attr.js
index 55428e861fb..940121dc852 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_attr.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_attr.js
@@ -108,7 +108,7 @@ cvox.SemanticAttr = function() {
// record pairs of opening/closing and top/bottom fences.
/**
* Mapping opening to closing fences.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
this.openClosePairs =
{
@@ -137,7 +137,7 @@ cvox.SemanticAttr = function() {
};
/**
* Mapping top to bottom fences.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
this.topBottomPairs =
{
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_util.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_util.js
index b444a584bdf..8d996874372 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_util.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/math_semantic_util.js
@@ -17,7 +17,7 @@ cvox.SemanticUtil = function() { };
/**
* Merges keys of objects into an array.
- * @param {...Object<string, string>} objects Optional objects.
+ * @param {...Object<string>} objects Optional objects.
* @return {Array<string>} Array of all keys of the objects.
*/
cvox.SemanticUtil.objectsToKeys = function(objects) {
@@ -29,7 +29,7 @@ cvox.SemanticUtil.objectsToKeys = function(objects) {
/**
* Merges values of objects into an array.
- * @param {...Object<string, string>} objects Optional objects.
+ * @param {...Object<string>} objects Optional objects.
* @return {Array<string>} Array of all values of the objects.
*/
cvox.SemanticUtil.objectsToValues = function(objects) {
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/memoize.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/memoize.js
index 227b26f2646..0ac3f6386ac 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/memoize.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/memoize.js
@@ -51,7 +51,7 @@ cvox.Memoize = function() {
* to function result. This variable is null when we're out of scope, and it's
* a map from string to WeakMap to result when we're in scope.
*
- * @type {?Object<string, WeakMap<Node, *> >}
+ * @type {?Object<WeakMap<Node, *> >}
* @private
*/
cvox.Memoize.nodeMap_ = null;
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/spannable.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/spannable.js
index b4773e274a4..be77ba04ae7 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/spannable.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/spannable.js
@@ -69,6 +69,12 @@ cvox.Spannable.prototype.setSpan = function(value, start, end) {
// Zero-length spans are explicitly allowed, because it is possible to
// query for position by annotation as well as the reverse.
this.spans_.push({ value: value, start: start, end: end });
+ this.spans_.sort(function(a, b) {
+ var ret = a.start - b.start;
+ if (ret == 0)
+ ret = a.end - b.end;
+ return ret;
+ });
} else {
throw new RangeError('span out of range (start=' + start +
', end=' + end + ', len=' + this.string_.length + ')');
@@ -141,6 +147,8 @@ cvox.Spannable.prototype.getSpanInstanceOf = function(constructor) {
/**
* Returns all span values which are an instance of a given constructor.
+ * Spans are returned in the order of their starting index and ending index
+ * for spans with equals tarting indices.
* @param {!Function} constructor Constructor.
* @return {!Array<Object>} Array of object.
*/
@@ -420,7 +428,7 @@ cvox.Spannable.SerializedSpan_;
/**
* Maps type names to serialization info objects.
- * @type {Object<string, cvox.Spannable.SerializeInfo_>}
+ * @type {Object<cvox.Spannable.SerializeInfo_>}
* @private
*/
cvox.Spannable.serializableSpansByName_ = {};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_math.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_math.js
index df4814ee58d..f14d8c29242 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_math.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_math.js
@@ -30,14 +30,14 @@ cvox.TraverseMath = function() {
/**
* Dictionary of all LaTeX elements in the page if there are any.
- * @type {!Object<string, !Node>}
+ * @type {!Object<!Node>}
* @private
*/
this.allTexs_ = {};
/**
* Dictionary of all MathJaxs elements in the page if there are any.
- * @type {!Object<string, !Node>}
+ * @type {!Object<!Node>}
* @private
*/
this.allMathjaxs_ = {};
@@ -45,7 +45,7 @@ cvox.TraverseMath = function() {
/**
* Dictionary of all MathJaxs elements that have not yet been translated at
* page load or during MathJax rendering.
- * @type {!Object<string, !Node>}
+ * @type {!Object<!Node>}
* @private
*/
this.todoMathjaxs_ = {};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js
index 7ae41862861..a77ac3eb284 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js
@@ -548,8 +548,8 @@ cvox.TraverseUtil.getPreviousWord = function(startCursor, endCursor,
* current word should break.
* @param {Array<Element>} elementsEntered Any HTML elements entered.
* @param {Array<Element>} elementsLeft Any HTML elements left.
- * @param {Object<string, boolean>} breakTags Associative array of tags
- * that should break.
+ * @param {Object<boolean>} breakTags Associative array of tags that should
+ * break.
* @return {boolean} True if elementsEntered or elementsLeft include an
* element with one of these tags.
*/
@@ -586,8 +586,8 @@ cvox.TraverseUtil.includesBreakTagOrSkippedNode = function(
* sentence. On exit, will point to the end of the returned string.
* @param {Array<Element>} elementsEntered Any HTML elements entered.
* @param {Array<Element>} elementsLeft Any HTML elements left.
- * @param {Object<string, boolean>} breakTags Associative array of tags
- * that should break the sentence.
+ * @param {Object<boolean>} breakTags Associative array of tags that should
+ * break the sentence.
* @return {?string} The next sentence, or null if the bottom of the
* document has been reached.
*/
@@ -612,8 +612,8 @@ cvox.TraverseUtil.getNextSentence = function(
* @param {cvox.Cursor} endCursor On exit, the end of the returned string.
* @param {Array<Element>} elementsEntered Any HTML elements entered.
* @param {Array<Element>} elementsLeft Any HTML elements left.
- * @param {Object<string, boolean>} breakTags Associative array of tags
- * that should break the sentence.
+ * @param {Object<boolean>} breakTags Associative array of tags that should
+ * break the sentence.
* @return {?string} The previous sentence, or null if the bottom of the
* document has been reached.
*/
@@ -638,8 +638,8 @@ cvox.TraverseUtil.getPreviousSentence = function(
* line. On exit, will point to the end of the returned string.
* @param {Array<Element>} elementsEntered Any HTML elements entered.
* @param {Array<Element>} elementsLeft Any HTML elements left.
- * @param {Object<string, boolean>} breakTags Associative array of tags
- * that should break the line.
+ * @param {Object<boolean>} breakTags Associative array of tags that should
+ * break the line.
* @return {?string} The next line, or null if the bottom of the
* document has been reached.
*/
@@ -684,9 +684,9 @@ cvox.TraverseUtil.getNextLine = function(
* @param {cvox.Cursor} endCursor On exit, the end of the returned string.
* @param {Array<Element>} elementsEntered Any HTML elements entered.
* @param {Array<Element>} elementsLeft Any HTML elements left.
- * @param {Object<string, boolean>} breakTags Associative array of tags
- * that should break the line.
- * @return {?string} The previous line, or null if the bottom of the
+ * @param {Object<boolean>} breakTags Associative array of tags that should
+ * break the line.
+ * @return {?string} The previous line, or null if the bottom of the
* document has been reached.
*/
cvox.TraverseUtil.getPreviousLine = function(
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js
index 9dedefa5856..0138cae5fa1 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js
@@ -128,10 +128,21 @@ AutomationPredicate.visitedLink = function(node) {
* @param {chrome.automation.AutomationNode} node
* @return {boolean}
*/
+AutomationPredicate.focused = function(node) {
+ return node.state.focused;
+};
+
+/**
+ * @param {chrome.automation.AutomationNode} node
+ * @return {boolean}
+ */
AutomationPredicate.leaf = function(node) {
return !node.firstChild ||
node.role == RoleType.button ||
+ node.role == RoleType.buttonDropDown ||
+ node.role == RoleType.popUpButton ||
node.role == RoleType.slider ||
+ node.role == RoleType.textField ||
node.children.every(function(n) {
return n.state.invisible;
});
@@ -143,7 +154,7 @@ AutomationPredicate.leaf = function(node) {
*/
AutomationPredicate.leafWithText = function(node) {
return AutomationPredicate.leaf(node) &&
- !!(node.attributes.name || node.attributes.value);
+ !!(node.name || node.value);
};
/**
@@ -160,13 +171,17 @@ AutomationPredicate.linebreak = function(first, second) {
};
/**
- * Leaf nodes that should be ignored.
+ * Leaf nodes that should be ignored while traversing the automation tree. For
+ * example, apply this predicate when moving to the next element.
* @param {chrome.automation.AutomationNode} node
* @return {boolean}
*/
AutomationPredicate.shouldIgnoreLeaf = function(node) {
return AutomationPredicate.leaf(node) &&
- node.role == RoleType.client;
+ (node.role == RoleType.client ||
+ node.role == RoleType.div ||
+ (node.role == 'image' && node.name == '') ||
+ (node.role == 'staticText' && node.value == ''));
};
}); // goog.scope
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util.js b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util.js
index 4275a1ccae1..d4e18bd88f1 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util.js
@@ -95,6 +95,8 @@ AutomationUtil.findNextSubtree = function(cur, dir) {
if (!AutomationUtil.isInSameTree(cur, cur.parent))
return null;
cur = cur.parent;
+ if (AutomationUtil.isTraversalRoot_(cur))
+ return null;
}
};
@@ -113,8 +115,10 @@ AutomationUtil.findNextNode = function(cur, dir, pred) {
return null;
cur = next;
next = AutomationUtil.findNodePre(next, dir, pred);
- if (next && AutomationPredicate.shouldIgnoreLeaf(next))
+ if (next && AutomationPredicate.shouldIgnoreLeaf(next)) {
+ cur = next;
next = null;
+ }
} while (!next);
return next;
};
@@ -249,4 +253,23 @@ AutomationUtil.isInSameTree = function(a, b) {
return a.root === b.root;
};
+/**
+ * Returns whether the given node should not be crossed when performing
+ * traversals up the ancestry chain.
+ * @param {AutomationNode} node
+ * @return {boolean}
+ * @private
+ */
+AutomationUtil.isTraversalRoot_ = function(node) {
+ switch (node.role) {
+ case 'dialog':
+ case 'window':
+ return true;
+ case 'toolbar':
+ return node.root.role == 'desktop';
+ default:
+ return false;
+ }
+};
+
}); // goog.scope
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
index 586fd374f1b..9763406e4a3 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
@@ -16,7 +16,9 @@ goog.require('ClassicCompatibility');
goog.require('Output');
goog.require('Output.EventType');
goog.require('cursors.Cursor');
+goog.require('cvox.BrailleKeyCommand');
goog.require('cvox.ChromeVoxEditableTextBase');
+goog.require('cvox.ExtensionBridge');
goog.scope(function() {
var AutomationNode = chrome.automation.AutomationNode;
@@ -61,7 +63,7 @@ Background = function() {
this.mode_ = ChromeVoxMode.CLASSIC;
/** @type {!ClassicCompatibility} @private */
- this.compat_ = new ClassicCompatibility(this.mode_ === ChromeVoxMode.COMPAT);
+ this.compat_ = new ClassicCompatibility();
// Manually bind all functions to |this|.
for (var func in this) {
@@ -75,7 +77,7 @@ Background = function() {
*/
this.listeners_ = {
alert: this.onEventDefault,
- focus: this.onEventDefault,
+ focus: this.onFocus,
hover: this.onEventDefault,
loadComplete: this.onLoadComplete,
menuStart: this.onEventDefault,
@@ -86,8 +88,6 @@ Background = function() {
valueChanged: this.onValueChanged
};
- // Register listeners for ...
- // Desktop.
chrome.automation.getDesktop(this.onGotDesktop);
};
@@ -127,18 +127,15 @@ Background.prototype = {
* @param {string} command
* @param {boolean=} opt_skipCompat Whether to skip compatibility checks.
*/
- onGotCommand: function(command, opt_skipCompat) {
+ onGotCommand: function(command, opt_skipCompat) {
if (!this.currentRange_)
return;
- if (!opt_skipCompat) {
+ if (!opt_skipCompat && this.mode_ === ChromeVoxMode.COMPAT) {
if (this.compat_.onGotCommand(command))
return;
}
- if (this.mode_ === ChromeVoxMode.CLASSIC)
- return;
-
var current = this.currentRange_;
var dir = Dir.FORWARD;
var pred = null;
@@ -281,7 +278,9 @@ Background.prototype = {
actionNode = actionNode.parent;
actionNode.doDefault();
}
- break;
+ // Skip all other processing; if focus changes, we should get an event
+ // for that.
+ return;
case 'continuousRead':
global.isReadingContinuously = true;
var continueReading = function(prevRange) {
@@ -302,6 +301,15 @@ Background.prototype = {
continueReading(null);
return;
+ case 'showContextMenu':
+ if (this.currentRange_) {
+ var actionNode = this.currentRange_.getStart().getNode();
+ if (actionNode.role == chrome.automation.RoleType.inlineTextBox)
+ actionNode = actionNode.parent;
+ actionNode.showContextMenu();
+ return;
+ }
+ break;
}
if (pred) {
@@ -311,18 +319,24 @@ Background.prototype = {
if (node) {
current = cursors.Range.fromNode(node);
} else {
+ if (predErrorMsg) {
cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(predErrorMsg),
- cvox.QueueMode.FLUSH);
+ cvox.QueueMode.FLUSH);
+ }
return;
}
}
if (current) {
// TODO(dtseng): Figure out what it means to focus a range.
- current.getStart().getNode().focus();
+ var actionNode = current.getStart().getNode();
+ if (actionNode.role == chrome.automation.RoleType.inlineTextBox)
+ actionNode = actionNode.parent;
+ actionNode.focus();
var prevRange = this.currentRange_;
this.currentRange_ = current;
+
new Output().withSpeechAndBraille(
this.currentRange_, prevRange, Output.EventType.NAVIGATE)
.go();
@@ -330,6 +344,40 @@ Background.prototype = {
},
/**
+ * Handles a braille command.
+ * @param {!cvox.BrailleKeyEvent} evt
+ * @return {boolean} True if evt was processed.
+ */
+ onGotBrailleCommand: function(evt) {
+ if (this.mode_ === ChromeVoxMode.CLASSIC)
+ return false;
+
+ switch (evt.command) {
+ case cvox.BrailleKeyCommand.PAN_LEFT:
+ this.onGotCommand('previousElement', true);
+ break;
+ case cvox.BrailleKeyCommand.PAN_RIGHT:
+ this.onGotCommand('nextElement', true);
+ break;
+ case cvox.BrailleKeyCommand.LINE_UP:
+ this.onGotCommand('previousLine', true);
+ break;
+ case cvox.BrailleKeyCommand.LINE_DOWN:
+ this.onGotCommand('nextLine', true);
+ break;
+ case cvox.BrailleKeyCommand.TOP:
+ this.onGotCommand('goToBeginning', true);
+ break;
+ case cvox.BrailleKeyCommand.BOTTOM:
+ this.onGotCommand('goToEnd', true);
+ break;
+ default:
+ return false;
+ }
+ return true;
+ },
+
+ /**
* Provides all feedback once ChromeVox's focus changes.
* @param {Object} evt
*/
@@ -343,11 +391,13 @@ Background.prototype = {
this.currentRange_ = cursors.Range.fromNode(node);
- // Check to see if we've crossed roots. Only care about focused roots.
- if (!prevRange ||
+ // Check to see if we've crossed roots. Continue if we've crossed roots or
+ // are not within web content.
+ if (node.root.role == 'desktop' ||
+ !prevRange ||
(prevRange.getStart().getNode().root != node.root &&
- node.root.focused))
- this.setupChromeVoxVariants_(node.root.attributes.url || '');
+ node.state.focused))
+ this.setupChromeVoxVariants_(node.root.docUrl || '');
// Don't process nodes inside of web content if ChromeVox Next is inactive.
if (node.root.role != chrome.automation.RoleType.desktop &&
@@ -356,17 +406,45 @@ Background.prototype = {
return;
}
+ // Don't output if focused node hasn't changed.
+ if (prevRange &&
+ evt.type == 'focus' &&
+ this.currentRange_.equals(prevRange))
+ return;
+
new Output().withSpeechAndBraille(
this.currentRange_, prevRange, evt.type)
.go();
},
/**
+ * Provides all feedback once a focus event fires.
+ * @param {Object} evt
+ */
+ onFocus: function(evt) {
+ // Don't process nodes inside of web content if ChromeVox Next is inactive.
+ if (evt.target.root.role != chrome.automation.RoleType.desktop &&
+ this.mode_ === ChromeVoxMode.CLASSIC)
+ return;
+
+ var node = evt.target;
+
+ // It doesn't make sense to focus the containing web area if a descendant
+ // has focused state.
+ if (node.role == 'rootWebArea') {
+ node = AutomationUtil.findNodePost(node,
+ Dir.FORWARD,
+ AutomationPredicate.focused) || node;
+ }
+ this.onEventDefault({target: node, type: 'focus'});
+ },
+
+ /**
* Provides all feedback once a load complete event fires.
* @param {Object} evt
*/
onLoadComplete: function(evt) {
- this.setupChromeVoxVariants_(evt.target.attributes.url);
+ this.setupChromeVoxVariants_(evt.target.docUrl);
// Don't process nodes inside of web content if ChromeVox Next is inactive.
if (evt.target.root.role != chrome.automation.RoleType.desktop &&
@@ -416,9 +494,9 @@ Background.prototype = {
}
var textChangeEvent = new cvox.TextChangeEvent(
- evt.target.attributes.value,
- evt.target.attributes.textSelStart,
- evt.target.attributes.textSelEnd,
+ evt.target.value,
+ evt.target.textSelStart,
+ evt.target.textSelEnd,
true); // triggered by user
if (!this.editableTextHandler ||
evt.target != this.currentRange_.getStart().getNode()) {
@@ -487,7 +565,7 @@ Background.prototype = {
* @param {?string} opt_prependFormatStr If set, a format string for
* cvox2.Output to prepend to the output.
* @private
- **/
+ */
outputLiveRegionChange_: function(node, opt_prependFormatStr) {
var range = cursors.Range.fromNode(node);
var output = new Output();
@@ -503,7 +581,11 @@ Background.prototype = {
* @private
*/
isWhitelistedForCompat_: function(url) {
- return url.indexOf('chrome://md-settings') != -1;
+ return url.indexOf('chrome://md-settings') != -1 ||
+ url.indexOf('chrome://oobe/login') != -1 ||
+ url.indexOf(
+ 'https://accounts.google.com/embedded/setup/chromeos') === 0 ||
+ url === '';
},
/**
@@ -523,30 +605,27 @@ Background.prototype = {
* @private
*/
setupChromeVoxVariants_: function(url) {
- if (this.mode_ === ChromeVoxMode.FORCE_NEXT)
- return;
-
- this.compat_.active = this.isWhitelistedForCompat_(url);
var mode = this.mode_;
- if (this.compat_.active)
- mode = ChromeVoxMode.COMPAT;
- else if (this.isWhitelistedForNext_(url))
- mode = ChromeVoxMode.NEXT;
- else
- mode = ChromeVoxMode.CLASSIC;
+ if (mode != ChromeVoxMode.FORCE_NEXT) {
+ if (this.isWhitelistedForCompat_(url))
+ mode = ChromeVoxMode.COMPAT;
+ else if (this.isWhitelistedForNext_(url))
+ mode = ChromeVoxMode.NEXT;
+ else
+ mode = ChromeVoxMode.CLASSIC;
+ }
this.setChromeVoxMode(mode);
},
/**
- * Disables classic ChromeVox.
- * @param {number} tabId The tab where ChromeVox classic is running in.
+ * Disables classic ChromeVox in current web content.
*/
- disableClassicChromeVox_: function(tabId) {
- chrome.tabs.executeScript(
- tabId,
- {'code': 'try { window.disableChromeVox(); } catch(e) { }\n',
- 'allFrames': true});
+ disableClassicChromeVox_: function() {
+ cvox.ExtensionBridge.send({
+ message: 'SYSTEM_COMMAND',
+ command: 'killChromeVox'
+ });
},
/**
@@ -554,9 +633,6 @@ Background.prototype = {
* @param {ChromeVoxMode} mode
*/
setChromeVoxMode: function(mode) {
- if (mode === this.mode_)
- return;
-
if (mode === ChromeVoxMode.NEXT ||
mode === ChromeVoxMode.COMPAT ||
mode === ChromeVoxMode.FORCE_NEXT) {
@@ -574,13 +650,15 @@ Background.prototype = {
// for tabs, re-enable.
// cvox.ChromeVox.injectChromeVoxIntoTabs(tabs);
} else {
- tabs.forEach(function(tab) {
- this.disableClassicChromeVox_(tab.id);
- }.bind(this));
+ // When in compat mode, if the focus is within the desktop tree proper,
+ // then do not disable content scripts.
+ if (this.currentRange_.getStart().getNode().root.role == 'desktop')
+ return;
+
+ this.disableClassicChromeVox_();
}
}.bind(this));
- this.compat_.active = mode === ChromeVoxMode.COMPAT;
this.mode_ = mode;
}
};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background_test.extjs b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background_test.extjs
index 1afd0a233e1..f14f64909f8 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background_test.extjs
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/background_test.extjs
@@ -200,7 +200,39 @@ TEST_F('BackgroundTest', 'LiveRegionRemoveElement', function() {
function(rootNode) {
var go = rootNode.find({ role: chrome.automation.RoleType.button });
go.doDefault();
- cvox.ChromeVox.tts.expectSpeech('removed: Hello, world', testDone);
+ cvox.ChromeVox.tts.expectSpeech('removed:');
+ cvox.ChromeVox.tts.expectSpeech('Hello, world', testDone);
cvox.ChromeVox.tts.finishExpectations();
}.bind(this));
});
+
+TEST_F('BackgroundTest', 'ShowContextMenu', function() {
+ this.runWithLoadedTree('<a href="a">a</a>',
+ function(rootNode) {
+ cvox.ChromeVox.tts.expectSpeech(' menu opened', testDone);
+
+ var go = rootNode.find({ role: chrome.automation.RoleType.link });
+ go.addEventListener('focus', function(e) {
+ this.doCmd('showContextMenu')();
+ }.bind(this), true);
+ go.focus();
+ }.bind(this));
+});
+
+TEST_F('BackgroundTest', 'InitialFocus', function() {
+ this.runWithLoadedTree('<a href="a">a</a>',
+ function(rootNode) {
+ cvox.ChromeVox.tts.expectSpeech('a link', testDone);
+
+ rootNode.focus();
+ }.bind(this));
+});
+
+TEST_F('BackgroundTest', 'AriaLabel', function() {
+ this.runWithLoadedTree('<a aria-label="foo" href="a">a</a>',
+ function(rootNode) {
+ cvox.ChromeVox.tts.expectSpeech('foo link', testDone);
+
+ rootNode.focus();
+ }.bind(this));
+});
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/classic_compatibility.js b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/classic_compatibility.js
index dae832c0c9c..a5a063e6b2d 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/classic_compatibility.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/classic_compatibility.js
@@ -9,19 +9,16 @@
goog.provide('ClassicCompatibility');
+goog.require('cvox.ExtensionBridge');
goog.require('cvox.KeyMap');
goog.require('cvox.KeySequence');
goog.require('cvox.KeyUtil');
goog.require('cvox.SimpleKeyEvent');
/**
- * @param {boolean=} opt_active Whether compatibility is currently active.
* @constructor
*/
-var ClassicCompatibility = function(opt_active) {
- /** @type {boolean} */
- this.active = !!opt_active;
-
+var ClassicCompatibility = function() {
/**
* @type {!Array<{description: string, name: string, shortcut: string}>}
* @private
@@ -31,9 +28,15 @@ var ClassicCompatibility = function(opt_active) {
/** @type {!cvox.KeyMap} */
this.keyMap = cvox.KeyMap.fromCurrentKeyMap();
- chrome.commands.getAll(function(commands) {
- this.commands_ = commands;
- }.bind(this));
+ // We grab the list of commands from the manifest because
+ // chrome.commands.getAll is buggy.
+ /** @type {!Object} */
+ var commands = chrome.runtime.getManifest()['commands'];
+ for (var key in commands) {
+ /** @type {{suggested_key: {chromeos: string}}} */
+ var command = commands[key];
+ this.commands_.push({name: key, shortcut: command.suggested_key.chromeos});
+ }
};
ClassicCompatibility.prototype = {
@@ -43,25 +46,45 @@ ClassicCompatibility.prototype = {
* @return {boolean} Whether the command was successfully processed.
*/
onGotCommand: function(command) {
- if (!this.active)
+ var evt = this.buildKeyEvent_(command);
+ if (!evt)
+ return false;
+ this.simulateKeyDownNext_(evt);
+ return true;
+ },
+
+ /**
+ * Processes a ChromeVox Next command while in CLASSIC mode.
+ * @param {string} command
+ * @return {boolean} Whether the command was successfully processed.
+ */
+ onGotClassicCommand: function(command) {
+ var evt = this.buildKeyEvent_(command);
+ if (!evt)
return false;
+ this.simulateKeyDownClassic_(evt);
+ return true;
+ },
+ /**
+ * @param {string} command
+ * @return {cvox.SimpleKeyEvent?}
+ */
+ buildKeyEvent_: function(command) {
var commandInfo = this.commands_.filter(function(c) {
return c.name == command;
}.bind(this))[0];
if (!commandInfo)
- return false;
+ return null;
var shortcut = commandInfo.shortcut;
- var evt = this.convertCommandShortcutToKeyEvent_(shortcut);
- this.simulateKeyDown_(evt);
- return true;
+ return this.convertCommandShortcutToKeyEvent_(shortcut);
},
/**
* @param {cvox.SimpleKeyEvent} evt
* @private
*/
- simulateKeyDown_: function(evt) {
+ simulateKeyDownNext_: function(evt) {
var keySequence = cvox.KeyUtil.keyEventToKeySequence(evt);
var classicCommand = this.keyMap.commandForKey(keySequence);
if (classicCommand) {
@@ -72,6 +95,21 @@ ClassicCompatibility.prototype = {
},
/**
+ * @param {cvox.SimpleKeyEvent} evt
+ * @private
+ */
+ simulateKeyDownClassic_: function(evt) {
+ var keySequence = cvox.KeyUtil.keyEventToKeySequence(evt);
+ var classicCommand = this.keyMap.commandForKey(keySequence);
+ if (classicCommand) {
+ cvox.ExtensionBridge.send({
+ 'message': 'USER_COMMAND',
+ 'command': classicCommand
+ });
+ }
+ },
+
+ /**
* @param {string} shortcut
* @return {cvox.SimpleKeyEvent}
* @private
@@ -96,16 +134,16 @@ ClassicCompatibility.prototype = {
case 'Space':
evt.keyCode = 32;
break;
- case 'Left Arrow':
+ case 'Left':
evt.keyCode = 37;
break;
- case 'Up Arrow':
+ case 'Up':
evt.keyCode = 38;
break;
- case 'Right Arrow':
+ case 'Right':
evt.keyCode = 39;
break;
- case 'Down Arrow':
+ case 'Down':
evt.keyCode = 40;
break;
default:
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js
index 82c0d5d981a..ac43bd70f3f 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js
@@ -119,7 +119,7 @@ cursors.Cursor.prototype = {
*/
getText: function(opt_node) {
var node = opt_node || this.node_;
- return node.attributes.name || node.attributes.value || '';
+ return node.name || node.value || '';
},
/**
@@ -158,11 +158,11 @@ cursors.Cursor.prototype = {
case Movement.BOUND:
if (newNode.role == Role.inlineTextBox) {
var start, end;
- for (var i = 0; i < newNode.attributes.wordStarts.length; i++) {
- if (newIndex >= newNode.attributes.wordStarts[i] &&
- newIndex <= newNode.attributes.wordEnds[i]) {
- start = newNode.attributes.wordStarts[i];
- end = newNode.attributes.wordEnds[i];
+ for (var i = 0; i < newNode.wordStarts.length; i++) {
+ if (newIndex >= newNode.wordStarts[i] &&
+ newIndex <= newNode.wordEnds[i]) {
+ start = newNode.wordStarts[i];
+ end = newNode.wordEnds[i];
break;
}
}
@@ -175,12 +175,12 @@ cursors.Cursor.prototype = {
case Movement.DIRECTIONAL:
if (newNode.role == Role.inlineTextBox) {
var start, end;
- for (var i = 0; i < newNode.attributes.wordStarts.length; i++) {
- if (newIndex >= newNode.attributes.wordStarts[i] &&
- newIndex <= newNode.attributes.wordEnds[i]) {
+ for (var i = 0; i < newNode.wordStarts.length; i++) {
+ if (newIndex >= newNode.wordStarts[i] &&
+ newIndex <= newNode.wordEnds[i]) {
var nextIndex = dir == Dir.FORWARD ? i + 1 : i - 1;
- start = newNode.attributes.wordStarts[nextIndex];
- end = newNode.attributes.wordEnds[nextIndex];
+ start = newNode.wordStarts[nextIndex];
+ end = newNode.wordEnds[nextIndex];
break;
}
}
@@ -197,7 +197,7 @@ cursors.Cursor.prototype = {
newIndex = 0;
if (dir == Dir.BACKWARD &&
newNode.role == Role.inlineTextBox) {
- var starts = newNode.attributes.wordStarts;
+ var starts = newNode.wordStarts;
newIndex = starts[starts.length - 1] || 0;
} else {
// TODO(dtseng): Figure out what to do for general nodes.
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs
index 5f045757832..6a0affb6023 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs
@@ -38,7 +38,7 @@ CursorsTest.prototype = {
/**
* Performs a series of operations on a cursor and asserts the result.
* @param {cursors.Cursor} cursor The starting cursor.
- * @param {!Array.<Array.<
+ * @param {!Array<Array<
* cursors.Unit|
* cursors.Movement|
* automationUtil.Dir|
@@ -58,7 +58,7 @@ CursorsTest.prototype = {
/**
* Performs a series of operations on a range and asserts the result.
* @param {cursors.Range} range The starting range.
- * @param {!Array.<Array.<
+ * @param {!Array<Array<
* cursors.Unit|
* cursors.Movement|
* automationUtil.Dir|
@@ -87,7 +87,7 @@ CursorsTest.prototype = {
if (goog.isDef(expected.index))
assertEquals(expected.index, cursor.getIndex());
if (goog.isDef(expected.value))
- assertEquals(expected.value, cursor.getNode().attributes.value);
+ assertEquals(expected.value, cursor.getNode().value);
},
/**
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js
index 3be31387ffb..581f90c9a4a 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js
@@ -32,9 +32,7 @@ var Dir = AutomationUtil.Dir;
* The format of these rules is as follows.
*
* $ prefix: used to substitute either an attribute or a specialized value from
- * an AutomationNode. Specialized values include role and state. Attributes
- * available for substitution are AutomationNode.prototype.attributes and
- * AutomationNode.prototype.state.
+ * an AutomationNode. Specialized values include role and state.
* For example, $value $role $enabled
* @ prefix: used to substitute a message. Note the ability to specify params to
* the message. For example, '@tag_html' '@selected_index($text_sel_start,
@@ -63,7 +61,7 @@ Output = function() {
/**
* Speech properties to apply to the entire output.
- * @type {!Object<string, *>}
+ * @type {!Object<*>}
*/
this.speechProperties_ = {};
};
@@ -76,9 +74,9 @@ Output.SPACE = ' ';
/**
* Metadata about supported automation roles.
- * @const {Object<string, {msgId: string,
- * earconId: (string|undefined),
- * inherits: (string|undefined)}>}
+ * @const {Object<{msgId: string,
+ * earconId: (string|undefined),
+ * inherits: (string|undefined)}>}
* msgId: the message id of the role.
* earconId: an optional earcon to play when encountering the role.
* inherits: inherits rules from this role.
@@ -108,6 +106,10 @@ Output.ROLE_INFO_ = {
msgId: 'tag_button',
earconId: 'BUTTON'
},
+ buttonDropDown: {
+ msgId: 'tag_button',
+ earconId: 'BUTTON'
+ },
cell: {
msgId: 'aria_role_gridcell'
},
@@ -223,10 +225,6 @@ Output.ROLE_INFO_ = {
msgId: 'aria_role_note',
inherits: 'abstractContainer'
},
- region: {
- msgId: 'aria_role_region',
- inherits: 'abstractContainer'
- },
popUpButton: {
msgId: 'tag_button',
earcon: 'LISTBOX'
@@ -237,6 +235,10 @@ Output.ROLE_INFO_ = {
radioGroup: {
msgId: 'aria_role_radiogroup',
},
+ region: {
+ msgId: 'aria_role_region',
+ inherits: 'abstractContainer'
+ },
rowHeader: {
msgId: 'aria_role_rowheader',
inherits: 'abstractContainer'
@@ -296,10 +298,9 @@ Output.ROLE_INFO_ = {
/**
* Metadata about supported automation states.
- * @const {!Object<string,
- * {on: {msgId: string, earconId: string},
- * off: {msgId: string, earconId: string},
- * omitted: {msgId: string, earconId: string}}>}
+ * @const {!Object<{on: {msgId: string, earconId: string},
+ * off: {msgId: string, earconId: string},
+ * omitted: {msgId: string, earconId: string}}>}
* on: info used to describe a state that is set to true.
* off: info used to describe a state that is set to false.
* omitted: info used to describe a state that is undefined.
@@ -345,7 +346,7 @@ Output.STATE_INFO_ = {
/**
* Rules specifying format of AutomationNodes for output.
- * @type {!Object<string, Object<string, Object<string, string>>>}
+ * @type {!Object<Object<Object<string>>>}
*/
Output.RULES = {
navigate: {
@@ -363,6 +364,9 @@ Output.RULES = {
alertDialog: {
enter: '$name $role $descendants'
},
+ cell: {
+ enter: '@column_granularity $tableCellColumnIndex'
+ },
checkBox: {
speak: '$name $role $checked'
},
@@ -422,6 +426,9 @@ Output.RULES = {
radioGroup: {
enter: '$name $role'
},
+ row: {
+ enter: '@row_granularity $tableRowIndex'
+ },
slider: {
speak: '@describe_slider($value, $name) $help'
},
@@ -433,7 +440,7 @@ Output.RULES = {
},
textField: {
speak: '$name $value $if(' +
- '$textInputType, @input_type_+$textInputType, @input_type_text)',
+ '$type, @input_type_+$type, @input_type_text)',
braille: ''
},
toolbar: {
@@ -759,12 +766,12 @@ Output.prototype = {
// All possible tokens based on prefix.
if (prefix == '$') {
if (token == 'value') {
- var text = node.attributes.value;
+ var text = node.value;
if (text !== undefined) {
- if (node.attributes.textSelStart !== undefined) {
+ if (node.textSelStart !== undefined) {
options.annotation.push(new Output.SelectionSpan(
- node.attributes.textSelStart,
- node.attributes.textSelEnd));
+ node.textSelStart,
+ node.textSelEnd));
}
}
// Annotate this as a name so we don't duplicate names from ancestors.
@@ -784,7 +791,12 @@ Output.prototype = {
}
earconFinder = earconFinder.parent;
}
- this.append_(buff, node.attributes.name, options);
+
+ // Pending finalization of name calculation; we must use the
+ // attributes property to access aria-label. See crbug.com/473220.
+ node.attributes = node.attributes || {};
+ var resolvedName = node.name || node.attributes['aria-label'];
+ this.append_(buff, resolvedName, options);
} else if (token == 'nameOrDescendants') {
options.annotation.push(token);
if (node.name)
@@ -845,9 +857,17 @@ Output.prototype = {
console.error('Missing role info for ' + node.role);
}
this.append_(buff, msg, options);
- } else if (node.attributes[token] !== undefined) {
+ } else if (token == 'tableRowIndex' ||
+ token == 'tableCellColumnIndex') {
+ var value = node[token];
+ if (!value)
+ return;
+ value = String(value + 1);
options.annotation.push(token);
- var value = node.attributes[token];
+ this.append_(buff, value, options);
+ } else if (node[token] !== undefined) {
+ options.annotation.push(token);
+ var value = node[token];
if (typeof value == 'number')
value = String(value);
this.append_(buff, value, options);
@@ -875,7 +895,7 @@ Output.prototype = {
if (token == 'if') {
var cond = tree.firstChild;
var attrib = cond.value.slice(1);
- if (node.attributes[attrib] || node.state[attrib])
+ if (node[attrib] || node.state[attrib])
this.format_(node, cond.nextSibling, buff);
else
this.format_(node, cond.nextSibling.nextSibling, buff);
@@ -901,7 +921,7 @@ Output.prototype = {
token = pieces.reduce(function(prev, cur) {
var lookup = cur;
if (cur[0] == '$')
- lookup = node.attributes[cur.slice(1)];
+ lookup = node[cur.slice(1)];
return prev + lookup;
}.bind(this), '');
var msgId = token;
@@ -964,6 +984,10 @@ Output.prototype = {
cursor = cursor.move(cursors.Unit.NODE,
cursors.Movement.DIRECTIONAL,
Dir.FORWARD);
+
+ // Reached a boundary.
+ if (cursor.getNode() == prevNode)
+ break;
}
var lastNode = range.getEnd().getNode();
rangeBuff.push.apply(rangeBuff, formatNodeAndAncestors(lastNode, prevNode));
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs
index 2f5caf455af..157f6cfc955 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs
@@ -216,9 +216,9 @@ TEST_F('OutputE2ETest', 'Input', function() {
{value: {startIndex: 0, endIndex: 0}, start: 1, end: 1},
{value: 'value', start: 1, end: 1},
{value: 'role', start: 2, end: 13}]},
- {string_: '||Time', spans_: [{value: 'name', start: 0, end: 0},
+ {string_: '||inputTime', spans_: [{value: 'name', start: 0, end: 0},
{value: 'value', start: 1, end: 1},
- {value: 'role', start: 2, end: 6}]},
+ {value: 'role', start: 2, end: 11}]},
{string_: '||Date control', spans_: [{value: 'name', start: 0, end: 0},
{value: 'value', start: 1, end: 1},
{value: 'role', start: 2, end: 14}]}
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/search.js b/chromium/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/search.js
index ad7feb0d573..ac6a42924b9 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/search.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/search.js
@@ -23,7 +23,7 @@ cvox.Search = function() {
/**
* Selectors to match results.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
cvox.Search.selectors = {};
@@ -36,7 +36,7 @@ cvox.Search.webSelectors = {
SPELL_SUGG_SELECT: '.ssp',
SPELL_CORRECTION_SELECT: '.sp_cnt',
KNOW_PANEL_SELECT: '.knop',
- RESULT_SELECT: 'li.g',
+ RESULT_SELECT: '.g',
RELATED_SELECT: '#brs'
};
@@ -412,7 +412,7 @@ cvox.Search.init = function() {
cvox.ChromeVox.tts.stop();
/* Determine the type of search. */
- var SELECTED_CLASS = 'hdtb_msel';
+ var SELECTED_CLASS = 'hdtb-msel';
var selected = document.getElementsByClassName(SELECTED_CLASS)[0];
if (!selected) {
return;
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/generate_manifest.gypi b/chromium/chrome/browser/resources/chromeos/chromevox/generate_manifest.gypi
index ab5cd4e04ba..758a73e77ef 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/generate_manifest.gypi
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/generate_manifest.gypi
@@ -8,6 +8,7 @@
#
# template_manifest_path: a valid Jinja2 file path.
# output_manifest_path: file path for the resulting manifest.
+# chromevox_extension_key: The extension key to include in the manifest.
#
# The following variables are optional:
#
@@ -21,7 +22,6 @@
'generate_manifest_script_path': 'tools/generate_manifest.py',
'is_guest_manifest%': 0,
'is_chromevox_classic%': 0,
- 'key': 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDltVl1k15pjRzuZfMc3B69inxwm2bZeZ2O8/zFO+NluHnBm3GJ3fzdOoFGJd+M16I8p7zxxQyHeDMfWYASyCeB8XnUEDKjqNLQfCnncsANzHsYoEbYj2nEUML2P13b9q+AAvpCBpAJ4cZp81e9n1y/vbSXHE4385cgkKueItzikQIDAQAB',
},
'includes': [
'../../../../../build/util/version.gypi',
@@ -41,7 +41,7 @@
'python',
'<(generate_manifest_script_path)',
'--is_guest_manifest=<(is_guest_manifest)',
- '--key=<(key)',
+ '--key=<(chromevox_extension_key)',
'--is_chromevox_classic=<(is_chromevox_classic)',
'--is_js_compressed=<(chromevox_compress_js)',
'--set_version=<(version_full)',
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/braille_background.js b/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/braille_background.js
index 9183a7b12fa..31ca0328e79 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/braille_background.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/braille_background.js
@@ -13,6 +13,7 @@ goog.require('cvox.BrailleDisplayManager');
goog.require('cvox.BrailleInputHandler');
goog.require('cvox.BrailleKeyEvent');
goog.require('cvox.BrailleTranslatorManager');
+goog.require('global');
/**
@@ -64,11 +65,7 @@ goog.inherits(cvox.BrailleBackground, cvox.AbstractBraille);
/** @override */
cvox.BrailleBackground.prototype.write = function(params) {
- this.lastContentId_ = null;
- this.lastContent_ = null;
- this.inputHandler_.onDisplayContentChanged(params.text);
- this.displayManager_.setContent(
- params, this.inputHandler_.getExpansionType());
+ this.setContent_(params, null);
};
@@ -94,16 +91,31 @@ cvox.BrailleBackground.prototype.getTranslatorManager = function() {
*/
cvox.BrailleBackground.prototype.onBrailleMessage = function(msg) {
if (msg['action'] == 'write') {
- this.lastContentId_ = msg['contentId'];
- this.lastContent_ = cvox.NavBraille.fromJson(msg['params']);
- this.inputHandler_.onDisplayContentChanged(this.lastContent_.text);
- this.displayManager_.setContent(
- this.lastContent_, this.inputHandler_.getExpansionType());
+ this.setContent_(cvox.NavBraille.fromJson(msg['params']),
+ msg['contentId']);
}
};
/**
+ * @param {!cvox.NavBraille} newContent
+ * @param {?string} newContentId
+ * @private
+ */
+cvox.BrailleBackground.prototype.setContent_ = function(
+ newContent, newContentId) {
+ var updateContent = function() {
+ this.lastContent_ = newContentId ? newContent : null;
+ this.lastContentId_ = newContentId;
+ this.displayManager_.setContent(
+ newContent, this.inputHandler_.getExpansionType());
+ }.bind(this);
+ this.inputHandler_.onDisplayContentChanged(newContent.text, updateContent);
+ updateContent();
+};
+
+
+/**
* Handles braille key events by dispatching either to the input handler or
* a content script.
* @param {!cvox.BrailleKeyEvent} brailleEvt The event.
@@ -127,6 +139,9 @@ cvox.BrailleBackground.prototype.onBrailleKeyEvent_ = function(
*/
cvox.BrailleBackground.prototype.sendCommand_ =
function(brailleEvt, content) {
+ if (global.backgroundObj &&
+ global.backgroundObj.onGotBrailleCommand(brailleEvt))
+ return;
var msg = {
'message': 'BRAILLE',
'args': brailleEvt
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/host.js b/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/host.js
index dda8a892bcc..b44711bf563 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/host.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/host.js
@@ -70,7 +70,7 @@ cvox.ChromeHost.prototype.init = function() {
if (prefs['position']) {
cvox.ChromeVox.position =
- /** @type {Object<string, {x:number, y:number}>} */ (
+ /** @type {Object<{x:number, y:number}>} */ (
JSON.parse(prefs['position']));
}
@@ -123,11 +123,18 @@ cvox.ChromeHost.prototype.init = function() {
cvox.ExtensionBridge.addMessageListener(function(msg, port) {
var message = msg['message'];
+ var cmd = msg['command'];
if (message == 'USER_COMMAND') {
- var cmd = msg['command'];
+ if (cmd != 'toggleChromeVox' && !cvox.ChromeVox.documentHasFocus()) {
+ return;
+ }
cvox.ChromeVoxUserCommands.commands[cmd](msg);
+ } else if (message == 'SYSTEM_COMMAND') {
+ if (cmd == 'killChromeVox') {
+ this.killChromeVox();
+ }
}
- });
+ }.bind(this));
cvox.ExtensionBridge.send({
'target': 'Prefs',
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/mathjax.js b/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/mathjax.js
index b03f7ac9c6a..a9f41566cba 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/mathjax.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/mathjax.js
@@ -24,6 +24,13 @@ cvox.ChromeMathJax = function() {
goog.base(this);
/**
+ * Set to when the bridge is initialized.
+ * @type {boolean}
+ * @private
+ */
+ this.initialized_ = false;
+
+ /**
* The port to communicate with the content script.
* @type {Port}
*/
@@ -95,7 +102,7 @@ cvox.ChromeMathJax.prototype.init = function() {
'chromevox/injected/mathjax_external_util.js'));
scripts.push(cvox.ChromeVox.host.getFileSrc('chromevox/injected/mathjax.js'));
scripts.push(cvox.ApiImplementation.siteSpecificScriptLoader);
- cvox.ScriptInstaller.installScript(
+ this.initialized_ = cvox.ScriptInstaller.installScript(
scripts, 'mathjax', undefined,
cvox.ApiImplementation.siteSpecificScriptBase);
};
@@ -105,7 +112,7 @@ cvox.ChromeMathJax.prototype.init = function() {
* Destructive Retrieval of a callback function from the mapping.
* @param {string} data The command to be sent to the content script.
* @param {Function} callback A callback function.
- * @param {Object<string, *>=} args Object of arguments.
+ * @param {Object<*>=} args Object of arguments.
*/
cvox.ChromeMathJax.prototype.postMsg = function(data, callback, args) {
args = args || {};
@@ -136,7 +143,7 @@ cvox.ChromeMathJax.prototype.portSetup = function(event) {
/**
* Call the appropriate Cvox function dealing with MathJax return values.
- * @param {{cmd: string, id: string, args: Object<string, string>}} message A
+ * @param {{cmd: string, id: string, args: Object<string>}} message A
* message object.
*/
cvox.ChromeMathJax.prototype.dispatchMessage = function(message) {
@@ -181,6 +188,11 @@ cvox.ChromeMathJax.prototype.applyBoolean = function(
* @override
*/
cvox.ChromeMathJax.prototype.isMathjaxActive = function(callback) {
+ if (!this.initialized_) {
+ callback(false);
+ return;
+ }
+
var retries = 0;
var fetch = goog.bind(function() {
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/tts_background.js b/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/tts_background.js
index 9eabcf4a5a6..c323d8020b0 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/tts_background.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/host/chrome/tts_background.js
@@ -128,11 +128,11 @@ cvox.TtsBackground = function(opt_enableMath) {
try {
/**
- * @type {Object<string, string>}
+ * @type {Object<string>}
* @private
* @const
*/
- this.PHONETIC_MAP_ = /** @type {Object<string, string>} */(
+ this.PHONETIC_MAP_ = /** @type {Object<string>} */(
JSON.parse(cvox.ChromeVox.msgs.getMsg('phonetic_map')));
} catch (e) {
console.log('Error; unable to parse phonetic map msg.');
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/host/interface/abstract_tts.js b/chromium/chrome/browser/resources/chromeos/chromevox/host/interface/abstract_tts.js
index 835f3fb4719..41eee772d6f 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/host/interface/abstract_tts.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/host/interface/abstract_tts.js
@@ -422,7 +422,7 @@ cvox.AbstractTts.DEBUG = true;
/**
* Character dictionary. These symbols are replaced with their human readable
* equivalents. This replacement only occurs for single character utterances.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
cvox.AbstractTts.CHARACTER_DICTIONARY = {
' ': 'space',
@@ -469,7 +469,7 @@ cvox.AbstractTts.CHARACTER_DICTIONARY = {
* should be spelled out the way most TTS engines will pronounce it
* correctly. This particular dictionary only handles letters and numbers,
* no symbols.
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
cvox.AbstractTts.PRONUNCIATION_DICTIONARY = {
'admob': 'ad-mob',
@@ -509,7 +509,7 @@ cvox.AbstractTts.pronunciationDictionaryRegexp_;
*
* For example, do not include '$' here because $2 should be read as
* "two dollars".
- * @type {Object<string, string>}
+ * @type {Object<string>}
*/
cvox.AbstractTts.SUBSTITUTION_DICTIONARY = {
'://': 'colon slash slash',
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2 b/chromium/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2
index 68b27ada976..31861f748fd 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2
@@ -21,7 +21,6 @@
"experimental",
"history",
"storage",
- "systemPrivate",
"tabs",
"tts",
"virtualKeyboardPrivate",
@@ -55,8 +54,8 @@
"automation": {
"desktop": true
},
-{% if is_chromevox_classic == '0' %}
"commands": {
+{% if is_chromevox_classic == '0' %}
"nextElement": {
"description": "__MSG_CHROMEVOX_NEXT_OBJECT__",
"suggested_key": {
@@ -278,9 +277,15 @@
"suggested_key": {
"chromeos": "Search+Shift+R"
}
+ },
+ "showContextMenu": {
+ "description": "__MSG_CHROMEVOX_SHOW_CONTEXT_MENU__",
+ "suggested_key": {
+ "chromeos": "Search+Ctrl+Space"
+ }
}
- },
{% endif %}
+ },
"options_page": "chromevox/background/options.html",
"default_locale": "en"
}
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/math_simple_store.js b/chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/math_simple_store.js
index 4136c84589e..dedc74b4719 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/math_simple_store.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/math_simple_store.js
@@ -34,7 +34,7 @@ goog.inherits(cvox.MathSimpleStore, cvox.MathStore);
* only into a list of speech rules.
* @param {string} name Name for the rules.
* @param {string} str String for precondition and constraints.
- * @param {Object<string, Object<string, string>>} mapping Simple string
+ * @param {Object<Object<string>>} mapping Simple string
* mapping.
*/
cvox.MathSimpleStore.prototype.defineRulesFromMappings = function(
@@ -58,7 +58,7 @@ cvox.MathSimpleStore.prototype.defineRulesFromMappings = function(
cvox.MathCompoundStore = function() {
/**
* A set of efficient substores.
- * @type {Object<string, cvox.MathStore>}
+ * @type {Object<cvox.MathStore>}
* @private
*/
this.subStores_ = {};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/speech_rule_functions.js b/chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/speech_rule_functions.js
index f4edabb8255..83f5ed9001e 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/speech_rule_functions.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/speech_rules/speech_rule_functions.js
@@ -24,7 +24,7 @@ cvox.SpeechRuleFunctions = function() { };
* Private superclass of all the custom function stores.
* @constructor
* @param {string} prefix A prefix string for the function names.
- * @param {Object<string, Function>} store Storage object.
+ * @param {Object<Function>} store Storage object.
* @private
*/
cvox.SpeechRuleFunctions.Store_ = function(prefix, store) {
@@ -70,7 +70,7 @@ cvox.SpeechRuleFunctions.CustomQuery;
*/
cvox.SpeechRuleFunctions.CustomQueries = function() {
var store =
- /** @type {Object<string, cvox.SpeechRuleFunctions.CustomQuery>} */ ({});
+ /** @type {Object<cvox.SpeechRuleFunctions.CustomQuery>} */ ({});
goog.base(this, 'CQF', store);
};
goog.inherits(cvox.SpeechRuleFunctions.CustomQueries,
@@ -90,7 +90,7 @@ cvox.SpeechRuleFunctions.CustomString;
*/
cvox.SpeechRuleFunctions.CustomStrings = function() {
var store =
- /** @type {Object<string, cvox.SpeechRuleFunctions.CustomString>} */ ({});
+ /** @type {Object<cvox.SpeechRuleFunctions.CustomString>} */ ({});
goog.base(this, 'CSF', store);
};
goog.inherits(cvox.SpeechRuleFunctions.CustomStrings,
@@ -110,7 +110,7 @@ cvox.SpeechRuleFunctions.ContextFunction;
*/
cvox.SpeechRuleFunctions.ContextFunctions = function() {
var store =
- /** @type {Object<string, cvox.SpeechRuleFunctions.ContextFunction>} */
+ /** @type {Object<cvox.SpeechRuleFunctions.ContextFunction>} */
({});
goog.base(this, 'CTXF', store);
};
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/strings/BUILD.gn b/chromium/chrome/browser/resources/chromeos/chromevox/strings/BUILD.gn
new file mode 100644
index 00000000000..9a7f8566756
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/strings/BUILD.gn
@@ -0,0 +1,71 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tools/grit/grit_rule.gni")
+
+chromevox_out_dir = "$root_out_dir/resources/chromeos/chromevox"
+
+grit("chromevox_strings") {
+ source = "chromevox_strings.grd"
+ outputs = [
+ "_locales/am/messages.json",
+ "_locales/ar/messages.json",
+ "_locales/bg/messages.json",
+ "_locales/bn/messages.json",
+ "_locales/ca/messages.json",
+ "_locales/cs/messages.json",
+ "_locales/da/messages.json",
+ "_locales/de/messages.json",
+ "_locales/el/messages.json",
+ "_locales/en_GB/messages.json",
+ "_locales/en/messages.json",
+ "_locales/es/messages.json",
+ "_locales/es_419/messages.json",
+ "_locales/et/messages.json",
+ "_locales/fa/messages.json",
+ "_locales/fi/messages.json",
+ "_locales/fil/messages.json",
+ "_locales/fr/messages.json",
+ "_locales/gu/messages.json",
+ "_locales/he/messages.json",
+ "_locales/hi/messages.json",
+ "_locales/hr/messages.json",
+ "_locales/hu/messages.json",
+ "_locales/id/messages.json",
+ "_locales/it/messages.json",
+ "_locales/ja/messages.json",
+ "_locales/kn/messages.json",
+ "_locales/ko/messages.json",
+ "_locales/lt/messages.json",
+ "_locales/lv/messages.json",
+ "_locales/ml/messages.json",
+ "_locales/mr/messages.json",
+ "_locales/ms/messages.json",
+ "_locales/nl/messages.json",
+ "_locales/nb/messages.json",
+ "_locales/pl/messages.json",
+ "_locales/pt_BR/messages.json",
+ "_locales/pt_PT/messages.json",
+ "_locales/ro/messages.json",
+ "_locales/ru/messages.json",
+ "_locales/sk/messages.json",
+ "_locales/sl/messages.json",
+ "_locales/sr/messages.json",
+ "_locales/sv/messages.json",
+ "_locales/sw/messages.json",
+ "_locales/ta/messages.json",
+ "_locales/te/messages.json",
+ "_locales/th/messages.json",
+ "_locales/tr/messages.json",
+ "_locales/uk/messages.json",
+ "_locales/vi/messages.json",
+ "_locales/zh_CN/messages.json",
+ "_locales/zh_TW/messages.json",
+ ]
+ output_dir = chromevox_out_dir
+
+ # Don't polute the extension directory with stamp and .d files.
+ depfile_dir = target_out_dir
+ resource_ids = ""
+}
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd b/chromium/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd
index 5ca3676de27..3a0578eb646 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd
@@ -2461,6 +2461,9 @@
<message desc="Describes the pass through key command. Shown in options page." name="IDS_CHROMEVOX_PASS_THROUGH_KEY_DESCRIPTION">
Pass through key
</message>
+ <message desc="Describes the show context menu command. Shown in options page." name="IDS_CHROMEVOX_SHOW_CONTEXT_MENU">
+ Show context menu
+ </message>
<message desc="Describes the braille caption feature. Braille captioning provides an overlay showing both text and braille of what ChromeVox would show on a refreshable braille display. Shown in the options page as a label." name="IDS_CHROMEVOX_BRAILLE_CAPTIONS">
Toggle braille captions
</message>
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_e2e_test_base.js b/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_e2e_test_base.js
index 16a0a5a32e9..533308a135e 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_e2e_test_base.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_e2e_test_base.js
@@ -3,8 +3,8 @@
// found in the LICENSE file.
GEN_INCLUDE([
- 'chrome/browser/resources/chromeos/chromevox/testing/common.js',
- 'chrome/browser/resources/chromeos/chromevox/testing/callback_helper.js']);
+ 'common.js',
+ 'callback_helper.js']);
/**
* Base test fixture for ChromeVox end to end tests.
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_next_e2e_test_base.js b/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_next_e2e_test_base.js
index 4493cec5082..bf0f03babf9 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_next_e2e_test_base.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_next_e2e_test_base.js
@@ -3,8 +3,7 @@
// found in the LICENSE file.
// Include test fixture.
-GEN_INCLUDE(['chrome/browser/resources/chromeos/chromevox/testing/' +
- 'chromevox_e2e_test_base.js']);
+GEN_INCLUDE(['chromevox_e2e_test_base.js']);
/**
* Base test fixture for ChromeVox Next end to end tests.
@@ -31,8 +30,8 @@ ChromeVoxNextE2ETest.prototype = {
callback = this.newCallback(callback);
chrome.automation.getDesktop(function(r) {
var listener = function(evt) {
- if (!evt.target.attributes.url ||
- evt.target.attributes.url.indexOf('test') == -1)
+ if (!evt.target.docUrl ||
+ evt.target.docUrl.indexOf('test') == -1)
return;
r.removeEventListener(listener);
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js b/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js
index 759591e1c7f..4c99e15d07d 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js
@@ -2,11 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-GEN_INCLUDE([
- 'chrome/browser/resources/chromeos/chromevox/testing/assert_additions.js']);
-GEN_INCLUDE([
- 'chrome/browser/resources/chromeos/chromevox/testing/common.js',
- 'chrome/browser/resources/chromeos/chromevox/testing/callback_helper.js']);
+GEN_INCLUDE(['assert_additions.js']);
+GEN_INCLUDE(['common.js',
+ 'callback_helper.js']);
/**
* Base test fixture for ChromeVox unit tests.
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/testing/tester.js b/chromium/chrome/browser/resources/chromeos/chromevox/testing/tester.js
index 13012d9d0c5..47dce50e718 100644
--- a/chromium/chrome/browser/resources/chromeos/chromevox/testing/tester.js
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/testing/tester.js
@@ -92,8 +92,8 @@ cvox.ChromeVoxTester.getUtteranceList = function() {
};
/**
- * @type {Object<string, number>} Map from a navigation strategy name
- * to the Navigation Manager strategy enum.
+ * @type {Object<number>} Map from a navigation strategy name to the Navigation
+ * Manager strategy enum.
*/
cvox.ChromeVoxTester.STRATEGY_MAP = {
'lineardom': cvox.NavigationShifter.GRANULARITIES.OBJECT,
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/tools/check_chromevox.py b/chromium/chrome/browser/resources/chromeos/chromevox/tools/check_chromevox.py
index d372b06e414..1c0f8c99daf 100755
--- a/chromium/chrome/browser/resources/chromeos/chromevox/tools/check_chromevox.py
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/tools/check_chromevox.py
@@ -34,18 +34,30 @@ def CVoxPath(path='.'):
return os.path.relpath(os.path.join(_SCRIPT_DIR, '..', path))
+def ChromeRootPath(path='.'):
+ '''Converts a path relative to the top-level chromevox directory to a
+ path relative to the current directory.
+ '''
+ return os.path.relpath(os.path.join(_CHROME_SOURCE_DIR, path))
+
+
+# Name of chrome extensions externs file.
+_CHROME_EXTENSIONS_EXTERNS = (
+ ChromeRootPath('third_party/closure_compiler/externs/chrome_extensions.js'))
+
# Externs common to many ChromeVox scripts.
_COMMON_EXTERNS = [
CVoxPath('common/externs.js'),
CVoxPath('common/chrome_extension_externs.js'),
CVoxPath('chromevox/background/externs.js'),
CVoxPath('chromevox/injected/externs.js'),
- CVoxPath('host/chrome/externs.js')]
+ CVoxPath('host/chrome/externs.js'),
+ _CHROME_EXTENSIONS_EXTERNS]
# List of top-level scripts and externs that we can check.
_TOP_LEVEL_SCRIPTS = [
[[CVoxPath('chromevox/background/kbexplorer_loader.js')],
- [CVoxPath('common/chrome_extension_externs.js')]],
+ [_CHROME_EXTENSIONS_EXTERNS]],
[[CVoxPath('chromevox/background/loader.js')], _COMMON_EXTERNS],
[[CVoxPath('chromevox/background/options_loader.js')], _COMMON_EXTERNS],
[[CVoxPath('chromevox/injected/loader.js')], _COMMON_EXTERNS],
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py b/chromium/chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py
index 69c6bc18b13..c3a2a4c070d 100755
--- a/chromium/chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py
@@ -11,17 +11,25 @@ import os
import sys
jinja2_path = os.path.normpath(os.path.join(os.path.abspath(__file__),
- *[os.path.pardir] * 7 + ['third_party']))
+ *[os.path.pardir] * 7 + ['third_party']))
nom_path = os.path.normpath(os.path.join(os.path.abspath(__file__),
*[os.path.pardir] * 7 + ['tools/json_comment_eater']))
+version_py_path = os.path.normpath(os.path.join(os.path.abspath(__file__),
+ *[os.path.pardir] * 7 + ['build/util']))
sys.path.insert(0, jinja2_path)
sys.path.insert(0, nom_path)
+sys.path.insert(0, version_py_path)
import jinja2
from json_comment_eater import Nom
+import version
'''Generate an extension manifest based on a template.'''
+def getChromeVersion(version_file):
+ values = version.fetch_values([version_file])
+ return version.subst_template('@MAJOR@.@MINOR@.@BUILD@.@PATCH@', values)
+
def processJinjaTemplate(input_file, output_file, context):
(template_path, template_name) = os.path.split(input_file)
@@ -57,6 +65,9 @@ def main():
parser.add_option(
'--key', action='store', metavar='KEY',
help='Set the extension key')
+ parser.add_option(
+ '--version_file', action='store', metavar='NAME',
+ help='File with version information')
options, args = parser.parse_args()
if len(args) != 1:
@@ -65,11 +76,16 @@ def main():
if options.output_manifest is None:
print >>sys.stderr, '--output_manifest option must be specified'
sys.exit(1)
- if options.set_version is None:
- print >>sys.stderr, '--set_version option must be specified'
+ if options.set_version is not None and options.version_file is not None:
+ print >>sys.stderr, ('only one of --set_version and --version_file may ' +
+ 'be specified')
+ if options.set_version is None and options.version_file is None:
+ print >>sys.stderr, ('one of --set_version or --version_file option ' +
+ 'must be specified')
sys.exit(1)
-
context = {k: v for k, v in parser.values.__dict__.items() if v is not None}
+ if options.version_file is not None:
+ context['set_version'] = getChromeVersion(options.version_file)
processJinjaTemplate(args[0], options.output_manifest, context)
if __name__ == '__main__':
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/tools/generate_test_messages.py b/chromium/chrome/browser/resources/chromeos/chromevox/tools/generate_test_messages.py
index 76601184cf0..17d4088ca34 100755
--- a/chromium/chrome/browser/resources/chromeos/chromevox/tools/generate_test_messages.py
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/tools/generate_test_messages.py
@@ -34,7 +34,7 @@ def main():
Die('Output file not specified')
if len(args) != 1:
Die('Exactly one input file must be specified')
- in_file_name = args[0];
+ in_file_name = args[0]
with open(in_file_name) as in_file:
json = in_file.read().strip()
with open(options.output_file, 'w') as out_file:
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py b/chromium/chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py
index f2c15c7ab6a..4b314389a2f 100755
--- a/chromium/chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py
@@ -236,10 +236,6 @@ def LinkOrCopyFiles(sources, dest_dir):
if not os.path.exists(os.path.dirname(dst)):
os.makedirs(os.path.dirname(dst))
if os.path.exists(dst):
- # Avoid clobbering the inode if source and destination refer to the
- # same file already.
- if os.path.samefile(src, dst):
- return
os.unlink(dst)
try:
os.link(src, dst)
@@ -277,6 +273,29 @@ def WriteOutput(bundle, format, out_file, dest_dir):
out_file.write('\n')
+def WriteStampfile(stampfile):
+ '''Writes a stamp file.
+
+ Args:
+ stampfile, string: name of stamp file to touch
+ '''
+ with open(stampfile, 'w') as file:
+ os.utime(stampfile, None)
+
+
+def WriteDepfile(depfile, outfile, infiles):
+ '''Writes a depfile.
+
+ Args:
+ depfile, string: name of dep file to write
+ outfile, string: Name of output file to use as the target in the generated
+ .d file.
+ infiles, list: File names to list as dependencies in the .d file.
+ '''
+ content = '%s: %s' % (outfile, ' '.join(infiles))
+ open(depfile, 'w').write(content)
+
+
def CreateOptionParser():
parser = optparse.OptionParser(description=__doc__)
parser.usage = '%prog [options] <top_level_file>...'
@@ -290,6 +309,9 @@ def CreateOptionParser():
parser.add_option('-r', '--root', dest='roots', action='append', default=[],
metavar='ROOT',
help='Roots of directory trees to scan for sources.')
+ parser.add_option('-M', '--module', dest='modules', action='append',
+ default=[], metavar='FILENAME',
+ help='Source modules to load')
parser.add_option('-w', '--rewrite_prefix', action='append', default=[],
dest='prefix_map', metavar='SPEC',
help=('Two path prefixes, separated by colons ' +
@@ -306,7 +328,12 @@ def CreateOptionParser():
parser.add_option('-x', '--exclude', action='append', default=[],
help=('Exclude files whose full path contains a match for '
'the given regular expression. Does not apply to '
- 'filenames given as arguments.'))
+ 'filenames given as arguments or with the '
+ '-m option.'))
+ parser.add_option('--depfile', metavar='FILENAME',
+ help='Store .d style dependencies in FILENAME')
+ parser.add_option('--stampfile', metavar='FILENAME',
+ help='Write empty stamp file')
return parser
@@ -314,15 +341,18 @@ def main():
options, args = CreateOptionParser().parse_args()
if len(args) < 1:
Die('At least one top-level source file must be specified.')
+ if options.depfile and not options.output_file:
+ Die('--depfile requires an output file')
will_output_source_text = options.mode in ('bundle', 'compressed_bundle')
path_rewriter = PathRewriter(options.prefix_map)
exclude = [re.compile(r) for r in options.exclude]
- sources = ReadSources(options.roots, args, will_output_source_text,
+ sources = ReadSources(options.roots, options.modules + args,
+ will_output_source_text or len(options.modules) > 0,
path_rewriter, exclude)
if will_output_source_text:
_MarkAsCompiled(sources)
bundle = Bundle()
- if len(options.roots) > 0:
+ if len(options.roots) > 0 or len(options.modules) > 0:
CalcDeps(bundle, sources, args)
bundle.Add((sources[name] for name in args))
if options.mode == 'copy':
@@ -339,7 +369,10 @@ def main():
finally:
if options.output_file:
out_file.close()
-
+ if options.stampfile:
+ WriteStampfile(options.stampfile)
+ if options.depfile:
+ WriteDepfile(options.depfile, options.output_file, bundle.GetInPaths())
if __name__ == '__main__':
main()
diff --git a/chromium/chrome/browser/resources/chromeos/compiled_resources.gyp b/chromium/chrome/browser/resources/chromeos/compiled_resources.gyp
index d921a8fba01..0cf95b6f53f 100644
--- a/chromium/chrome/browser/resources/chromeos/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/chromeos/compiled_resources.gyp
@@ -9,7 +9,7 @@
'depends': [
'../../../../chrome/browser/resources/options/compiled_resources.gyp:options_bundle',
],
- 'externs': ['<(CLOSURE_DIR)/externs/chrome_send_externs.js'],
+ 'externs': ['<(EXTERNS_DIR)/chrome_send.js'],
},
'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
}
diff --git a/chromium/chrome/browser/resources/chromeos/crosh_builtin/manifest.json b/chromium/chrome/browser/resources/chromeos/crosh_builtin/manifest.json
index c8bec38bb21..dc85297eef3 100644
--- a/chromium/chrome/browser/resources/chromeos/crosh_builtin/manifest.json
+++ b/chromium/chrome/browser/resources/chromeos/crosh_builtin/manifest.json
@@ -2,7 +2,7 @@
"key": "AAAAB3NzaC1yc2EAAAADAQABAAAAgQDtKfIKWzC4HnQbyAeddk5h78K7LSyrIEnLKDsQCNxhfsavJ+otV9JprDSz3nF7EHZokXiC72SHxdMndt2IlId/aRfhbU4UGidrmFBKg6v1Fs2zey6niB+xLOhJQMe9XtwVNWDpiGXHLmwNhG/FLhj0bBBf1HZDBV18Xp47ymLiuQ==",
"name": "crosh_builtin",
"manifest_version": 2,
- "content_security_policy": "script-src 'self'; object-src 'self'",
+ "content_security_policy": "script-src 'self' blob: filesystem:; object-src 'self' blob: filesystem:",
"version": "0.8.22",
"default_locale": "en",
"description": "Built-in terminal for crosh.",
diff --git a/chromium/chrome/browser/resources/chromeos/echo/manifest.json b/chromium/chrome/browser/resources/chromeos/echo/manifest.json
index fc7b750e6ea..c7bcde955bb 100644
--- a/chromium/chrome/browser/resources/chromeos/echo/manifest.json
+++ b/chromium/chrome/browser/resources/chromeos/echo/manifest.json
@@ -5,7 +5,7 @@
"version": "1.0.0",
"description": "Chrome Goodies",
"manifest_version": 2,
- "content_security_policy": "default-src 'self'; connect-src 'self' https://chromeos-registration.googleapis.com https://www.google-analytics.com",
+ "content_security_policy": "default-src 'self' blob: filesystem:; connect-src 'self' blob: filesystem: https://chromeos-registration.googleapis.com https://www.google-analytics.com",
"permissions": [
"alarms",
"cookies",
diff --git a/chromium/chrome/browser/resources/chromeos/emulator/device_emulator.css b/chromium/chrome/browser/resources/chromeos/emulator/device_emulator.css
new file mode 100644
index 00000000000..ac6a09af2a7
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/emulator/device_emulator.css
@@ -0,0 +1,26 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. */
+
+h1 {
+ font-family: Verdana, Helvetica;
+}
+
+/* Form Styles */
+.container {
+ margin: 0 auto;
+ width: 1000px;
+}
+
+.control-group,
+.form-group,
+.group-body,
+.group-header {
+ float: left;
+}
+
+.control-group {
+ display: inline-block;
+ margin: 10px 0;
+ width: 100%;
+}
diff --git a/chromium/chrome/browser/resources/chromeos/emulator/device_emulator.html b/chromium/chrome/browser/resources/chromeos/emulator/device_emulator.html
new file mode 100644
index 00000000000..58b6185de32
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/emulator/device_emulator.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Device Emulator</title>
+ <link rel="stylesheet" href="device_emulator.css">
+ <script src="chrome://resources/js/cr.js"></script>
+ <script src="chrome://resources/js/load_time_data.js"></script>
+ <script src="chrome://resources/js/util.js"></script>
+ <script src="strings.js"></script>
+ <script src="device_emulator.js"></script>
+</head>
+<body>
+ <div class="container">
+ <h1>ChromeOS Device Emulator</h1>
+ <hr>
+
+ <div class="form-group">
+ <div class="group-header">
+ <h2>Battery/Power Settings</h2>
+ </div>
+ <div class="group-body">
+ <form id="power-settings-form">
+ <div class="control-group">
+ <label>
+ Battery Present
+ <input id="battery-present-checkbox" type="checkbox">
+ </label>
+ </div>
+
+ <div class="control-group">
+ <label>
+ Battery Percentage
+ <input id="battery-percent-slider" type="range" min="0" max="100">
+ </label>
+ <input id="battery-percent-text" type="number" min="0" max="100">
+ </div>
+
+ <div class="control-group">
+ <label>
+ Power Source
+ <select id="power-source-select">
+ </select>
+ </label>
+ </div>
+
+ <div class="control-group">
+ <label>
+ <p>Set Battery Timing</p>
+ <label>
+ <p>
+ <input id="time-until-empty-radio" type="radio"
+ name="time-until-radio">
+ Time Until Battery Empty
+ </p>
+ </label>
+
+ <label>
+ <p>
+ <input id="time-until-full-radio" type="radio"
+ name="time-until-radio">
+ Time Until Battery Full
+ </p>
+ </label>
+ <input id="time-until-text" type="text">
+
+ </label>
+ </div>
+
+ </form>
+ </div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/chromium/chrome/browser/resources/chromeos/emulator/device_emulator.js b/chromium/chrome/browser/resources/chromeos/emulator/device_emulator.js
new file mode 100644
index 00000000000..41200dd9ada
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/emulator/device_emulator.js
@@ -0,0 +1,122 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+cr.define('device_emulator', function() {
+ 'use strict';
+
+ /**
+ * Updates the UI with the battery status.
+ * @param {number} percent Battery percentage (out of 100).
+ */
+ function setBatteryInfo(percent) {
+ var slider = $('battery-percent-slider');
+ var text = $('battery-percent-text');
+
+ slider.valueAsNumber = percent;
+ text.valueAsNumber = percent;
+ }
+
+ /**
+ * Event listener fired when the battery percent slider is moved and the mouse
+ * is released. Updates the Chrome OS UI.
+ * @param {Event} event Contains information about the event which was fired.
+ */
+ function onBatterySliderChange(event) {
+ var slider = event.target;
+ chrome.send('updateBatteryInfo', [slider.valueAsNumer]);
+ }
+
+ /**
+ * Event listener fired when the battery percent slider is moved. Updates
+ * the battery slider's associated text input.
+ * @param {Event} event Contains information about the event which was fired.
+ */
+ function onBatterySliderInput(event) {
+ var slider = event.target;
+ var text = $('battery-percent-text');
+
+ text.value = slider.value;
+ }
+
+ /**
+ * Event listener fired when a percentage is entered in the battery
+ * percentage text input. Updates the slider and ChromeOS UI.
+ * @param {Event} event Contains information about the event which was fired.
+ */
+ function onBatteryTextInput(event) {
+ var text = event.target;
+ var slider = $('battery-percent-slider');
+ var percent = text.valueAsNumber;
+
+ if (isNaN(percent)) {
+ percent = 0;
+ text.valueAsNumber = 0;
+ }
+
+ slider.value = percent;
+
+ chrome.send('updateBatteryInfo', [percent]);
+ }
+
+ function initialize() {
+ chrome.send('requestBatteryInfo');
+
+ wireEvents();
+ initializeControls();
+ }
+
+ /**
+ * Initializes any form controls as necessary.
+ */
+ function initializeControls() {
+ // Initialize the Power Source select box
+ var select = $('power-source-select');
+ var disconnectedOptionValue = loadTimeData.getString('disconnected');
+ var usbPowerOptionValue = loadTimeData.getString('usbPower');
+ var acPowerOptionValue = loadTimeData.getString('acPower');
+
+ select.appendChild(createOptionForSelect(acPowerOptionValue,
+ 'AC Power (Main/Line Power Connected)'));
+ select.appendChild(createOptionForSelect(usbPowerOptionValue,
+ 'USB Power'));
+ select.appendChild(createOptionForSelect(disconnectedOptionValue,
+ 'Disconnected (No external power source)'));
+
+ select.value = disconnectedOptionValue;
+ }
+
+ /**
+ * A helper function to create and return an <option> node
+ * to be added to a select box.
+ * @param {string} value Will be the <option>'s value attribute.
+ * @param {string} text Will be the <option>'s innerHTML attribute.
+ */
+ function createOptionForSelect(value, text) {
+ var opt = document.createElement('option');
+ opt.value = value;
+ opt.innerHTML = text;
+
+ return opt;
+ }
+
+ /**
+ * Sets up all event listeners for the page.
+ */
+ function wireEvents() {
+ var slider = $('battery-percent-slider');
+ var text = $('battery-percent-text');
+
+ slider.addEventListener('change', onBatterySliderChange);
+ slider.addEventListener('input', onBatterySliderInput);
+ text.addEventListener('input', onBatteryTextInput);
+ }
+
+ // Return an object with all of the exports.
+ return {
+ initialize: initialize,
+ setBatteryInfo: setBatteryInfo,
+ };
+});
+
+document.addEventListener('DOMContentLoaded', device_emulator.initialize);
diff --git a/chromium/chrome/browser/resources/chromeos/first_run/app/icon/256.png b/chromium/chrome/browser/resources/chromeos/first_run/app/icon/256.png
index 3f807f522fd..3c2e64e9c7a 100644
--- a/chromium/chrome/browser/resources/chromeos/first_run/app/icon/256.png
+++ b/chromium/chrome/browser/resources/chromeos/first_run/app/icon/256.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/first_run/app/icon/64.png b/chromium/chrome/browser/resources/chromeos/first_run/app/icon/64.png
index 77bc3db6127..b36dd294c38 100644
--- a/chromium/chrome/browser/resources/chromeos/first_run/app/icon/64.png
+++ b/chromium/chrome/browser/resources/chromeos/first_run/app/icon/64.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/first_run/app/manifest.json b/chromium/chrome/browser/resources/chromeos/first_run/app/manifest.json
index e5f65829405..de6564bc3cb 100644
--- a/chromium/chrome/browser/resources/chromeos/first_run/app/manifest.json
+++ b/chromium/chrome/browser/resources/chromeos/first_run/app/manifest.json
@@ -17,7 +17,7 @@
"background": {
"scripts": ["background.js"]
},
- "content_security_policy": "default-src 'none'; script-src 'self' chrome://resources; style-src 'self' 'unsafe-inline' chrome://resources; img-src 'self' chrome://theme chrome://resources"
+ "content_security_policy": "default-src 'none'; script-src 'self' blob: filesystem: chrome://resources; style-src 'self' blob: filesystem: 'unsafe-inline' chrome://resources; img-src 'self' blob: filesystem: chrome://theme chrome://resources"
},
"permissions": [
"firstRunPrivate",
diff --git a/chromium/chrome/browser/resources/chromeos/images/new_charger_uk.png b/chromium/chrome/browser/resources/chromeos/images/new_charger_uk.png
index 9cddba35ca9..d5b4c7dce26 100644
--- a/chromium/chrome/browser/resources/chromeos/images/new_charger_uk.png
+++ b/chromium/chrome/browser/resources/chromeos/images/new_charger_uk.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/images/new_charger_us.png b/chromium/chrome/browser/resources/chromeos/images/new_charger_us.png
index 5007b555ee9..ba83eb19027 100644
--- a/chromium/chrome/browser/resources/chromeos/images/new_charger_us.png
+++ b/chromium/chrome/browser/resources/chromeos/images/new_charger_us.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/images/original_charger_uk.png b/chromium/chrome/browser/resources/chromeos/images/original_charger_uk.png
index 291e99a1dee..a413391f86e 100644
--- a/chromium/chrome/browser/resources/chromeos/images/original_charger_uk.png
+++ b/chromium/chrome/browser/resources/chromeos/images/original_charger_uk.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/login/OWNERS b/chromium/chrome/browser/resources/chromeos/login/OWNERS
index a5a5813634b..4b7994a46db 100644
--- a/chromium/chrome/browser/resources/chromeos/login/OWNERS
+++ b/chromium/chrome/browser/resources/chromeos/login/OWNERS
@@ -2,3 +2,4 @@ nkostylev@chromium.org
dpolukhin@chromium.org
antrim@chromium.org
dzhioev@chromium.org
+achuith@chromium.org
diff --git a/chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.html b/chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.html
index 6ecf0859577..a31686d188d 100644
--- a/chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.html
+++ b/chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.html
@@ -1,12 +1,22 @@
-<link rel="import" href="chrome://oobe/custom_elements.html">
-<link rel="import" href="chrome://resources/polymer/core-animated-pages/core-animated-pages.html">
-<link rel="import" href="chrome://resources/polymer/core-iconset-svg/core-iconset-svg.html">
-<link rel="import" href="chrome://resources/polymer/core-item/core-item.html">
-<link rel="import" href="chrome://resources/polymer/core-selector/core-selector.html">
-<link rel="import" href="chrome://resources/polymer/paper-button/paper-button.html">
-<link rel="import" href="chrome://resources/polymer/paper-progress/paper-progress.html">
-<link rel="import" href="chrome://resources/polymer/paper-shadow/paper-shadow.html">
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-selector/iron-selector.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/fade-in-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/fade-out-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/hero-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animated-pages.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-shared-element-animatable-behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-item/paper-icon-item.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-progress/paper-progress.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
List of devices.
@@ -17,33 +27,31 @@ Published properties:
* connecting - a binary attribute. If set, the list does not respond to the
user actions and a spinner is shown near selected device.
-->
-<polymer-element name="pairing-device-list"
- attributes="devices selected connecting">
+<dom-module name="pairing-device-list">
+ <link rel="stylesheet" href="pairing_device_list.css">
+
+ <iron-iconset-svg name="pairing-device-list-icons">
+ <svg><defs><g id="circle">
+ <circle cx="12" cy="12" r="12"></circle>
+ </g></defs></svg>
+ </iron-iconset-svg>
+
<template>
- <link rel="stylesheet" href="pairing_device_list.css">
-
- <core-iconset-svg id="icon" iconSize="24">
- <svg><defs><g id="circle">
- <circle cx="12" cy="12" r="12"></circle>
- </g></defs></svg>
- </core-iconset-svg>
-
- <core-selector selected="{{selected}}">
- <template repeat="{{device in devices}}">
- <!-- TODO(dzhioev): replace 'core-item' with 'paper-item'.
- http://crbug.com/423368 -->
- <core-item name="{{device}}" relative>
- <core-icon icon="icon:circle"
- style="color: {{device | colorByName}}"></core-icon>
- <div>{{device}}</div>
- <div flex horizontal end-justified layout center>
+ <iron-selector selected="{{selected}}" attr-for-selected="name">
+ <template is="dom-repeat" items="[[devices]]">
+ <paper-icon-item name$="[[item]]" class="relative">
+ <iron-icon icon="pairing-device-list-icons:circle" item-icon
+ style$="[[getStyleForDeviceIcon_(item)]]">
+ </iron-icon>
+ <div><span>[[item]]</span></div>
+ <div class="flex horizontal end-justified layout center">
<div class="throbber"></div>
</div>
- </core-item>
+ </paper-icon-item>
</template>
- </core-selector>
+ </iron-selector>
</template>
-</polymer-element>
+</dom-module>
<!--
Single page of the controller's out-of-box flow.
@@ -67,25 +75,25 @@ controller-pairing-page::shadow #top {
height: 100px;
}
-->
-<polymer-element name="controller-pairing-page" noscript>
- <template>
- <link rel="stylesheet" href="controller_pairing_page.css">
+<dom-module name="controller-pairing-page">
+ <link rel="stylesheet" href="controller_pairing_page.css">
- <div vertical layout fit>
- <div id="top" hero hero-id="top" relative vertical end-justified layout>
- <content select=".title"></content>
+ <template>
+ <div class="vertical layout fit">
+ <div id="top" class="relative vertical end-justified layout">
+ <div id="title">
+ <content select=".title"></content>
+ </div>
<div id="separator">
- <indeterminate-progress fill runnerColor="white"
- backgroundColor="#87ceac" runnerPortion="40">
- </indeterminate-progress>
+ <paper-progress indeterminate></paper-progress>
</div>
</div>
- <div id="bottom" hero hero-id="bottom" flex vertical layout>
- <div flex vertical layout>
+ <div id="bottom" class="flex vertical layout">
+ <div class="flex vertical layout">
<content select=":not(paper-button)"></content>
</div>
- <div id="controls" horizontal layout center>
- <div flex>
+ <div id="controls" class="horizontal layout center">
+ <div class="flex">
<content select="paper-button.help-button"></content>
</div>
<content select="paper-button"></content>
@@ -93,129 +101,162 @@ controller-pairing-page::shadow #top {
</div>
</div>
</template>
-</polymer-element>
+</dom-module>
+
+<dom-module name="controller-pairing-screen">
+ <link rel="stylesheet" href="oobe_screen_controller_pairing.css">
-<polymer-element name="controller-pairing-screen" extends="oobe-screen">
<template>
- <link rel="stylesheet" href="oobe_screen_controller_pairing.css">
-
- <template id="help-button">
- <paper-button class="help-button" on-tap="{{helpButtonClicked}}">
- {{'helpBtn' | i18n}}
- </paper-button>
- </template>
-
- <template id="progress">
- <indeterminate-progress runnerColor="#0f9d58" backgroundColor="#87ceac"
- runnerPortion="23"></indeterminate-progress>
- </template>
-
- <paper-shadow z="1" fit>
- <core-animated-pages transitions="cross-fade-all hero-transition"
- selected="{{C.page}}" fit>
- <controller-pairing-page name="devices-discovery" class="big-font">
- <div class="title">{{'welcomeTitle' | i18n}}</div>
- <div>{{'searching' | i18n}}</div>
- <template bind ref="help-button"></template>
- </controller-pairing-page>
-
- <controller-pairing-page name="device-select" class="split">
- <div class="title">{{'selectTitle' | i18n}}</div>
- <pairing-device-list devices="{{C.devices}}"
- selected="{{selectedDevice}}"></pairing-device-list>
- <template bind ref="help-button"></template>
- <paper-button on-tap="{{userActed}}" action="chooseDevice"
- disabled?="{{C.controlsDisabled}}">
- {{'connectBtn' | i18n}}
- </paper-button>
- </controller-pairing-page>
-
- <controller-pairing-page name="device-not-found">
- <div class="title">{{'troubleConnectingTitle' | i18n}}</div>
- <div>{{'connectingAdvice' | i18n}}</div>
- <paper-button on-tap="{{userActed}}" action="repeatDiscovery">
- {{'adviceGotItBtn' | i18n}}
- </paper-button>
- </controller-pairing-page>
-
- <controller-pairing-page name="establishing-connection" class="split">
- <div class="title">{{'selectTitle' | i18n}}</div>
- <pairing-device-list devices="{{C.devices}}"
- selected="{{selectedDevice}}" connecting></pairing-device-list>
- <template bind ref="help-button"></template>
- <paper-button disabled>{{'connecting' | i18n}}</paper-button>
- </controller-pairing-page>
-
- <controller-pairing-page name="establishing-connection-error">
- <!-- TODO(dzhioev): Strings TBD. http://crbug.com/423740 -->
- <div class="title">Unable to connect to {{selectedDevice}}</div>
- <paper-button on-tap="{{userActed}}" action="repeatDiscovery">
- Repeat discovery
- </paper-button>
- </controller-pairing-page>
-
- <controller-pairing-page name="code-confirmation" class="split">
- <div class="title">{{'confirmationTitle' | i18n}}</div>
- <div>{{'confirmationQuestion' | i18n}}</div>
- <div id="code">{{C.code}}</div>
- <paper-button on-tap="{{userActed}}" action="rejectCode"
- disabled?="{{C.controlsDisabled}}">
- {{'rejectCodeBtn' | i18n}}
- </paper-button>
- <paper-button on-tap="{{userActed}}" action="acceptCode"
- disabled?="{{C.controlsDisabled}}">
- {{'acceptCodeBtn' | i18n}}
- </paper-button>
- </controller-pairing-page>
-
- <controller-pairing-page name="host-update" class="split">
- <div class="title">{{'updateTitle' | i18n}}</div>
- <div>{{'updateText' | i18n}}</div>
- <template bind ref="progress"></template>
- </controller-pairing-page>
-
- <controller-pairing-page name="host-connection-lost" class="split">
- <div class="title">{{'connectionLostTitle' | i18n}}</div>
- <div>{{'connectionLostText' | i18n}}</div>
- <template bind ref="progress"></template>
- </controller-pairing-page>
-
- <controller-pairing-page name="enrollment-introduction" class="split">
- <div class="title">{{'enrollTitle' | i18n}}</div>
- <p>{{'enrollText1' | i18n}}</p>
- <p><strong>{{'enrollText2' | i18n}}</strong></p>
- <paper-button on-click="{{userActed}}" action="proceedToAuthentication"
- disabled?="{{C.controlsDisabled}}">
- {{'continueBtn' | i18n}}
- </paper-button>
- </controller-pairing-page>
-
- <controller-pairing-page name="authentication" class="split">
- <div class="title">{{'enrollTitle' | i18n}}</div>
- <div>Not implemented.</div>
- </controller-pairing-page>
-
- <controller-pairing-page name="host-enrollment" class="progress">
- <!-- 'enrollmentTitle' contains <strong> tag. -->
- <html-echo class="title"
- content="{{['enrollmentInProgress', C.enrollmentDomain] | i18n}}">
- </html-echo>
- </controller-pairing-page>
-
- <controller-pairing-page name="host-enrollment-error" class="progress">
- <div class="title">{{'enrollmentErrorTitle' | i18n}}</div>
- <div>{{'enrollmentErrorHostRestarts' | i18n}}</div>
- </controller-pairing-page>
-
- <controller-pairing-page name="pairing-done" class="big-font">
- <div class="title">{{'successTitle' | i18n}}</div>
- <div>{{['successText', selectedDevice] | i18n}}</div>
- <paper-button on-click="{{userActed}}" action="startSession"
- disabled?="{{C.controlsDisabled}}">
- {{'continueToHangoutsBtn' | i18n}}
- </paper-button>
- </controller-pairing-page>
- </core-animated-pages>
- </paper-shadow>
+ <paper-material class="fit">
+ <neon-animated-pages id="pages" selected="{{C.page}}"
+ attr-for-selected="name" class="fit">
+ <controller-pairing-page name="devices-discovery" class="big-font">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_welcomeTitle">
+ </div>
+ <div i18n-content="login_ControllerPairingScreen_searching"></div>
+ <paper-button class="help-button" on-tap="helpButtonClicked_"
+ i18n-content="login_ControllerPairingScreen_helpBtn">
+ </paper-button>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="device-select" class="split">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_selectTitle">
+ </div>
+ <pairing-device-list devices="[[C.devices]]"
+ selected="{{selectedDevice}}">
+ </pairing-device-list>
+ <paper-button class="help-button" on-tap="helpButtonClicked_"
+ i18n-content="login_ControllerPairingScreen_helpBtn">
+ </paper-button>
+ <paper-button on-tap="userActed" action="chooseDevice"
+ disabled$="[[C.controlsDisabled]]"
+ i18n-content="login_ControllerPairingScreen_connectBtn">
+ </paper-button>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="device-not-found">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_troubleConnectingTitle">
+ </div>
+ <div i18n-content="login_ControllerPairingScreen_connectingAdvice">
+ </div>
+ <paper-button on-tap="userActed" action="repeatDiscovery"
+ i18n-content="login_ControllerPairingScreen_adviceGotItBtn">
+ </paper-button>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="establishing-connection" class="split">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_selectTitle">
+ </div>
+ <pairing-device-list devices="[[C.devices]]"
+ selected="{{selectedDevice}}" connecting>
+ </pairing-device-list>
+ <paper-button class="help-button" on-tap="helpButtonClicked_"
+ i18n-content="login_ControllerPairingScreen_helpBtn">
+ </paper-button>
+ <paper-button disabled
+ i18n-content="login_ControllerPairingScreen_connecting">
+ </paper-button>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="establishing-connection-error">
+ <!-- TODO(dzhioev): Strings TBD. http://crbug.com/423740 -->
+ <div class="title">
+ Unable to connect to <span>[[selectedDevice]]<span>
+ </div>
+ <paper-button on-tap="userActed" action="repeatDiscovery">
+ Repeat discovery
+ </paper-button>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="code-confirmation" class="split">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_confirmationTitle">
+ </div>
+ <div
+ i18n-content="login_ControllerPairingScreen_confirmationQuestion">
+ </div>
+ <div id="code"><span>[[C.code]]</span></div>
+ <paper-button on-tap="userActed" action="rejectCode"
+ disabled$="[[C.controlsDisabled]"
+ i18n-content="login_ControllerPairingScreen_rejectCodeBtn">
+ </paper-button>
+ <paper-button on-tap="userActed" action="acceptCode"
+ disabled$="[[C.controlsDisabled]]"
+ i18n-content="login_ControllerPairingScreen_acceptCodeBtn">
+ </paper-button>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="host-update" class="split">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_updateTitle">
+ </div>
+ <div i18n-content="login_ControllerPairingScreen_updateText"></div>
+ <paper-progress indeterminate></paper-progress>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="host-connection-lost" class="split">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_connectionLostTitle">
+ </div>
+ <div i18n-content="login_ControllerPairingScreen_connectionLostText">
+ </div>
+ <paper-progress indeterminate></paper-progress>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="enrollment-introduction" class="split">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_enrollTitle">
+ </div>
+ <p i18n-content="login_ControllerPairingScreen_enrollText1"></p>
+ <p>
+ <strong i18n-content="login_ControllerPairingScreen_enrollText2">
+ </strong>
+ </p>
+ <paper-button on-tap="userActed" action="proceedToAuthentication"
+ disabled$="[[C.controlsDisabled]]"
+ i18n-content="login_ControllerPairingScreen_continueBtn">
+ </paper-button>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="authentication" class="split">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_enrollTitle">
+ </div>
+ <div>Not implemented.</div>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="host-enrollment" class="progress">
+ <!-- This title contains <strong> tag inside. -->
+ <html-echo class="title"
+ content="[[getHostEnrollmentStepTitle_(C.enrollmentDomain)]]">
+ </html-echo>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="host-enrollment-error" class="progress">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_enrollmentErrorTitle">
+ </div>
+ <div
+ i18n-content="login_ControllerPairingScreen_enrollmentErrorHostRestarts">
+ </div>
+ </controller-pairing-page>
+
+ <controller-pairing-page name="pairing-done" class="big-font">
+ <div class="title"
+ i18n-content="login_ControllerPairingScreen_successTitle">
+ </div>
+ <div><span>[[getSuccessMessage_(selectedDevice)]]</div>
+ <paper-button on-tap="userActed" action="startSession"
+ disabled$="{{C.controlsDisabled}}"
+ i18n-content="login_ControllerPairingScreen_continueToHangoutsBtn">
+ </paper-button>
+ </controller-pairing-page>
+ </neon-animated-pages>
+ </paper-material>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.js b/chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.js
index c481427581d..70d39e1b616 100644
--- a/chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.js
+++ b/chromium/chrome/browser/resources/chromeos/login/controller-pairing-screen.js
@@ -2,13 +2,33 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('pairing-device-list', (function() {
+Polymer((function() {
/** @const */ var ICON_COLORS = ['#F0B9CB', '#F0ACC3', '#F098B6', '#F084A9',
'#F06D99', '#F05287', '#F0467F', '#F03473',
'#F01E65', '#F00051'];
return {
+ is: 'pairing-device-list',
+
+ properties: {
+ devices: Array,
+
+ selected: {
+ type: String,
+ notify: true
+ },
+
+ connecting: {
+ type: Boolean,
+ reflectToAttribute: true
+ }
+ },
+
+ getStyleForDeviceIcon_: function(deviceName) {
+ return 'color: ' + this.colorByName_(deviceName);
+ },
+
/* Returns pseudo-random color depending of hash of the |name|. */
- colorByName: function(name) {
+ colorByName_: function(name) {
var hash = 0;
for (var i = 0; i < name.length; ++i)
hash = (name.charCodeAt(i) + 31 * hash) | 0;
@@ -17,7 +37,58 @@ Polymer('pairing-device-list', (function() {
};
})());
-Polymer('controller-pairing-screen', (function() {
+Polymer({
+ is: 'controller-pairing-page',
+
+ behaviors: [
+ Polymer.NeonSharedElementAnimatableBehavior
+ ],
+
+ properties: {
+ sharedElements: {
+ value: function() {
+ return {
+ 'top-hero': this.$.top,
+ 'bottom-hero': this.$.bottom
+ };
+ }
+ },
+
+ animationConfig: {
+ value: function() {
+ return {
+ 'entry': [{
+ name: 'hero-animation',
+ id: 'top-hero',
+ toPage: this
+ }, {
+ name: 'hero-animation',
+ id: 'bottom-hero',
+ toPage: this
+ }, {
+ name: 'fade-in-animation',
+ node: this
+ }],
+
+ 'exit': [{
+ name: 'hero-animation',
+ id: 'top-hero',
+ fromPage: this
+ }, {
+ name: 'hero-animation',
+ id: 'bottom-hero',
+ fromPage: this
+ }, {
+ name: 'fade-out-animation',
+ node: this
+ }]
+ };
+ }
+ }
+ }
+});
+
+Polymer((function() {
'use strict';
// Keep these constants synced with corresponding constants defined in
@@ -31,46 +102,66 @@ Polymer('controller-pairing-screen', (function() {
/** @const */ var PAGE_AUTHENTICATION = 'authentication';
return {
- gaiaHost_: null,
- selectedDevice: null,
+ is: 'controller-pairing-screen',
+
+ behaviors: [
+ login.OobeScreenBehavior
+ ],
+
+ properties: {
+ selectedDevice: {
+ type: String,
+ observer: 'selectedDeviceChanged_'
+ }
+ },
- observe: {
- 'C.devices': 'deviceListChanged',
- 'C.page': 'pageChanged'
+ observers: [
+ 'deviceListChanged_(C.devices)'
+ ],
+
+ ready: function() {
+ /**
+ * Workaround for
+ * https://github.com/PolymerElements/neon-animation/issues/32
+ * TODO(dzhioev): Remove when fixed in Polymer.
+ */
+ var pages = this.$.pages;
+ delete pages._squelchNextFinishEvent;
+ Object.defineProperty(pages, '_squelchNextFinishEvent',
+ { get: function() { return false; } });
},
/** @override */
initialize: function() {
+ ['code',
+ 'controlsDisabled',
+ 'devices',
+ 'enrollmentDomain',
+ 'page'].forEach(this.registerBoundContextField, this);
this.context.set(CONTEXT_KEY_CONTROLS_DISABLED, true);
this.commitContextChanges();
},
- pageChanged: function(oldPage, newPage) {
- if (newPage == PAGE_AUTHENTICATION) {
- this.gaiaHost_.load(cr.login.GaiaAuthHost.AuthMode.DEFAULT,
- {},
- this.onAuthCompleted_.bind(this));
- }
- },
-
- deviceListChanged: function() {
- this.selectedDevice = this.context.get(CONTEXT_KEY_SELECTED_DEVICE);
+ deviceListChanged_: function() {
+ this.selectedDevice = this.context.get(CONTEXT_KEY_SELECTED_DEVICE, null);
},
- selectedDeviceChanged: function() {
+ selectedDeviceChanged_: function(selectedDevice) {
this.context.set(CONTEXT_KEY_SELECTED_DEVICE,
- this.selectedDevice ? this.selectedDevice : '');
+ selectedDevice ? selectedDevice : '');
this.commitContextChanges();
},
- helpButtonClicked: function() {
+ helpButtonClicked_: function() {
console.error('Help is not implemented yet.');
},
- onAuthCompleted_: function(credentials) {
- this.context.set(CONTEXT_KEY_ACCOUNT_ID, credentials.email);
- this.commitContextChanges();
- this.send(login.Screen.CALLBACK_USER_ACTED, ACTION_ENROLL);
+ getHostEnrollmentStepTitle_: function(domain) {
+ return this.i18n(['enrollmentInProgress', domain]);
+ },
+
+ getSuccessMessage_: function(selectedDevice) {
+ return this.i18n(['successText', selectedDevice]);
}
};
})());
diff --git a/chromium/chrome/browser/resources/chromeos/login/controller_pairing_page.css b/chromium/chrome/browser/resources/chromeos/login/controller_pairing_page.css
index 380a3a43a05..4882169b30a 100644
--- a/chromium/chrome/browser/resources/chromeos/login/controller_pairing_page.css
+++ b/chromium/chrome/browser/resources/chromeos/login/controller_pairing_page.css
@@ -4,7 +4,7 @@
*/
:host {
- background-color: rgb(15, 157, 88);
+ background-color: var(--google-green-500);
color: white;
}
@@ -32,7 +32,7 @@ content::content strong {
/* Separator. */
#separator {
- background-color: rgba(255, 255, 255, 0.4);
+ background-color: var(--google-green-100);
bottom: 0;
display: block;
height: 1px;
@@ -45,11 +45,14 @@ content::content strong {
display: none;
}
-#separator indeterminate-progress {
+#separator paper-progress {
+ --paper-progress-active-color: white;
+ --paper-progress-container-color: var(--google-green-100);
display: none;
+ width: 100%;
}
-:host(.progress) #separator indeterminate-progress {
+:host(.progress) #separator paper-progress {
display: block;
}
@@ -95,16 +98,7 @@ content::content strong {
margin-right: 1em;
}
-:host(.split) #controls content[select='paper-button']::content
- :last-child {
- color: rgb(15, 157, 88);
-}
-
-content::content paper-button[disabled] {
- /* In Polymer 0.3 disabled button 'background-color' defined with '!important'
- * flag, so we need '!important' here to override it.
- * TODO(dzhioev): remove '!important' when Polymer is updated.
- */
- background: transparent !important;
+:host(.split) #controls content[select='paper-button']::content :last-child {
+ color: var(--google-green-500);
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/custom_elements_login.html b/chromium/chrome/browser/resources/chromeos/login/custom_elements_login.html
index 2ce14252e49..a769e997f8f 100644
--- a/chromium/chrome/browser/resources/chromeos/login/custom_elements_login.html
+++ b/chromium/chrome/browser/resources/chromeos/login/custom_elements_login.html
@@ -1,10 +1,11 @@
-<include src="gaia_card.html">
<include src="gaia_buttons.html">
-<include src="gaia_input.html">
-<include src="gaia_input_form.html">
+<include src="gaia_card.html">
<include src="gaia_header.html">
-<include src="offline_gaia.html">
+<include src="gaia_input_form.html">
+<include src="gaia_input.html">
<include src="gaia_password_changed.html">
+<include src="offline_gaia.html">
<include src="saml_confirm_password.html">
+<include src="throbber_notice.html">
<script src="chrome://oobe/custom_elements.js"></script>
diff --git a/chromium/chrome/browser/resources/chromeos/login/custom_elements_login.js b/chromium/chrome/browser/resources/chromeos/login/custom_elements_login.js
index 745de57e735..f2fa09433b1 100644
--- a/chromium/chrome/browser/resources/chromeos/login/custom_elements_login.js
+++ b/chromium/chrome/browser/resources/chromeos/login/custom_elements_login.js
@@ -1,10 +1,13 @@
-// Copyright (c) 2015 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
<include src="gaia_buttons.js">
-<include src="gaia_input.js">
+<include src="gaia_card.js">
+<include src="gaia_header.js">
<include src="gaia_input_form.js">
-<include src="offline_gaia.js">
+<include src="gaia_input.js">
<include src="gaia_password_changed.js">
+<include src="offline_gaia.js">
<include src="saml_confirm_password.js">
+<include src="throbber_notice.js">
diff --git a/chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.html b/chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.html
index 54ca3677eab..92c1e5ea9c6 100644
--- a/chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.html
+++ b/chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.html
@@ -1,17 +1,16 @@
-<include src="oobe-screen.html">
-<include src="html-echo.html">
-<include src="indeterminate-progress.html">
<include src="controller-pairing-screen.html">
-<include src="host-pairing-screen.html">
-<include src="throbber_notice.html">
-<include src="gaia_card.html">
<include src="gaia_buttons.html">
-<include src="gaia_input.html">
-<include src="gaia_input_form.html">
+<include src="gaia_card.html">
<include src="gaia_header.html">
-<include src="offline_gaia.html">
+<include src="gaia_input_form.html">
+<include src="gaia_input.html">
<include src="gaia_password_changed.html">
-<include src="saml_confirm_password.html">
+<include src="host-pairing-screen.html">
+<include src="html-echo.html">
<include src="notification_card.html">
+<include src="offline_gaia.html">
+<include src="oobe-screen.html">
+<include src="saml_confirm_password.html">
+<include src="throbber_notice.html">
<script src="chrome://oobe/custom_elements.js"></script>
diff --git a/chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.js b/chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.js
index a358fdc3a39..b875dd9c192 100644
--- a/chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.js
+++ b/chromium/chrome/browser/resources/chromeos/login/custom_elements_oobe.js
@@ -2,15 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+// This inclusion should go first, as <{controller,host}-paring-screen> depend
+// of it.
<include src="oobe-screen.js">
-<include src="html-echo.js">
-<include src="indeterminate-progress.js">
+
<include src="controller-pairing-screen.js">
-<include src="host-pairing-screen.js">
<include src="gaia_buttons.js">
-<include src="gaia_input.js">
+<include src="gaia_card.js">
+<include src="gaia_header.js">
<include src="gaia_input_form.js">
-<include src="offline_gaia.js">
+<include src="gaia_input.js">
<include src="gaia_password_changed.js">
-<include src="saml_confirm_password.js">
+<include src="host-pairing-screen.js">
+<include src="html-echo.js">
<include src="notification_card.js">
+<include src="offline_gaia.js">
+<include src="saml_confirm_password.js">
+<include src="throbber_notice.js">
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_button.css b/chromium/chrome/browser/resources/chromeos/login/gaia_button.css
new file mode 100644
index 00000000000..67f758ea424
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_button.css
@@ -0,0 +1,40 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+:host {
+ display: inline-block;
+}
+
+paper-button {
+ background-color: var(--google-blue-500);
+ color: white;
+ font-size: 14px;
+ min-width: 90px;
+}
+
+:host([type='link']) paper-button,
+:host([type='dialog']) paper-button {
+ background-color: transparent;
+ color: var(--google-blue-500);
+ margin: 0;
+ min-width: 0;
+}
+
+:host([type='link']) paper-button[focused],
+:host([type='dialog']) paper-button[focused] {
+ background-color: rgba(66, 133, 244, 0.12);
+}
+
+:host([type='link']) paper-button[disabled],
+:host([type='dialog']) paper-button[disabled] {
+ color: rgb(168,168,168);
+}
+
+:host([type='link']) paper-button {
+ border-radius: 0;
+ margin-left: -0.57em;
+ margin-right: -0.57em;
+ text-transform: none;
+}
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_buttons.html b/chromium/chrome/browser/resources/chromeos/login/gaia_buttons.html
index 00ddf846370..08a59c31fa4 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_buttons.html
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_buttons.html
@@ -1,42 +1,58 @@
-<link rel="import" href="chrome://resources/polymer/core-icon/core-icon.html">
-<link rel="import" href="chrome://resources/polymer/core-icons/core-icons.html">
-<link rel="import" href="chrome://resources/polymer/paper-button/paper-button.html">
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
-<!--
- Simple paper- and core-icon- buttons which also triggers 'tap' event on keys
- 'Enter' and 'Space'.
--->
-<polymer-element name="gaia-paper-button" extends="paper-button"
- on-keydown="onKeyDown" tabindex="0">
- <template>
- <shadow></shadow>
- </template>
-</polymer-element>
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
- Decorator for a <button>. When applied to a <button>, the button looks like
- an icon from a material-design icons set. Icon's name should be specified in
- 'icon' attribute.
+ Material design buttons that mimic GAIA's buttons.
Example:
- <button is="gaia-icon-button" icon="close"></button>
+ <gaia-button type="dialog"></gaia-button>
+
+ Attributes:
+ 'type' - there are three kinds of button: regular blue button (none type
+ provided), dialog button (type="dialog") and a button that looks
+ more like a link (type="link").
+ 'disabled' - button is disabled when the attribute is set.
-->
-<polymer-element name="gaia-icon-button" extends="button" attributes="icon"
- on-mousedown="{{onMouseDown}}">
+<dom-module id="gaia-button">
+ <link rel="stylesheet" href="gaia_button.css">
+
<template>
- <link rel="stylesheet" href="gaia_icon_button.css">
- <core-icon icon="{{icon}}" fit></core-icon>
+ <div on-click="onClick_" on-tap="onClick_">
+ <paper-button id="button" disabled="[[disabled]]"
+ on-focused-changed="focusedChanged_">
+ <content></content>
+ </paper-button>
+ </div>
</template>
-</polymer-element>
+</dom-module>
<!--
- Paper-button which is raised when it's focused.
- It also triggers 'tap' event on keys 'Enter' and 'Space'.
+ Material desing icon button with a special styling.
+
+ Example:
+ <gaia-icon-button icon="close"></gaia-icon>
+
+ Attributes:
+ 'icon' - a name of icon from material design set to show on button.
+ 'disabled' - button is disabled when the attribute is set.
+ 'aria-label' - accessibility label.
-->
-<polymer-element name="gaia-raised-on-focus-button" extends="gaia-paper-button"
- on-focus="{{onButtonFocus}}" on-blur="{{onButtonBlur}}">
+<dom-module id="gaia-icon-button">
+ <link rel="stylesheet" href="gaia_icon_button.css">
+
<template>
- <shadow></shadow>
+ <div on-click="onClick_" on-tap="onClick_">
+ <paper-icon-button id="iconButton" icon="[[icon]]" disabled="[[disabled]]"
+ aria-label="[[ariaLabel]]">
+ </paper-icon-button>
+ </div>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_buttons.js b/chromium/chrome/browser/resources/chromeos/login/gaia_buttons.js
index 443cd6d938a..7ae8de3b320 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_buttons.js
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_buttons.js
@@ -1,32 +1,70 @@
-/* Copyright 2015 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-Polymer('gaia-paper-button', {
- onKeyDown: function(e) {
- if (!this.disabled && (e.keyCode == 13 || e.keyCode == 32))
- this.fire('tap');
- }
-});
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Polymer({
+ is: 'gaia-button',
+
+ properties: {
+ disabled: {
+ type: Boolean,
+ value: false,
+ reflectToAttribute: true
+ },
+
+ type: {
+ type: String,
+ value: '',
+ reflectToAttribute: true,
+ observer: 'typeChanged_'
+ }
+ },
+
+ focus: function() {
+ this.$.button.focus();
+ },
-Polymer('gaia-icon-button', {
- ready: function() {
- this.classList.add('custom-appearance');
+ focusedChanged_: function() {
+ if (this.type == 'link' || this.type == 'dialog')
+ return;
+ this.$.button.raised = this.$.button.focused;
},
- onMouseDown: function(e) {
- /* Prevents button focusing after mouse click. */
- e.preventDefault();
+ typeChanged_: function() {
+ if (this.type == 'link')
+ this.$.button.setAttribute('noink', '');
+ else
+ this.$.button.removeAttribute('noink');
+ },
+
+ onClick_: function(e) {
+ if (this.disabled)
+ e.stopPropagation();
}
});
-Polymer('gaia-raised-on-focus-button', {
- onButtonFocus: function() {
- this.raised = true;
+Polymer({
+ is: 'gaia-icon-button',
+
+ properties: {
+ disabled: {
+ type: Boolean,
+ value: false,
+ reflectToAttribute: true
+ },
+
+ icon: String,
+
+ ariaLabel: String
},
- onButtonBlur: function() {
- this.raised = false;
+ focus: function() {
+ this.$.iconButton.focus();
},
+
+ onClick_: function(e) {
+ if (this.disabled)
+ e.stopPropagation();
+ }
});
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_card.css b/chromium/chrome/browser/resources/chromeos/login/gaia_card.css
index 0336e54cd7d..dda92a8f969 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_card.css
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_card.css
@@ -4,19 +4,25 @@
*/
:host {
- height: 528px;
- width: 448px;
+ display: flex;
+ flex-direction: column;
+ position: relative;
}
.gaia-header {
- background-color: rgb(66, 133, 244);
- color: rgb(255, 255, 255);
- height: 164px;
+ background-color: var(--google-blue-500);
+ color: white;
+ height: 198px;
+}
+
+:host(:not(.disabled)) .gaia-header {
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.17);
+ /* z-index is needed to make shadow visible. */
+ z-index: 1;
}
-.gaia-footer,
-#progress-bar::shadow #progressContainer {
- background-color: rgba(0, 0, 0, 0.02);
+.gaia-footer {
+ background-color: rgb(238, 238, 238);
}
.gaia-footer {
@@ -24,63 +30,32 @@
}
.header-container {
- padding: 34px 40px 16px;
+ padding: 50px 40px 18px;
}
.footer-container {
padding: 24px 40px 34px;
}
-::content /deep/ .blue-button {
- background-color: rgb(66, 133, 244);
- color: rgb(255, 255, 255);
- min-width: 90px;
-}
-
-::content /deep/ .dialog-action-button {
- color: rgb(66, 133, 244);
-}
-
-::content /deep/ .dialog-action-button:focus {
- background: rgb(217, 221, 234);
-}
-
-::content /deep/ .link-button {
- color: rgb(66, 133, 244);
- font-size: 14px;
- margin: 0;
- text-align: left;
- text-transform: none;
-}
-
-::content /deep/ .link-button:focus {
- background: rgb(217, 221, 234);
-}
-
-::content /deep/ .link-button::shadow .button-content {
- padding: 0;
-}
-
-::content /deep/ div.gaia-body-text {
+::content div.gaia-body-text {
margin-bottom: 24px;
}
-::content /deep/ div.gaia-body-text p {
+::content div.gaia-body-text p {
color: rgba(0, 0, 0, 0.87);
font-size: 14px;
line-height: 20px;
margin: 0;
}
-::content /deep/ p.email,
-::content /deep/ p.enterprise-info {
- color: rgb(255, 255, 255);
+::content p.enterprise-info {
+ color: white;
font-size: 15px;
margin: 8px 0 0 0;
}
-::content /deep/ h1.welcome-message {
- color: rgb(255, 255, 255);
+::content h1.welcome-message {
+ color: white;
font-size: 20px;
font-weight: normal;
margin-bottom: 0;
@@ -97,15 +72,16 @@
z-index: 11;
}
-#progress-bar {
+paper-progress#progress-bar {
+ --paper-progress-active-color: var(--google-yellow-500);
+ --paper-progress-container-color: var(--google-yellow-100);
+ bottom: 0;
display: none;
+ height: 3px;
+ position: absolute;
width: 100%;
}
-#progress-bar::shadow #activeProgress {
- background-color: rgb(255, 184, 9);
-}
-
:host(.full-disabled) #full-overlay,
:host(.disabled) #bottom-overlay,
:host(.disabled) #progress-bar {
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_card.html b/chromium/chrome/browser/resources/chromeos/login/gaia_card.html
index 91980eff72f..21a3c5197b6 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_card.html
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_card.html
@@ -1,6 +1,11 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/polymer/layout.html">
-<link rel="import" href="chrome://resources/polymer/paper-progress/paper-progress.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-progress/paper-progress.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
Simple Gaia card which should be used for local UI elements that look like
@@ -18,23 +23,23 @@
Add class |header| to all which you want to go inside blue header. Similar
with class |footer|.
-->
-<polymer-element name="gaia-card" noscript vertical layout>
+<dom-module name="gaia-card">
+ <link rel="stylesheet" href="gaia_card.css">
+
<template>
- <link rel="stylesheet" href="gaia_card.css">
- <div class="gaia-header" vertical layout>
- <div class="header-container" flex vertical layout>
+ <div class="gaia-header vertical layout relative">
+ <div class="header-container flex vertical layout relative">
<content select=".header"></content>
</div>
+ <paper-progress id="progress-bar" indeterminate></paper-progress>
</div>
- <paper-progress id="progress-bar" indeterminate></paper-progress>
- <div class="gaia-footer" flex vertical layout>
- <div class="footer-container" flex vertical layout>
+ <div class="gaia-footer flex vertical layout">
+ <div class="footer-container flex vertical layout">
<content select=".footer"></content>
</div>
- <div id="bottom-overlay" class="overlay">
- </div>
- </div>
- <div id="full-overlay" class="overlay">
+ <div id="bottom-overlay" class="overlay"></div>
</div>
+ <div id="full-overlay" class="overlay"></div>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_card.js b/chromium/chrome/browser/resources/chromeos/login/gaia_card.js
new file mode 100644
index 00000000000..7dd2a42a8bc
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_card.js
@@ -0,0 +1,7 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Polymer({
+ is: 'gaia-card'
+});
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_header.css b/chromium/chrome/browser/resources/chromeos/login/gaia_header.css
new file mode 100644
index 00000000000..ccb7c1337b4
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_header.css
@@ -0,0 +1,14 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+:host {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+}
+
+#email {
+ font-size: 20px;
+}
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_header.html b/chromium/chrome/browser/resources/chromeos/login/gaia_header.html
index c59a1de8824..e75ad5b0904 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_header.html
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_header.html
@@ -1,23 +1,27 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/polymer/layout.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
Blue header for New Gaia UI, contains blue avatar logo and user email.
Example:
- <gaia-header id="passwordHeader">
+ <gaia-header email="user@example.com">
</gaia-header>
Attributes:
'email' - displayed email.
-->
-<polymer-element name="gaia-header" flex vertical layout noscript
- attributes="email">
+<dom-module name="gaia-header">
+ <link rel="stylesheet" href="gaia_header.css">
+
<template>
- <div flex vertical justified layout start>
- <img self-start src="chrome://theme/IDR_LOGO_AVATAR_CIRCLE_BLUE_COLOR"
- alt>
- <p class="email">{{email}}</p>
- </div>
+ <img src="chrome://theme/IDR_LOGO_AVATAR_CIRCLE_BLUE_COLOR" alt
+ class="self-start">
+ <div id="email"><span>[[email]]<span></div>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_header.js b/chromium/chrome/browser/resources/chromeos/login/gaia_header.js
new file mode 100644
index 00000000000..69898a4e223
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_header.js
@@ -0,0 +1,11 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Polymer({
+ is: 'gaia-header',
+
+ properties: {
+ email: String
+ }
+});
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_icon_button.css b/chromium/chrome/browser/resources/chromeos/login/gaia_icon_button.css
index dc61a0a88c3..4cd46601eab 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_icon_button.css
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_icon_button.css
@@ -3,29 +3,6 @@
* found in the LICENSE file.
*/
-:host {
- background: transparent;
- border: none;
- border-radius: 50%;
- height: 24px;
- margin: 0;
- outline: none;
+#iconButton {
padding: 0;
- width: 24px;
}
-
-:host(:hover) {
- cursor: pointer;
-}
-
-:host(:focus) {
- background: rgba(0, 0, 0, .16);
- border-color: transparent;
- opacity: 0.75;
-}
-
-:host(:active) {
- background: rgba(0, 0, 0, .12);
- opacity: 1.0;
-}
-
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_input.css b/chromium/chrome/browser/resources/chromeos/login/gaia_input.css
index 655201421be..f0427d6b82d 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_input.css
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_input.css
@@ -3,22 +3,24 @@
* found in the LICENSE file.
*/
-paper-input-decorator /deep/ .unfocused-underline {
- background-color: rgb(212, 212, 212);
+:host {
+ display: block;
}
-paper-input-decorator /deep/ .focused-underline {
- background-color: rgb(66, 133, 244);
+paper-input-container {
+ --paper-input-container-color: rgb(212, 212, 212);
+ --paper-input-container-focus-color: var(--google-blue-500);
+ --paper-input-container-input {
+ font-size: 15px;
+ };
+ --paper-input-container-input-color: rgba(0, 0, 0, 0.87);
+ --paper-input-container-label: {
+ color: rgba(0, 0, 0, 0.54);
+ font-size: 15px;
+ };
}
-paper-input-decorator /deep/ ::-webkit-input-placeholder,
-paper-input-decorator /deep/ .label-text {
- color: rgba(0, 0, 0, 0.54) !important;
-}
-
-paper-input-decorator {
- color: rgba(0, 0, 0, 0.87);
- font-size: 15px;
+paper-input-container {
padding: 0;
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_input.html b/chromium/chrome/browser/resources/chromeos/login/gaia_input.html
index 21b01158797..21884cb5845 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_input.html
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_input.html
@@ -1,7 +1,13 @@
-<link rel="import" href="chrome://resources/polymer/core-input/core-input.html">
-<link rel="import" href="chrome://resources/polymer/paper-input/paper-input-decorator.html">
-<link rel="import" href="chrome://resources/polymer/polymer/layout.html">
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-input/iron-input.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input-container.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input-error.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
Material desing input field, that supports different input types and email
@@ -28,18 +34,23 @@
'checkValidity' - returns current validity state of the input form. Updates
'isInvalid' at the end.
-->
-<polymer-element name="gaia-input" attributes="label value type domain required
- error isInvalid">
+<dom-module name="gaia-input">
+ <link rel="stylesheet" href="gaia_input.css">
+
<template>
- <link rel="stylesheet" href="gaia_input.css">
- <paper-input-decorator id="decorator" error="{{error}}" label="{{label}}"
- on-tap="{{onTap}}" isInvalid="{{isInvalid}}" floatingLabel autoValidate>
- <div id="container" horizontal layout>
- <input id="input" is="core-input" on-keydown="{{onKeyDown}}"
- value="{{value}}" required?="{{required}}" flex>
- <span id="domainLabel">{{domain}}</span>
+ <paper-input-container id="decorator" on-tap="onTap"
+ invalid="[[isInvalid]]" disabled$="[[disabled]]">
+ <label><span>[[label]]</span></label>
+ <div id="container" class="horizontal layout">
+ <input id="input" is="iron-input" on-keydown="onKeyDown"
+ bind-value="{{value}}" invalid="[[isInvalid]]"
+ required$="[[required]]" disabled$="[[disabled]]" class="flex">
+ <span id="domainLabel">[[domain]]</span>
</div>
- </paper-input-decorator>
+ <template is="dom-if" if="[[error]]">
+ <paper-input-error>[[error]]</paper-input-error>
+ </template>
+ </paper-input-container>
</template>
-</polymer-element>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_input.js b/chromium/chrome/browser/resources/chromeos/login/gaia_input.js
index af168f7c0eb..b0bdd3ab9d8 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_input.js
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_input.js
@@ -1,25 +1,51 @@
-/* Copyright 2015 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
-Polymer('gaia-input', (function() {
+Polymer((function() {
var INPUT_EMAIL_PATTERN = "^[a-zA-Z0-9.!#$%&'*+=?^_`{|}~-]+(@[^\\s@]+)?$";
return {
- required: false,
+ is: 'gaia-input',
- ready: function() {
- this.typeChanged();
+ properties: {
+ label: String,
+ value: {
+ notify: true,
+ observer: 'updateDomainVisibility_',
+ type: String
+ },
+
+ type: {
+ observer: 'typeChanged_',
+ type: String
+ },
+
+ domain: {
+ observer: 'updateDomainVisibility_',
+ type: String
+ },
+
+ disabled: Boolean,
+
+ required: Boolean,
+
+ error: String,
+
+ isInvalid: Boolean
+ },
+
+ attached: function() {
+ this.typeChanged_();
},
onKeyDown: function(e) {
this.isInvalid = false;
},
- setDomainVisibility: function() {
+ updateDomainVisibility_: function() {
this.$.domainLabel.hidden = (this.type !== 'email') || !this.domain ||
- (this.value.indexOf('@') !== -1);
+ (this.value && this.value.indexOf('@') !== -1);
},
onTap: function() {
@@ -31,12 +57,12 @@ Polymer('gaia-input', (function() {
},
checkValidity: function() {
- var isValid = this.$.input.validity.valid;
- this.isInvalid = !isValid;
- return isValid;
+ var valid = this.$.input.validate();
+ this.isInvalid = !valid;
+ return valid;
},
- typeChanged: function() {
+ typeChanged_: function() {
if (this.type == 'email') {
this.$.input.pattern = INPUT_EMAIL_PATTERN;
this.$.input.type = 'text';
@@ -44,16 +70,8 @@ Polymer('gaia-input', (function() {
this.$.input.removeAttribute('pattern');
this.$.input.type = this.type;
}
- this.setDomainVisibility();
- },
-
- valueChanged: function() {
- this.setDomainVisibility();
- },
-
- domainChanged: function() {
- this.setDomainVisibility();
- },
+ this.updateDomainVisibility_();
+ }
};
})());
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.css b/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.css
index 7175f961cd0..728f518659b 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.css
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.css
@@ -4,6 +4,7 @@
*/
:host {
+ display: block;
font-size: 16px;
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.html b/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.html
index b887708eee7..2c75ba39bb7 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.html
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.html
@@ -1,38 +1,41 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/polymer/layout.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
A simple input form with a button. Being used for typing email or password.
User should put one or more <gaia-input>s inside.
Example:
- <gaia-input-form buttonText="Submit">
+ <gaia-input-form button-text="Submit">
<gaia-input label="Email" type="email"></gaia-input>
<gaia-input label="Password" type="password"></gaia-input>
<gaia-input label="OTP"></gaia-input>
</gaia-input-form>
Attributes:
- 'buttonText' - text on the button.
+ 'button-text' - text on the button.
Events:
'submit' - fired on button click or "Enter" press inside input field.
- Methods:
- 'focus' - focuses input field.
-->
-<polymer-element name="gaia-input-form" vertical start-justified layout
- attributes="buttonText"
- on-keydown="{{onKeyDown}}">
+<dom-module name="gaia-input-form">
+ <link rel="stylesheet" href="gaia_input_form.css">
+
<template>
- <link rel="stylesheet" href="gaia_input_form.css">
- <content id="inputs" select="gaia-input"></content>
- <div horizontal justified layout center reverse>
- <gaia-raised-on-focus-button id="button" class="blue-button"
- on-tap="{{onButtonClicked}}" self-end>
- {{buttonText}}
- </gaia-raised-on-focus-button>
- <content> </content>
+ <div on-keydown="onKeyDown_">
+ <content id="inputs" select="gaia-input"></content>
+ <div class="horizontal-reverse justified layout center">
+ <gaia-button id="button" on-tap="onButtonClicked_" class="self-end">
+ <span>[[buttonText]]</span>
+ </gaia-button>
+ <content> </content>
+ </div>
</div>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.js b/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.js
index 811f08b989c..a49348b27cc 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.js
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_input_form.js
@@ -1,24 +1,44 @@
-/* Copyright 2015 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-Polymer('gaia-input-form', (function() {
- return {
- onButtonClicked: function() {
- this.fire('submit');
- },
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
- onKeyDown: function(e) {
- if (e.keyCode == 13 && !this.$.button.disabled)
- this.onButtonClicked();
- },
+Polymer({
+ is: 'gaia-input-form',
- set disabled(value) {
- var controls = this.querySelectorAll(
- ':host /deep/ [role="button"], :host /deep/ [is="core-input"]');
- for (var i = 0, control; control = controls[i]; ++i)
- control.disabled = value;
+ properties: {
+ disabled: {
+ type: Boolean,
+ observer: 'onDisabledChanged_',
},
- };
-})());
+
+ buttonText: String
+ },
+
+ onButtonClicked_: function() {
+ this.fire('submit');
+ },
+
+ getInputs_: function() {
+ return Polymer.dom(this.$.inputs).getDistributedNodes();
+ },
+
+ onKeyDown_: function(e) {
+ if (e.keyCode != 13 || this.$.button.disabled)
+ return;
+ if (this.getInputs_().indexOf(e.target) == -1)
+ return;
+ this.onButtonClicked_();
+ },
+
+ getControls_: function() {
+ var controls = this.getInputs_();
+ controls.push(this.$.button);
+ return controls.concat(Polymer.dom(this).querySelectorAll('gaia-button'));
+ },
+
+ onDisabledChanged_: function(disabled) {
+ this.getControls_().forEach(function(control) {
+ control.disabled = disabled;
+ });
+ }
+});
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.css b/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.css
index 9c2529c231b..37c6b5671c1 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.css
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.css
@@ -4,16 +4,16 @@
*/
:host {
- height: 100%;
- width: 100%;
+ display: block;
+ position: relative;
}
-core-icon[icon='warning'] {
- color: rgb(255, 193, 7);
+iron-icon[icon='warning'] {
+ color: var(--google-yellow-500);
margin: 0 15px 0 0;
}
-:host-context(html[dir=rtl]) core-icon[icon='warning'] {
+:host-context(html[dir=rtl]) iron-icon[icon='warning'] {
margin: 0 0 0 15px;
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.html b/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.html
index be137ac0eb9..d4d2d20e57f 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.html
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.html
@@ -1,7 +1,15 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/polymer/layout.html">
-<link rel="import" href="chrome://resources/polymer/core-animated-pages/core-animated-pages.html">
-<link rel="import" href="chrome://resources/polymer/core-animated-pages/transitions/cross-fade.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/fade-in-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/fade-out-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animatable.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animated-pages.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
Password changed UI for the New Gaia flow.
@@ -31,63 +39,63 @@
'focus' - if current card is the first one it focuses password input.
-->
-<polymer-element name="gaia-password-changed" vertical layout
- attributes="email">
+<dom-module name="gaia-password-changed">
+ <link rel="stylesheet" href="gaia_password_changed.css">
+
<template>
- <link rel="stylesheet" href="gaia_password_changed.css">
- <core-animated-pages id="animatedPages" transitions="cross-fade-all" flex
- on-core-animated-pages-transition-end="{{onTransitionEnd}}">
- <section flex>
- <gaia-card id="oldPasswordCard">
- <gaia-header class="header" email="{{email}}">
+ <neon-animated-pages id="animatedPages" class="fit"
+ entry-animation="fade-in-animation" exit-animation="fade-out-animation"
+ on-neon-animation-finish="onAnimationFinish_" selected="0">
+ <neon-animatable class="fit">
+ <gaia-card id="oldPasswordCard" class="fit">
+ <gaia-header class="header" email="[[email]]">
</gaia-header>
- <div horizontal layout center class="footer gaia-body-text">
+ <div class="footer gaia-body-text" class="horizontal layout center">
<p i18n-content="passwordChangedTitle">
</p>
</div>
<gaia-input-form class="footer" id="oldPasswordInputForm"
- i18n-values="buttonText:nextButtonText">
- <gaia-input id="oldPasswordInput" type="password"
+ disabled="[[disabled]]" on-submit="onPasswordSubmitted_"
+ i18n-values="button-text:nextButtonText">
+ <gaia-input id="oldPasswordInput" type="password" required
i18n-values="error:oldPasswordIncorrect;
label:oldPasswordHint">
</gaia-input>
- <gaia-paper-button noink i18n-content="forgotOldPasswordButtonText"
- class="link-button"
- on-tap="{{onForgotPasswordClicked}}">
- </gaia-paper-button>
+ <gaia-button type="link" on-tap="onForgotPasswordClicked_"
+ i18n-content="forgotOldPasswordButtonText">
+ </gaia-button>
</gaia-input-form>
</gaia-card>
- </section>
- <section flex>
- <gaia-card>
- <gaia-header class="header" email="{{email}}">
+ </neon-animatable>
+ <neon-animatable class="fit">
+ <gaia-card class="fit">
+ <gaia-header class="header" email="[[email]]">
</gaia-header>
<div class="footer">
- <div horizontal layout center class="gaia-body-text">
- <core-icon icon="warning"></core-icon>
- <p flex i18n-content="passwordChangedProceedAnywayTitle">
+ <div class="gaia-body-text horizontal layout center">
+ <iron-icon icon="warning"></iron-icon>
+ <p i18n-content="passwordChangedProceedAnywayTitle" class="flex">
</p>
</div>
- <div horizontal layout justified center>
- <gaia-paper-button noink i18n-content="passwordChangedTryAgain"
- class="link-button"
- on-tap="{{onTryAgainClicked}}">
- </gaia-paper-button>
- <gaia-raised-on-focus-button id="proceedAnywayBtn"
- class="blue-button" on-tap="{{onProceedClicked}}"
+ <div class="horizontal layout justified center">
+ <gaia-button type="link" on-tap="onTryAgainClicked_"
+ i18n-content="passwordChangedTryAgain">
+ </gaia-button>
+ <gaia-button id="proceedAnywayBtn" on-tap="onProceedClicked_"
i18n-content="proceedAnywayButton">
- </gaia-raised-on-focus-button>
+ </gaia-button>
</div>
</div>
</gaia-card>
- </section>
- <section flex vertical layout center-justified>
- <throbber-notice i18n-values="text:gaiaLoadingNewGaia" self-center>
+ </neon-animatable>
+ <neon-animatable class="fit">
+ <throbber-notice class="fit" i18n-values="text:gaiaLoadingNewGaia">
</throbber-notice>
- </section>
- </core-animated-pages>
- <button id="closeButton" is="gaia-icon-button" icon="close"
- i18n-values="aria-label:closeButton" on-click="{{onClose}}">
- </button>
+ </neon-animatable>
+ </neon-animated-pages>
+ <gaia-icon-button id="closeButton" icon="close" on-tap="onClose_"
+ disabled="[[disabled]]" i18n-values="aria-label:closeButton">
+ </gaia-icon-button>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.js b/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.js
index 9887a4b41a2..033ca4bafdf 100644
--- a/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.js
+++ b/chromium/chrome/browser/resources/chromeos/login/gaia_password_changed.js
@@ -1,9 +1,31 @@
-/* Copyright 2015 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Polymer({
+ is: 'gaia-password-changed',
+
+ properties: {
+ email: String,
+
+ disabled: {
+ type: Boolean,
+ value: false
+ }
+ },
+
+ ready: function() {
+ /**
+ * Workaround for
+ * https://github.com/PolymerElements/neon-animation/issues/32
+ * TODO(dzhioev): Remove when fixed in Polymer.
+ */
+ var pages = this.$.animatedPages;
+ delete pages._squelchNextFinishEvent;
+ Object.defineProperty(pages, '_squelchNextFinishEvent',
+ { get: function() { return false; } });
+ },
-Polymer('gaia-password-changed', {
invalidate: function() {
this.$.oldPasswordInput.isInvalid = true;
},
@@ -17,39 +39,31 @@ Polymer('gaia-password-changed', {
this.$.oldPasswordCard.classList.remove('disabled');
},
- ready: function() {
- this.$.oldPasswordInputForm.addEventListener('submit', function() {
- var inputPassword = this.$.oldPasswordInput.value;
- if (!inputPassword)
- this.invalidate();
- else {
- this.$.oldPasswordCard.classList.add('disabled');
- this.disabled = true;
- this.fire('passwordEnter', {password: inputPassword});
- }
- }.bind(this));
- },
focus: function() {
if (this.$.animatedPages.selected == 0)
this.$.oldPasswordInput.focus();
},
- set disabled(value) {
- this.$.oldPasswordInputForm.disabled = value;
+ onPasswordSubmitted_: function() {
+ if (!this.$.oldPasswordInput.checkValidity())
+ return;
+ this.$.oldPasswordCard.classList.add('disabled');
+ this.disabled = true;
+ this.fire('passwordEnter', {password: this.$.oldPasswordInput.value});
},
- onForgotPasswordClicked: function() {
+ onForgotPasswordClicked_: function() {
this.clearPassword();
this.$.animatedPages.selected += 1;
},
- onTryAgainClicked: function() {
+ onTryAgainClicked_: function() {
this.$.oldPasswordInput.isInvalid = false;
this.$.animatedPages.selected -= 1;
},
- onTransitionEnd: function() {
+ onAnimationFinish_: function() {
this.focus();
},
@@ -57,15 +71,14 @@ Polymer('gaia-password-changed', {
this.$.oldPasswordInput.value = '';
},
- onProceedClicked: function() {
+ onProceedClicked_: function() {
this.disabled = true;
this.$.closeButton.hidden = true;
this.$.animatedPages.selected = 2;
this.fire('proceedAnyway');
},
- onClose: function() {
- this.disabled = true;
+ onClose_: function() {
this.fire('cancel');
- },
+ }
});
diff --git a/chromium/chrome/browser/resources/chromeos/login/header_bar.js b/chromium/chrome/browser/resources/chromeos/login/header_bar.js
index 0763c3446d2..306f99ef0e3 100644
--- a/chromium/chrome/browser/resources/chromeos/login/header_bar.js
+++ b/chromium/chrome/browser/resources/chromeos/login/header_bar.js
@@ -173,10 +173,7 @@ cr.define('login', function() {
return;
}
- $('pod-row').loadLastWallpaper();
-
- Oobe.showScreen({id: SCREEN_ACCOUNT_PICKER});
- Oobe.resetSigninUI(true);
+ Oobe.showUserPods();
},
/**
@@ -295,6 +292,10 @@ cr.define('login', function() {
this.updateUI_();
},
+ get allowCancel() {
+ return !!this.allowCancel_;
+ },
+
/**
* Update whether there are kiosk apps.
*
@@ -338,6 +339,8 @@ cr.define('login', function() {
var supervisedUserCreationDialogIsActiveAndNotIntro =
supervisedUserCreationDialogIsActive &&
$('supervised-user-creation').currentPage_ != 'intro';
+ var errorScreenIsActive =
+ (this.signinUIState_ == SIGNIN_UI_STATE.ERROR);
$('add-user-button').hidden =
(!this.isNewGaiaFlow_ && !accountPickerIsActive) ||
@@ -345,14 +348,16 @@ cr.define('login', function() {
enrollmentIsActive ||
isMultiProfilesUI ||
isLockScreen ||
- supervisedUserCreationDialogIsActiveAndNotIntro;
+ supervisedUserCreationDialogIsActiveAndNotIntro ||
+ errorScreenIsActive;
$('more-settings-header-bar-item').hidden =
!this.showCreateSupervised_ ||
isNewGaiaScreenWithBackButton ||
supervisedUserCreationDialogIsActive;
$('cancel-add-user-button').hidden =
- ((gaiaIsActive || isPasswordChangedUI || isSamlPasswordConfirm) &&
- this.isNewGaiaFlow_) ||
+ ((gaiaIsActive || isPasswordChangedUI || isSamlPasswordConfirm ||
+ errorScreenIsActive) &&
+ this.isNewGaiaFlow_) ||
accountPickerIsActive ||
!this.allowCancel_ ||
wrongHWIDWarningIsActive ||
diff --git a/chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.html b/chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.html
index 32858deb4ac..ef6e82e5cc8 100644
--- a/chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.html
+++ b/chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.html
@@ -1,10 +1,19 @@
-<link rel="import" href="chrome://oobe/custom_elements.html">
-<link rel="import" href="chrome://resources/polymer/core-animated-pages/core-animated-pages.html">
-<link rel="import" href="chrome://resources/polymer/core-iconset-svg/core-iconset-svg.html">
-<link rel="import" href="chrome://resources/polymer/core-item/core-item.html">
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
-<core-iconset-svg id="host-pairing-icons" iconSize="48">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/fade-in-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/fade-out-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animatable-behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animated-pages.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-item/paper-icon-item.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+
+<iron-iconset-svg name="host-pairing-icons" size="48">
<svg>
<defs>
<g id="cast">
@@ -12,12 +21,13 @@
</g>
</defs>
</svg>
-</core-iconset-svg>
+</iron-iconset-svg>
-<polymer-element name="host-pairing-page" noscript>
- <template>
- <link rel="stylesheet" href="oobe_screen_host_pairing_page.css">
+<dom-module name="host-pairing-page">
+ <link rel="stylesheet" href="oobe_screen_host_pairing_page.css">
+
+ <template>
<div id="title">
<content select=".title"></content>
</div>
@@ -25,52 +35,59 @@
<content></content>
</div>
</template>
-</polymer-element>
+</dom-module>
-<polymer-element name="host-pairing-screen" extends="oobe-screen">
- <template>
- <link rel="stylesheet" href="oobe_screen_host_pairing.css">
+<dom-module name="host-pairing-screen">
+
+ <link rel="stylesheet" href="oobe_screen_host_pairing.css">
- <core-animated-pages transitions="cross-fade-all"
- selected="{{C.page}}">
+ <template>
+ <neon-animated-pages attr-for-selected="name" selected="[[C.page]]"
+ entry-animation="fade-in-animation" exit-animation="fade-out-animation">
<host-pairing-page name="welcome">
- <div class="title">{{'welcomeTitle' | i18n}}</div>
- <div>{{'welcomeText' | i18n}}</div>
+ <div class="title" i18n-content="login_HostPairingScreen_welcomeTitle">
+ </div>
+ <div i18n-content="login_HostPairingScreen_welcomeText"></div>
</host-pairing-page>
<host-pairing-page name="code-confirmation">
- <div class="title">{{'confirmationTitle' | i18n}}</div>
+ <div class="title"
+ i18n-content="login_HostPairingScreen_confirmationTitle">
+ </div>
<div id="code">{{C.code}}</div>
</host-pairing-page>
<host-pairing-page name="update">
- <div class="title">{{'updatingTitle' | i18n}}</div>
- <!-- Not yet implemented on backend side. -->
- <!--div>{{['updatingText', C.downloadedMb, C.totalMb] | i18n}}</div-->
+ <div class="title" i18n-content="login_HostPairingScreen_updatingTitle">
+ </div>
</host-pairing-page>
<host-pairing-page name="enrollment-introduction">
- <div class="title">{{'enrollTitle' | i18n}}</div>
+ <div class="title" i18n-content="login_HostPairingScreen_enrollTitle">
+ </div>
</host-pairing-page>
<host-pairing-page name="enrollment">
<div class="title">
<!-- 'enrollmentTitle' contains <strong> tag. We need to wrap it in
'html-echo' to prevent HTML escaping. -->
- <html-echo
- content="{{['enrollingTitle', C.enrollmentDomain] | i18n}}">
+ <html-echo content="[[getEnrollmentStepTitle_(C.enrollmentDomain)]]">
</html-echo>
</div>
</host-pairing-page>
<host-pairing-page name="enrollment-error">
- <div class="title">{{'enrollmentErrorTitle' | i18n}}</div>
- <div>{{'errorNeedsRestart' | i18n}}</div>
+ <div class="title"
+ i18n-content="login_HostPairingScreen_enrollmentErrorTitle">
+ </div>
+ <div i18n-content="login_HostPairingScreen_errorNeedsRestart"></div>
</host-pairing-page>
<host-pairing-page name="pairing-done">
- <div class="title">{{'doneTitle' | i18n}}</div>
- <div>{{'doneText' | i18n}}</div>
+ <div class="title" i18n-content="login_HostPairingScreen_doneTitle">
+ </div>
+ <div i18n-content="login_HostPairingScreen_doneText"></div>
</host-pairing-page>
- </core-animated-pages>
- <core-item id="device-indicator"class="font-scalable"
- icon="host-pairing-icons:cast">
+ </neon-animated-pages>
+ <paper-icon-item id="device-indicator">
+ <iron-icon icon="host-pairing-icons:cast" item-icon></iron-icon>
<div id="device-label">{{C.deviceName}}</div>
- </core-item>
+ </paper-icon-item>
<div id="illustration"></div>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.js b/chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.js
index bfeed107a79..25baa321650 100644
--- a/chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.js
+++ b/chromium/chrome/browser/resources/chromeos/login/host-pairing-screen.js
@@ -2,19 +2,37 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('host-pairing-screen', (function() {
+Polymer({
+ is: 'host-pairing-page',
+
+ behaviors: [Polymer.NeonAnimatableBehavior]
+});
+
+Polymer((function() {
'use strict';
/** @const */ var CALLBACK_CONTEXT_READY = 'contextReady';
return {
+ is: 'host-pairing-screen',
+
+ behaviors: [login.OobeScreenBehavior],
+
onBeforeShow: function() {
Oobe.getInstance().headerHidden = true;
},
/** @override */
initialize: function() {
+ ['code',
+ 'deviceName',
+ 'enrollmentDomain',
+ 'page'].forEach(this.registerBoundContextField, this);
this.send(CALLBACK_CONTEXT_READY);
+ },
+
+ getEnrollmentStepTitle_: function(enrollmentDomain) {
+ return this.i18n(['enrollingTitle', enrollmentDomain]);
}
};
})());
diff --git a/chromium/chrome/browser/resources/chromeos/login/html-echo.html b/chromium/chrome/browser/resources/chromeos/login/html-echo.html
index fdd145cc293..f6aa348fe06 100644
--- a/chromium/chrome/browser/resources/chromeos/login/html-echo.html
+++ b/chromium/chrome/browser/resources/chromeos/login/html-echo.html
@@ -1,4 +1,9 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+
<!--
The <html-echo> injects given |content| into its innerHTML, bypassing HTML
escaping, which is always made by Polymer when we insert the result of an
@@ -12,4 +17,5 @@
<span><div>Hello</div></span>
-->
-<polymer-element name="html-echo" attributes="content"></polymer-element>
+<dom-module name="html-echo"></dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/html-echo.js b/chromium/chrome/browser/resources/chromeos/login/html-echo.js
index 492dd25e3ef..25821c86bb3 100644
--- a/chromium/chrome/browser/resources/chromeos/login/html-echo.js
+++ b/chromium/chrome/browser/resources/chromeos/login/html-echo.js
@@ -2,8 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('html-echo', {
- contentChanged: function() {
- this.innerHTML = this.content;
+Polymer({
+ is: 'html-echo',
+
+ properties: {
+ content: {
+ type: String,
+ observer: 'contentChanged_'
+ }
+ },
+
+ contentChanged_: function(content) {
+ this.innerHTML = content;
}
});
diff --git a/chromium/chrome/browser/resources/chromeos/login/images/chrome_retail_login.png b/chromium/chrome/browser/resources/chromeos/login/images/chrome_retail_login.png
index 9799d38acbd..b155153e671 100644
--- a/chromium/chrome/browser/resources/chromeos/login/images/chrome_retail_login.png
+++ b/chromium/chrome/browser/resources/chromeos/login/images/chrome_retail_login.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/login/indeterminate-progress.html b/chromium/chrome/browser/resources/chromeos/login/indeterminate-progress.html
deleted file mode 100644
index b5f52b2cdb7..00000000000
--- a/chromium/chrome/browser/resources/chromeos/login/indeterminate-progress.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/paper-progress/paper-progress.html">
-
-<!--
-Progress bar for the cases when the length of the task is unknown.
-Displays a cyclic animation without an indication of progress.
-Published properties:
- * backgroundColor
- * rate - [1 - 10]. Sets the animation's rate.
- * runnerColor
- * runnerPortion - [1 - 100]. Portion of runner's width relative to progress
- bar width (in percents).
-
-TODO(dzhioev): Polymer doesn't provide an indeterminate mode for
-<paper-progress> for now, but it will soon. So this element should be replaced
-with <paper-progress> when it'll have an indeterminate mode.
-http://crbug.com/423363
--->
-
-<polymer-element name="indeterminate-progress"
- attributes="backgroundColor rate runnerColor runnerPortion">
- <template>
- <style>
- :host {
- display: block;
- height: 4px;
- }
-
- paper-progress {
- display: block;
- width: 100%;
- height: 100%;
- }
-
- paper-progress::shadow #secondaryProgress {
- background-color: {{runnerColor}};
- }
-
- paper-progress::shadow #activeProgress,
- paper-progress::shadow #progressContainer {
- background-color: {{backgroundColor}};
- }
- </style>
-
- <paper-progress id="progress" value="{{primaryProgress}}"
- secondaryProgress="{{secondaryProgress}}"></paper-progress>
- </template>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/chromeos/login/indeterminate-progress.js b/chromium/chrome/browser/resources/chromeos/login/indeterminate-progress.js
deleted file mode 100644
index 2a59b2715e9..00000000000
--- a/chromium/chrome/browser/resources/chromeos/login/indeterminate-progress.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (c) 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-Polymer('indeterminate-progress', {
- runnerPortion: 20,
- rate: 1,
- runnerColor: '#0f9d58',
- backgroundColor: '#c8c8c8',
-
- progress: 0,
- min: Math.min,
- max: Math.max,
-
- computed: {
- scaledProgress: '((100 + runnerPortion) * progress / 100) - runnerPortion',
- primaryProgress: 'max(0, scaledProgress)',
- secondaryProgress: 'min(scaledProgress + runnerPortion, 100)',
- timeout: '20 / min(max(rate, 1), 10)'
- },
-
- ready: function() {
- },
-
- doProgress: function() {
- if (this.progress + 1 > 100)
- this.progress = 0;
- else
- ++this.progress;
- this.async(this.doProgress, null, this.timeout);
- }
-});
diff --git a/chromium/chrome/browser/resources/chromeos/login/login.html b/chromium/chrome/browser/resources/chromeos/login/login.html
index 11cb9edf051..8f5015f887b 100644
--- a/chromium/chrome/browser/resources/chromeos/login/login.html
+++ b/chromium/chrome/browser/resources/chromeos/login/login.html
@@ -8,13 +8,12 @@
<meta name="google" value="notranslate">
<title i18n-content="title"></title>
<include src="login_resources.html">
-<include src="throbber_notice.html">
<include src="notification_card.html">
<script src="chrome://oobe/login.js"></script>
<script src="chrome://oobe/gaia_auth_host.js"></script>
</head>
<body i18n-values=".style.fontFamily:fontfamily;">
<include src="screen_container.html">
- <script src="chrome://resources/js/i18n_template_polymer.js"></script>
+ <script src="chrome://resources/js/i18n_template.js"></script>
</body>
</html>
diff --git a/chromium/chrome/browser/resources/chromeos/login/login_common.js b/chromium/chrome/browser/resources/chromeos/login/login_common.js
index a3205720c98..fbe7568f1ed 100644
--- a/chromium/chrome/browser/resources/chromeos/login/login_common.js
+++ b/chromium/chrome/browser/resources/chromeos/login/login_common.js
@@ -188,6 +188,15 @@ cr.define('cr.ui', function() {
};
/**
+ * Show user-pods.
+ */
+ Oobe.showUserPods = function() {
+ $('pod-row').loadLastWallpaper();
+ Oobe.showScreen({id: SCREEN_ACCOUNT_PICKER});
+ Oobe.resetSigninUI(true);
+ };
+
+ /**
* Clears error bubble as well as optional menus that could be open.
*/
Oobe.clearErrors = function() {
@@ -337,18 +346,23 @@ cr.define('cr.ui', function() {
};
/**
- * Shows/hides login UI control bar with buttons like [Shut down].
+ * Returns true if enrollment was successful. Dismisses the enrollment
+ * attribute screen if it's present.
*/
- Oobe.showControlBar = function(show) {
- Oobe.getInstance().headerHidden = !show;
+ Oobe.isEnrollmentSuccessfulForTest = function() {
+ if (document.querySelector(
+ '.oauth-enroll-state-attribute-prompt') != undefined) {
+ chrome.send('oauthEnrollAttributes', ['', '']);
+ }
+
+ return document.querySelector('.oauth-enroll-state-success') != undefined;
};
/**
- * Sets the current state of the virtual keyboard (shown/hidden, size).
+ * Shows/hides login UI control bar with buttons like [Shut down].
*/
- Oobe.setKeyboardState = function(shown, width, height) {
- Oobe.getInstance().virtualKeyboardShown = shown;
- Oobe.getInstance().setVirtualKeyboardSize(width, height);
+ Oobe.showControlBar = function(show) {
+ Oobe.getInstance().headerHidden = !show;
};
/**
@@ -395,7 +409,7 @@ disableTextSelectAndDrag(function(e) {
(function() {
'use strict';
- function initializeOobe() {
+ document.addEventListener('DOMContentLoaded', function() {
// Immediately load async assets.
// TODO(dconnelly): remove this at some point and only load as needed.
// See crbug.com/236426
@@ -407,15 +421,5 @@ disableTextSelectAndDrag(function(e) {
});
cr.ui.Oobe.initialize();
- }
-
- document.addEventListener('DOMContentLoaded', function() {
- if (!window['WAIT_FOR_POLYMER']) {
- initializeOobe();
- return;
- }
- window.addEventListener('polymer-ready', function() {
- initializeOobe();
- });
});
})();
diff --git a/chromium/chrome/browser/resources/chromeos/login/login_resources.html b/chromium/chrome/browser/resources/chromeos/login/login_resources.html
index 08d04d68432..aac67471b73 100644
--- a/chromium/chrome/browser/resources/chromeos/login/login_resources.html
+++ b/chromium/chrome/browser/resources/chromeos/login/login_resources.html
@@ -61,3 +61,4 @@
<script src="chrome://resources/js/util.js"></script>
<script src="chrome://oobe/strings.js"></script>
<script src="chrome://oobe/keyboard_utils.js"></script>
+<script src="chrome://resources/js/polymer_config.js"></script>
diff --git a/chromium/chrome/browser/resources/chromeos/login/notification_card.css b/chromium/chrome/browser/resources/chromeos/login/notification_card.css
index 7a728f3b0be..2be458dd11d 100644
--- a/chromium/chrome/browser/resources/chromeos/login/notification_card.css
+++ b/chromium/chrome/browser/resources/chromeos/login/notification_card.css
@@ -11,23 +11,17 @@
margin-bottom: 14px;
}
-/* ':host' and '[icon]' are needed to increase selector's specificity. */
-:host core-icon[icon] {
+:host iron-icon {
height: 28px;
width: 28px;
}
-core-icon[icon=warning] {
- color: rgb(251, 192, 45);
+iron-icon[icon=warning] {
+ color: var(--google-yellow-500);
}
-core-icon[icon=done] {
- color: rgb(15, 157, 88);
-}
-
-#heading {
- font-size: 20px;
- margin-bottom: 14px;
+iron-icon[icon=done] {
+ color: var(--google-green-500);
}
#text-container {
@@ -37,14 +31,8 @@ core-icon[icon=done] {
text-align: center;
}
-paper-button {
- background-color: rgb(66, 133, 244);
- color: rgb(255, 255, 255);
- min-width: 126px;
-}
-
a {
- color: rgb(66, 133, 244);
+ color: var(--google-blue-500);
text-decoration: none;
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/notification_card.html b/chromium/chrome/browser/resources/chromeos/login/notification_card.html
index 351d1fbd3b1..641766b1922 100644
--- a/chromium/chrome/browser/resources/chromeos/login/notification_card.html
+++ b/chromium/chrome/browser/resources/chromeos/login/notification_card.html
@@ -2,23 +2,22 @@
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/paper-button/paper-button.html">
-<link rel="import" href="chrome://resources/polymer/core-icons/core-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
A simple notification card with a button, link (optional) and icon (optional).
Example:
- <notification-card buttonLabel="OK" linkLabel="What?" heading="Hello!"
- type="success">
+ <notification-card button-label="OK" link-label="What?" type="success">
Great success!
</notification-card>
Atributes:
- 'buttonLabel' - label displayed on the button. If empty or not set, the
+ 'button-label' - label displayed on the button. If empty or not set, the
button is hidden.
- 'linkLabel' - text of the link. If empty or not set, the link is hidden.
- 'heading' - heading. Can be omitted.
+ 'link-label' - text of the link. If empty or not set, the link is hidden.
'type' - icon type. Can be either 'success' or 'fail'. If not set, no icon
is displayed.
@@ -27,36 +26,32 @@
'linkclick' - fired on link click.
-->
-<polymer-element name="notification-card"
- attributes="buttonLabel linkLabel heading type">
- <template>
- <link rel="stylesheet" href="notification_card.css">
+<dom-module name="notification-card">
+ <link rel="stylesheet" href="notification_card.css">
- <div id="container" vertical layout center fit>
- <div flex vertical layout center center-justified>
- <div id="icon-container" vertical layout center hidden?="{{!type}}">
- <template if="{{type == 'fail'}}">
- <core-icon icon="warning"></core-icon>
- </template>
- <template if="{{type == 'success'}}">
- <core-icon icon="done"></core-icon>
- </template>
- </div>
- <div id="heading" hidden?="{{!heading}}">
- {{heading}}
- </div>
+ <template>
+ <div id="container" class="vertical layout center fit">
+ <div class="flex vertical layout center center-justified">
+ <template is="dom-if" if="[[type]]">
+ <div id="icon-container" class="vertical layout center">
+ <iron-icon icon$="[[iconNameByType_(type)]]">
+ </iron-icon>
+ </div>
+ </template>
<div id="text-container">
<content></content>
</div>
</div>
- <div self-stretch horizontal reverse layout justified center>
- <paper-button on-tap="{{buttonClicked}}" hidden?="{{!buttonLabel}}">
- {{buttonLabel}}
- </paper-button>
- <a href="#" on-click="{{linkClicked}}" hidden?="{{!linkLabel}}">
- {{linkLabel}}
+ <div class="self-stretch horizontal-reverse layout justified center">
+ <gaia-button id="submitButton" on-tap="buttonClicked_"
+ hidden$="[[!buttonLabel]]">
+ <span>[[buttonLabel]]</span>
+ </gaia-button>
+ <a href="#" on-click="linkClicked_" hidden$="{{!linkLabel}}">
+ <span>[[linkLabel]]</span>
</a>
</div>
</div>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/notification_card.js b/chromium/chrome/browser/resources/chromeos/login/notification_card.js
index edc91a8bf2f..880ded8bf84 100644
--- a/chromium/chrome/browser/resources/chromeos/login/notification_card.js
+++ b/chromium/chrome/browser/resources/chromeos/login/notification_card.js
@@ -2,15 +2,45 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('notification-card', (function() {
- return {
- buttonClicked: function() {
- this.fire('buttonclick');
+Polymer({
+ is: 'notification-card',
+
+ properties: {
+ buttonLabel: {
+ type: String,
+ value: ''
+ },
+
+ linkLabel: {
+ type: String,
+ value: ''
},
- linkClicked: function(e) {
- this.fire('linkclick');
- e.preventDefault();
+ type: {
+ type: String,
+ value: ''
}
- };
-})());
+ },
+
+ iconNameByType_: function(type) {
+ if (type == 'fail')
+ return 'warning';
+ if (type == 'success')
+ return 'done';
+ console.error('Unknown type "' + type + '".');
+ return '';
+ },
+
+ buttonClicked_: function() {
+ this.fire('buttonclick');
+ },
+
+ linkClicked_: function(e) {
+ this.fire('linkclick');
+ e.preventDefault();
+ },
+
+ get submitButton() {
+ return this.$.submitButton;
+ }
+});
diff --git a/chromium/chrome/browser/resources/chromeos/login/offline_gaia.css b/chromium/chrome/browser/resources/chromeos/login/offline_gaia.css
index f9de8ddbb1d..f8c4dd5b1d7 100644
--- a/chromium/chrome/browser/resources/chromeos/login/offline_gaia.css
+++ b/chromium/chrome/browser/resources/chromeos/login/offline_gaia.css
@@ -4,10 +4,11 @@
*/
:host {
+ display: flex;
+ flex-direction: column;
font-size: 18px;
- height: 100%;
overflow: hidden;
- width: 100%;
+ position: relative;
}
#backButton {
@@ -23,3 +24,12 @@
right: 10px;
transform: scaleX(-1);
}
+
+paper-dialog {
+ --paper-dialog-title: {
+ font-size: 15px;
+ };
+
+ width: 384px;
+}
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/offline_gaia.html b/chromium/chrome/browser/resources/chromeos/login/offline_gaia.html
index ee1955708c5..32a262c687a 100644
--- a/chromium/chrome/browser/resources/chromeos/login/offline_gaia.html
+++ b/chromium/chrome/browser/resources/chromeos/login/offline_gaia.html
@@ -1,9 +1,16 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/polymer/layout.html">
-<link rel="import" href="chrome://resources/polymer/core-animated-pages/core-animated-pages.html">
-<link rel="import" href="chrome://resources/polymer/core-animated-pages/transitions/slide-from-right.html">
-<link rel="import" href="chrome://resources/polymer/paper-button/paper-button.html">
-<link rel="import" href="chrome://resources/polymer/paper-dialog/paper-action-dialog.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/slide-from-left-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/slide-from-right-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/slide-left-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/slide-right-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animatable.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animated-pages.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-dialog/paper-dialog.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
Offline UI for the New Gaia flow.
@@ -33,63 +40,71 @@
screen to password input and shows error that previously
entered password is incorrect.
-->
-<polymer-element name="offline-gaia" vertical layout
- attributes="enterpriseInfo emailDomain">
+<dom-module name="offline-gaia">
+ <link rel="stylesheet" href="offline_gaia.css">
+
<template>
- <link rel="stylesheet" href="offline_gaia.css">
- <core-animated-pages id="animatedPages" transitions="slide-from-right"
- valueattr="id"
- on-core-animated-pages-transition-end="{{onTransitionEnd}}" flex>
- <section flex id="emailSection">
- <gaia-card>
- <div class="header" flex vertical layout end-justified start>
+ <neon-animated-pages id="animatedPages" class="fit" attr-for-selected="id"
+ entry-animation="slide-from-right-animation"
+ exit-animation="slide-to-left-animation"
+ on-neon-animation-finish="onAnimationFinish_" selected="emailSection">
+
+ <neon-animatable id="emailSection" class="fit">
+ <gaia-card class="fit">
+ <div class="header flex vertical layout end-justified start">
<h1 class="welcome-message" i18n-content="offlineLoginWelcome"></h1>
- <p class="enterprise-info" hidden?="{{!enterpriseInfo}}">
- {{enterpriseInfo}}
+ <p class="enterprise-info" hidden$="[[!enterpriseInfo]]">
+ <span>[[enterpriseInfo]]</span>
</p>
</div>
- <div class="footer" flex vertical layout justified>
- <gaia-input-form i18n-values="buttonText:offlineLoginNextBtn"
- on-submit="{{onEmailSubmitted}}">
+ <div class="footer flex vertical layout justified">
+ <gaia-input-form on-submit="onEmailSubmitted_"
+ disabled="[[disabled]]"
+ i18n-values="button-text:offlineLoginNextBtn">
<gaia-input id="emailInput" type="email" required
- domain="{{emailDomain}}"
+ domain="[[emailDomain]]"
i18n-values="error:offlineLoginInvalidEmail;
label:offlineLoginEmail">
</gaia-input>
</gaia-input-form>
- <img self-center src="chrome://theme/IDR_LOGO_GOOGLE_COLOR_90"
- alt="">
+ <img src="chrome://theme/IDR_LOGO_GOOGLE_COLOR_90"
+ class="self-center" alt="">
</div>
</gaia-card>
- </section>
- <section flex id="passwordSection">
- <gaia-card>
- <gaia-header class="header" id="passwordHeader">
+ </neon-animatable>
+
+ <neon-animatable id="passwordSection" class="fit">
+ <gaia-card id="passwordCard" class="fit">
+ <gaia-header class="header flex" id="passwordHeader">
</gaia-header>
- <gaia-input-form class="footer"
- i18n-values="buttonText:offlineLoginNextBtn"
- on-submit="{{onPasswordSubmitted}}">
+ <gaia-input-form class="footer" disabled="[[disabled]]"
+ on-submit="onPasswordSubmitted_"
+ i18n-values="button-text:offlineLoginNextBtn">
<gaia-input id="passwordInput" type="password" required
i18n-values="error:offlineLoginInvalidPassword;
label:offlineLoginPassword">
</gaia-input>
- <gaia-paper-button noink class="link-button"
- i18n-content="offlineLoginForgotPasswordBtn"
- on-tap="{{onForgotPasswordClicked}}">
- </gaia-paper-button>
- <paper-action-dialog id="forgotPasswordDlg" autoCloseDisabled
- backdrop on-keydown="{{onKeyDownOnDialog}}">
- <p i18n-content="offlineLoginForgotPasswordDlg"></p>
- <gaia-paper-button id="dialogCloseBtn" affirmative autofocus
- i18n-content="offlineLoginCloseBtn">
- </gaia-paper-button>
- </paper-action-dialog>
+ <gaia-button type="link" on-tap="onForgotPasswordClicked_"
+ i18n-content="offlineLoginForgotPasswordBtn">
+ </gaia-button>
</gaia-input-form>
</gaia-card>
- </section>
- </core-animated-pages>
- <button id="backButton" is="gaia-icon-button" icon="arrow-back"
- i18n-values="aria-label:backButton" on-click="{{onBack}}">
- </button>
+ </neon-animatable>
+ </neon-animated-pages>
+
+ <gaia-icon-button id="backButton" icon="arrow-back" disabled="[[disabled]]"
+ on-tap="onBack_" hidden>
+ </gaia-icon-button>
+
+ <paper-dialog id="forgotPasswordDlg" no-cancel-on-outside-click
+ on-iron-overlay-closed="onDialogOverlayClosed_">
+ <p i18n-content="offlineLoginForgotPasswordDlg"></p>
+ <div class="buttons">
+ <gaia-button type="dialog" dialog-confirm autofocus
+ i18n-content="offlineLoginCloseBtn">
+ </gaia-button>
+ </div>
+ </paper-dialog>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/offline_gaia.js b/chromium/chrome/browser/resources/chromeos/login/offline_gaia.js
index 6a8ae675f61..25a258defd6 100644
--- a/chromium/chrome/browser/resources/chromeos/login/offline_gaia.js
+++ b/chromium/chrome/browser/resources/chromeos/login/offline_gaia.js
@@ -1,46 +1,62 @@
-/* Copyright 2015 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
-Polymer('offline-gaia', (function() {
+Polymer((function() {
var DEFAULT_EMAIL_DOMAIN = '@gmail.com';
return {
- onTransitionEnd: function() {
+ is: 'offline-gaia',
+
+ properties: {
+ disabled: {
+ type: Boolean,
+ value: false
+ },
+
+ enterpriseInfo: String,
+
+ emailDomain: String
+ },
+
+ ready: function() {
+ /**
+ * Workaround for
+ * https://github.com/PolymerElements/neon-animation/issues/32
+ * TODO(dzhioev): Remove when fixed in Polymer.
+ */
+ var pages = this.$.animatedPages;
+ delete pages._squelchNextFinishEvent;
+ Object.defineProperty(pages, '_squelchNextFinishEvent',
+ { get: function() { return false; } });
+ },
+
+ onAnimationFinish_: function() {
+ this.$.backButton.hidden = this.isEmailSectionActive_();
this.focus();
},
focus: function() {
- if (this.$.animatedPages.selected == 'emailSection')
+ if (this.isEmailSectionActive_())
this.$.emailInput.focus();
else
this.$.passwordInput.focus();
},
- onForgotPasswordClicked: function() {
- this.$.forgotPasswordDlg.toggle();
+ onForgotPasswordClicked_: function() {
+ this.$.forgotPasswordDlg.fitInto = this;
+ this.disabled = true;
+ this.$.forgotPasswordDlg.open();
+ this.$.passwordCard.classList.add('full-disabled');
+ this.$.forgotPasswordDlg.focus();
},
- onForgotPasswordKeyDown: function(e) {
- if (e.keyCode == 13 || e.keyCode == 32)
- return this.onForgotPasswordClicked();
- },
-
- onKeyDownOnDialog: function(e) {
- if (e.keyCode == 27) {
- // Esc
- this.$.forgotPasswordDlg.close();
- e.preventDefault();
- }
+ onDialogOverlayClosed_: function() {
+ this.disabled = false;
+ this.$.passwordCard.classList.remove('full-disabled');
},
setEmail: function(email) {
- // Reorder elements for proper animation for rtl languages.
- if (document.querySelector('html[dir=rtl]')) {
- this.$.emailSection.parentNode.insertBefore(this.$.passwordSection,
- this.$.emailSection);
- }
if (email) {
if (this.emailDomain)
email = email.replace(this.emailDomain, '');
@@ -52,15 +68,29 @@ Polymer('offline-gaia', (function() {
}
},
- onBack: function() {
+ onBack_: function() {
+ this.$.backButton.hidden = true;
this.switchToEmailCard();
},
+ isRTL_: function() {
+ return !!document.querySelector('html[dir=rtl]');
+ },
+
+ isEmailSectionActive_: function() {
+ return this.$.animatedPages.selected == 'emailSection';
+ },
+
switchToEmailCard() {
this.$.passwordInput.value = '';
this.$.passwordInput.isInvalid = false;
this.$.emailInput.isInvalid = false;
- this.$.backButton.hidden = true;
+ if (this.isEmailSectionActive_())
+ return;
+ this.$.animatedPages.entryAnimation =
+ 'slide-from-' + (this.isRTL_() ? 'right' : 'left') + '-animation';
+ this.$.animatedPages.exitAnimation =
+ 'slide-' + (this.isRTL_() ? 'left' : 'right') + '-animation';
this.$.animatedPages.selected = 'emailSection';
},
@@ -73,18 +103,23 @@ Polymer('offline-gaia', (function() {
email = email + DEFAULT_EMAIL_DOMAIN;
}
this.$.passwordHeader.email = email;
- this.$.backButton.hidden = false;
+ if (!this.isEmailSectionActive_())
+ return;
+ this.$.animatedPages.entryAnimation =
+ 'slide-from-' + (this.isRTL_() ? 'left' : 'right') + '-animation';
+ this.$.animatedPages.exitAnimation =
+ 'slide-' + (this.isRTL_() ? 'right' : 'left') + '-animation';
this.$.animatedPages.selected = 'passwordSection';
},
- onEmailSubmitted: function() {
+ onEmailSubmitted_: function() {
if (this.$.emailInput.checkValidity())
this.switchToPasswordCard(this.$.emailInput.value);
else
this.$.emailInput.focus();
},
- onPasswordSubmitted: function() {
+ onPasswordSubmitted_: function() {
if (!this.$.passwordInput.checkValidity())
return;
var msg = {
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe-screen.html b/chromium/chrome/browser/resources/chromeos/login/oobe-screen.html
index 145ef7bb9ca..aba00ff36e7 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe-screen.html
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe-screen.html
@@ -1,3 +1,6 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
-<polymer-element name="oobe-screen" attributes="name"></polymer-element>
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe-screen.js b/chromium/chrome/browser/resources/chromeos/login/oobe-screen.js
index b8bb0e9719d..b79784d145b 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe-screen.js
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe-screen.js
@@ -1,13 +1,29 @@
-// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('oobe-screen', (function() {
+cr.define('login', function() {
/** @const */ var CALLBACK_USER_ACTED = 'userActed';
- function doNothing() {};
+ var OobeScreenBehavior = {
+ properties: {
+ /**
+ * Internal storage of |this.context|. Short name has been choosen for
+ * reason: such name doesn't take much space in HTML data bindings, which
+ * are used very often.
+ * C binded to the native part of the context, that means that all the
+ * changes in the native part appear in C automatically. Reverse is not
+ * true, you should use:
+ * this.context.set(...);
+ * this.context.commitContextChanges();
+ * to send updates to the native part.
+ * TODO(dzhioev): make binding two-way.
+ */
+ C: Object,
+
+ name: String
+ },
- return {
/**
* The login.Screen which is hosting |this|.
*/
@@ -25,23 +41,9 @@ Polymer('oobe-screen', (function() {
context: null,
/**
- * Internal storage of |this.context|. Short name has been choosen for
- * reason: such name doesn't take much space in HTML data bindings, which
- * are used very often.
- * C binded to the native part of the context, that means that all the
- * changes in the native part appear in C automatically. Reverse is not
- * true, you should use:
- * this.context.set(...);
- * this.context.commitContextChanges();
- * to send updates to the native part.
- * TODO(dzhioev): make binding two-way.
- */
- C: null,
-
- /**
* Called when the screen is being registered.
*/
- initialize: doNothing,
+ initialize: function() {},
ready: function() {
if (this.decorate_) {
@@ -51,8 +53,9 @@ Polymer('oobe-screen', (function() {
}
},
- userActed: function(_, _, source) {
- this.send(CALLBACK_USER_ACTED, source.getAttribute('action'));
+ userActed: function(e) {
+ this.send(CALLBACK_USER_ACTED,
+ e.detail.sourceEvent.target.getAttribute('action'));
},
i18n: function(args) {
@@ -79,6 +82,18 @@ Polymer('oobe-screen', (function() {
},
/**
+ * Should be called for every context field which is used in Polymer
+ * declarative data bindings (e.g. {{C.fieldName}}).
+ */
+ registerBoundContextField: function(fieldName) {
+ this.addContextObserver(fieldName, this.onContextFieldChanged_);
+ },
+
+ onContextFieldChanged_: function(_, _, fieldName) {
+ this.notifyPath('C.' + fieldName, this.C[fieldName]);
+ },
+
+ /**
* @final
*/
send: function() {
@@ -211,5 +226,9 @@ Polymer('oobe-screen', (function() {
return '';
}
};
-})());
+
+ return {
+ OobeScreenBehavior: OobeScreenBehavior
+ };
+});
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe.html b/chromium/chrome/browser/resources/chromeos/login/oobe.html
index cdfed605874..f84f6aea02c 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe.html
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe.html
@@ -20,6 +20,6 @@
<div id="popup-overlay" class="popup-overlay" hidden>
<include src="oobe_screen_eula_installation_settings_overlay.html">
</div>
- <script src="chrome://resources/js/i18n_template_polymer.js"></script>
+ <script src="chrome://resources/js/i18n_template.js"></script>
</body>
</html>
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe.js b/chromium/chrome/browser/resources/chromeos/login/oobe.js
index 33729ee4dbc..15dbacfb1f1 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe.js
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe.js
@@ -7,12 +7,6 @@
* This is the main code for the OOBE WebUI implementation.
*/
-/**
- * Setting WAIT_FOR_POLYMER to 'true' will delay screens' registration until
- * Polymer is loaded.
- */
-/* @const */ var WAIT_FOR_POLYMER = true;
-
<include src="login_common.js">
<include src="oobe_screen_auto_enrollment_check.js">
<include src="oobe_screen_controller_pairing.js">
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen.css b/chromium/chrome/browser/resources/chromeos/login/oobe_screen.css
index 5d4abc57646..86b1209ee07 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen.css
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen.css
@@ -77,23 +77,15 @@ html[dir=rtl] .step-controls {
visibility: hidden;
}
-/* Center spinner wrapper vertically and horizontally.
- * Vertical centering uses top: 50% and negative margin
- * instead of top: 0; bottom: 0 due to http://crbug.com/155320.
- */
.step-loading {
- -webkit-align-items: center;
- -webkit-justify-content: center;
- display: -webkit-flex;
+ align-items: center;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
left: 0;
- margin-top: -8px;
position: absolute;
right: 0;
- top: 50%;
-}
-
-.new-gaia-flow .step-loading {
- margin-top: -42px;
+ top: 0;
}
/* Fixes perfomance problem caused by http://crbug.com/229405 . */
@@ -147,7 +139,6 @@ html[dir=rtl] .step-extra-controls {
#oobe.eula #back-button,
#oobe.kiosk-enable #kiosk-cancel-button,
#oobe.kiosk-enable #kiosk-enable-button,
-#oobe.signin #signin-button,
#oobe.user-image #ok-button {
display: block;
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.css b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.css
index 926e3507e27..76b222aa96e 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.css
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.css
@@ -16,11 +16,6 @@
width: 720px;
}
-.gaia-frame {
- height: 300px;
- width: 339px;
-}
-
controller-pairing-page[name='device-select']::shadow #top,
controller-pairing-page[name='establishing-connection']::shadow #top {
height: 200px;
@@ -37,9 +32,12 @@ controller-pairing-page[name='authentication']::shadow #top {
height: 100px;
}
-indeterminate-progress {
+paper-progress {
+ --paper-progress-active-color: var(--google-green-500);
+ --paper-progress-container-color: var(--google-green-100);
margin-bottom: 28px;
margin-top: 28px;
+ width: 100%;
}
#code {
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.css b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.css
index 31f559386e3..f1f2162f78e 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.css
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.css
@@ -50,8 +50,7 @@
display: inline;
}
-#hid-detection .label,
-#hid-keyboard-pincode {
+#hid-detection .label {
display: none;
}
@@ -94,6 +93,3 @@
visibility: visible;
}
-.pairing .show-pincode #hid-keyboard-pincode {
- display: block;
-}
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.html b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.html
index 49a670ed6a2..11cbd6ff502 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.html
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.html
@@ -41,7 +41,7 @@
</span>
<span id="hid-keyboard-label-pairing" class="label"></span>
</div>
- <div id="hid-keyboard-pincode">
+ <div id="hid-keyboard-pincode" hidden>
<div id="hid-keyboard-pincode-sym-1" class="bluetooth-keyboard-button">
</div>
<div id="hid-keyboard-pincode-sym-2" class="bluetooth-keyboard-button">
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js
index ba3564353f5..ed60538fa33 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_hid_detection.js
@@ -17,6 +17,8 @@ login.createScreen('HIDDetectionScreen', 'hid-detection', function() {
var CONTEXT_KEY_KEYBOARD_LABEL = 'keyboard-device-label';
var CONTEXT_KEY_CONTINUE_BUTTON_ENABLED = 'continue-button-enabled';
+ var PINCODE_LENGTH = 6;
+
return {
/**
@@ -71,6 +73,7 @@ login.createScreen('HIDDetectionScreen', 'hid-detection', function() {
this.context.addObserver(
CONTEXT_KEY_KEYBOARD_STATE,
function(stateId) {
+ self.updatePincodeKeysState_();
if (stateId === undefined)
return;
self.setDeviceBlockState_('hid-keyboard-block', stateId);
@@ -80,50 +83,18 @@ login.createScreen('HIDDetectionScreen', 'hid-detection', function() {
} else if (stateId == self.CONNECTION.PAIRING) {
$('hid-keyboard-label-pairing').textContent = self.context.get(
CONTEXT_KEY_KEYBOARD_LABEL, '');
- } else if (stateId == self.CONNECTION.CONNECTED) {
}
}
);
this.context.addObserver(
CONTEXT_KEY_KEYBOARD_PINCODE,
- function(pincode) {
- self.setPincodeKeysState_();
- if (!pincode) {
- $('hid-keyboard-pincode').classList.remove('show-pincode');
- return;
- }
- if (self.context.get(CONTEXT_KEY_KEYBOARD_STATE, '') !=
- self.CONNECTION.PAIRING) {
- return;
- }
- $('hid-keyboard-pincode').classList.add('show-pincode');
- for (var i = 0, len = pincode.length; i < len; i++) {
- var pincodeSymbol = $('hid-keyboard-pincode-sym-' + (i + 1));
- pincodeSymbol.textContent = pincode[i];
- }
- announceAccessibleMessage(
- self.context.get(CONTEXT_KEY_KEYBOARD_LABEL, '') + ' ' + pincode +
- ' ' + loadTimeData.getString('hidDetectionBTEnterKey'));
- }
- );
+ this.updatePincodeKeysState_.bind(this));
this.context.addObserver(
CONTEXT_KEY_KEYBOARD_ENTERED_PART_EXPECTED,
- function(entered_part_expected) {
- if (self.context.get(CONTEXT_KEY_KEYBOARD_STATE, '') != 'pairing')
- return;
- self.setPincodeKeysState_();
- }
- );
+ this.updatePincodeKeysState_.bind(this));
this.context.addObserver(
CONTEXT_KEY_KEYBOARD_ENTERED_PART_PINCODE,
- function(entered_part) {
- if (self.context.get(CONTEXT_KEY_KEYBOARD_STATE, '') !=
- self.CONNECTION.PAIRING) {
- return;
- }
- self.setPincodeKeysState_();
- }
- );
+ this.updatePincodeKeysState_.bind(this));
this.context.addObserver(
CONTEXT_KEY_CONTINUE_BUTTON_ENABLED,
function(enabled) {
@@ -186,20 +157,43 @@ login.createScreen('HIDDetectionScreen', 'hid-detection', function() {
},
/**
- * Sets state for pincode key elements.
+ * Updates state for pincode key elements based on context state.
*/
- setPincodeKeysState_: function() {
+ updatePincodeKeysState_: function() {
+ var pincodeKeys = $('hid-keyboard-pincode');
+ var pincode = this.context.get(CONTEXT_KEY_KEYBOARD_PINCODE, '');
+ var state = this.context.get(CONTEXT_KEY_KEYBOARD_STATE, '');
+
+ if (!pincode || state !== this.CONNECTION.PAIRING) {
+ pincodeKeys.hidden = true;
+ return;
+ }
+
+ if (pincodeKeys.hidden) {
+ pincodeKeys.hidden = false;
+ announceAccessibleMessage(
+ this.context.get(CONTEXT_KEY_KEYBOARD_LABEL, '') + ' ' + pincode +
+ ' ' + loadTimeData.getString('hidDetectionBTEnterKey'));
+ }
+
var entered = this.context.get(
CONTEXT_KEY_KEYBOARD_ENTERED_PART_PINCODE, 0);
+
// whether the functionality of getting num of entered keys is available.
var expected = this.context.get(
CONTEXT_KEY_KEYBOARD_ENTERED_PART_EXPECTED, false);
- var pincodeLength = 7; // including enter-key
- for (var i = 0; i < pincodeLength; i++) {
+
+ if (pincode.length != PINCODE_LENGTH)
+ console.error('Wrong pincode length');
+
+ // Pincode keys plus Enter key.
+ for (var i = 0; i < (PINCODE_LENGTH + 1); i++) {
var pincodeSymbol = $('hid-keyboard-pincode-sym-' + (i + 1));
pincodeSymbol.classList.toggle('key-typed', i < entered && expected);
pincodeSymbol.classList.toggle('key-untyped', i > entered && expected);
pincodeSymbol.classList.toggle('key-next', i == entered && expected);
+ if (i < PINCODE_LENGTH)
+ pincodeSymbol.textContent = pincode[i] ? pincode[i] : '';
}
},
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_host_pairing.css b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_host_pairing.css
index 5be31f2f3e4..a5a9a1a8eb4 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_host_pairing.css
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_host_pairing.css
@@ -7,7 +7,7 @@
:host {
-webkit-user-select: none;
- background-color: rgb(242, 166, 0);
+ background-color: var(--google-yellow-500);
color: white;
display: block;
font-family: 'Roboto';
@@ -15,7 +15,7 @@
height: 100%;
}
-core-animated-pages {
+neon-animated-pages {
left: 114px;
position: absolute;
right: 0;
@@ -40,7 +40,7 @@ core-animated-pages {
}
#device-label {
- margin-left: -0.3em;
+ margin-left: 0.4em;
}
#code {
@@ -49,3 +49,8 @@ core-animated-pages {
font-weight: lighter;
}
+iron-icon {
+ height: 48px;
+ width: 48px;
+}
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.css b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.css
index 897bbae8023..6a82097355a 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.css
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.css
@@ -183,6 +183,6 @@ html[dir=rtl] #oauth-enroll-back-button {
color: black;
}
-#oauth-enroll-skip-button {
- min-width: 0;
+#oauth-enroll-attribute-input {
+ padding-top: 24px;
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.html b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.html
index 19c973ff0f5..9b4d8aabb8c 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.html
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.html
@@ -2,50 +2,50 @@
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+
<div id="oauth-enrollment" class="step no-logo hidden" hidden>
<div id="oauth-enroll-step-contents">
<div id="oauth-enroll-step-signin">
<div id="oauth-enroll-auth-view-container"></div>
</div>
- <div id="oauth-enroll-step-error">
+ <div id="oauth-enroll-step-error" role="alert">
<notification-card id="oauth-enroll-error-card" type="fail"
- i18n-values="buttonLabel:oauthEnrollRetry">
+ i18n-values="button-label:oauthEnrollRetry">
</notification-card>
</div>
- <div id="oauth-enroll-step-success">
+ <div id="oauth-enroll-step-success" role="alert">
<notification-card id="oauth-enroll-success-card" type="success"
- i18n-values="buttonLabel:oauthEnrollDone"
+ i18n-values="button-label:oauthEnrollDone"
i18n-content="oauthEnrollSuccess">
</notification-card>
</div>
<div id="oauth-enroll-step-attribute-prompt">
- <gaia-card id="oauth-enroll-attribute-prompt-card">
- <div class="header" flex vertical layout end-justified start>
+ <gaia-card id="oauth-enroll-attribute-prompt-card" class="fit">
+ <div class="header flex vertical layout end-justified">
<h1 class="welcome-message" style="text-transform:capitalize"
i18n-content="oauthEnrollScreenTitle"></h1>
<p class="enterprise-info"
i18n-content="oauthEnrollDeviceInformation"></p>
</div>
- <div class="footer" flex vertical layout justified>
+ <div class="footer flex vertical layout justified">
<div class="oauth-enroll-step-message">
<span id="oauth-enroll-attribute-prompt-message"
i18n-content="oauthEnrollAttributeExplanation"></span>
<a href="#" id="oauth-enroll-learn-more-link"
class="oauth-enroll-link"
i18n-content="oauthEnrollExplaneAttributeLink"></a>
- <gaia-input-form i18n-values="buttonText:oauthEnrollNextBtn">
- <gaia-input id="oauth-enroll-asset-id"
- type="text"
- i18n-values="label:oauthEnrollAssetIdLabel">
+ <gaia-input-form id="oauth-enroll-attribute-input"
+ i18n-values="button-text:oauthEnrollNextBtn">
+ <gaia-input id="oauth-enroll-asset-id" type="text"
+ i18n-values="label:oauthEnrollAssetIdLabel">
</gaia-input>
- <gaia-input id="oauth-enroll-location"
- type="text"
- i18n-values="label:oauthEnrollLocationLabel">
+ <gaia-input id="oauth-enroll-location" type="text"
+ i18n-values="label:oauthEnrollLocationLabel">
</gaia-input>
- <gaia-paper-button noink id="oauth-enroll-skip-button"
- class="link-button"
- i18n-content="oauthEnrollSkip">
- </gaia-paper-button>
+ <gaia-button type="link" id="oauth-enroll-skip-button"
+ i18n-content="oauthEnrollSkip">
+ </gaia-button>
</gaia-input-form>
</div>
</div>
@@ -53,7 +53,7 @@
</div>
<div id="oauth-enroll-step-attribute-prompt-error">
<notification-card id="oauth-enroll-attribute-prompt-error-card"
- type="fail" i18n-values="buttonLabel:oauthEnrollDone">
+ type="fail" i18n-values="button-label:oauthEnrollDone">
</notification-card>
</div>
</div>
@@ -61,12 +61,13 @@
<span id="oauth-saml-notice-message"></span>
</div>
<div id="oauth-enrollment-controls" class="step-controls"></div>
- <button id="oauth-enroll-back-button" is="gaia-icon-button" icon="arrow-back"
- hidden i18n-values="aria-label:backButton" tabindex="0"></button>
- <button id="oauth-enroll-cancel-button" is="gaia-icon-button" icon="close"
- class="oauth-enroll-button" i18n-values="aria-label:closeButton"
- tabindex="0"></button>
- <button id="oauth-enroll-refresh-button" is="gaia-icon-button" icon="refresh"
- class="oauth-enroll-button" i18n-values="aria-label:closeButton"
- tabindex="0"></button>
+ <gaia-icon-button id="oauth-enroll-back-button" icon="arrow-back" hidden
+ i18n-values="aria-label:backButton">
+ </gaia-icon-button>
+ <gaia-icon-button id="oauth-enroll-cancel-button" icon="close"
+ class="oauth-enroll-button" i18n-values="aria-label:closeButton">
+ </gaia-icon-button>
+ <gaia-icon-button id="oauth-enroll-refresh-button" icon="refresh"
+ class="oauth-enroll-button" i18n-values="aria-label:closeButton">
+ </gaia-icon-button>
</div>
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.js b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.js
index 64bba083bde..e2cedb7833a 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.js
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_oauth_enrollment_webview.js
@@ -178,6 +178,7 @@ login.createScreen('OAuthEnrollmentScreen', 'oauth-enrollment', function() {
*/
onBeforeShow: function(data) {
$('login-header-bar').signinUIState = SIGNIN_UI_STATE.ENROLLMENT;
+ $('inner-container').classList.add('new-gaia-flow');
var gaiaParams = {};
gaiaParams.gaiaUrl = data.gaiaUrl;
gaiaParams.gaiaPath = 'embedded/setup/chromeos';
@@ -187,7 +188,7 @@ login.createScreen('OAuthEnrollmentScreen', 'oauth-enrollment', function() {
gaiaParams.enterpriseDomain = data.management_domain;
gaiaParams.emailDomain = data.management_domain;
}
- gaiaParams.flow = 'enterprise';
+ gaiaParams.flow = data.flow;
this.authenticator_.load(cr.login.Authenticator.AuthMode.DEFAULT,
gaiaParams);
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.css b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.css
index e753aa26eec..75c3bfad5af 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.css
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.css
@@ -111,14 +111,6 @@
display: none;
}
-#new-flow-throbber {
- display: none;
-}
-
-.new-gaia-flow #new-flow-throbber {
- display: block;
-}
-
.image-loading.user-image .new-gaia-flow #step-logo {
display: none;
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.html b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.html
index d51a9938462..b6e1b33f55b 100644
--- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.html
+++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_user_image.html
@@ -39,8 +39,7 @@
<div class="throbber"></div>
<div i18n-content="syncingPreferences"></div>
</div>
- <throbber-notice i18n-values="text:syncingPreferencesNewGaia"
- id="new-flow-throbber">
+ <throbber-notice i18n-values="text:syncingPreferencesNewGaia" class="fit">
</throbber-notice>
</div>
</div>
diff --git a/chromium/chrome/browser/resources/chromeos/login/pairing_device_list.css b/chromium/chrome/browser/resources/chromeos/login/pairing_device_list.css
index 9075c99afe9..892134c260b 100644
--- a/chromium/chrome/browser/resources/chromeos/login/pairing_device_list.css
+++ b/chromium/chrome/browser/resources/chromeos/login/pairing_device_list.css
@@ -18,20 +18,13 @@ core-selector {
pointer-events: none;
}
-core-item {
- padding-bottom: 22px;
- padding-top: 22px;
-}
-
-/* [icon] is needed to increase specificity. */
-core-item core-icon[icon] {
- height: 40px;
- margin-right: 1em;
- width: 40px;
+paper-icon-item {
+ padding-bottom: 18px;
+ padding-top: 18px;
}
/* Items separator. */
-core-item:not(:last-child)::after {
+paper-icon-item:not(:last-of-type)::after {
background-color: rgba(0, 0, 0, 0.1);
bottom: 0;
content: '';
@@ -42,11 +35,21 @@ core-item:not(:last-child)::after {
right: 0;
}
+iron-icon {
+ height: 40px;
+ margin-right: 1em;
+ width: 40px;
+}
+
.throbber {
display: none;
}
-:host([connecting]) core-item.core-selected .throbber {
+.iron-selected {
+ font-weight: bold;
+}
+
+:host([connecting]) .iron-selected .throbber {
background: url(chrome://resources/images/throbber.svg) no-repeat;
background-size: cover;
display: inline-block;
diff --git a/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.css b/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.css
index eab03e13d29..93df538e535 100644
--- a/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.css
+++ b/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.css
@@ -3,6 +3,11 @@
* found in the LICENSE file.
*/
+:host {
+ display: block;
+ position: relative;
+}
+
#closeButton {
color: white;
position: absolute;
@@ -16,7 +21,10 @@
right: auto;
}
-#cancelConfirmDlg {
- position: absolute;
+paper-dialog {
+ --paper-dialog-title: {
+ font-size: 15px;
+ };
+
width: 384px;
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.html b/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.html
index 47800e2600f..f10e848b230 100644
--- a/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.html
+++ b/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.html
@@ -1,7 +1,15 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/polymer/layout.html">
-<link rel="import" href="chrome://resources/polymer/core-animated-pages/core-animated-pages.html">
-<link rel="import" href="chrome://resources/polymer/core-animated-pages/transitions/cross-fade.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/fade-in-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/fade-out-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animatable.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animated-pages.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-dialog/paper-dialog.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<!--
SAML password confirmation UI for the New Gaia flow.
@@ -29,49 +37,54 @@
empties password field and enables buttons.
'focus' - If the current card is the first one, focuses password input.
-->
-<polymer-element name="saml-confirm-password" vertical layout
- attributes="email">
+<dom-module name="saml-confirm-password">
+ <link rel="stylesheet" href="saml_confirm_password.css">
+
<template>
- <link rel="stylesheet" href="saml_confirm_password.css">
- <core-animated-pages id="animatedPages" transitions="cross-fade-all" flex
- on-core-animated-pages-transition-end="{{onTransitionEnd}}">
- <section flex>
- <gaia-card id="confirmPasswordCard">
- <gaia-header class="header" email="{{email}}">
+ <neon-animated-pages id="animatedPages" class="fit"
+ entry-animation="fade-in-animation" exit-animation="fade-out-animation"
+ on-neon-animation-finish="onAnimationFinish_" selected="0">
+ <neon-animatable class="fit">
+ <gaia-card id="confirmPasswordCard" class="fit">
+ <gaia-header class="header flex" email="[[email]]">
</gaia-header>
- <div horizontal layout center class="footer gaia-body-text">
+ <div class="footer gaia-body-text horizontal layout center">
<p i18n-content="confirmPasswordTitle">
</p>
</div>
<gaia-input-form id="inputForm" class="footer"
- on-submit="{{onPasswordSubmitted}}"
- i18n-values="buttonText:nextButtonText">
+ on-submit="onPasswordSubmitted_" disabled="[[disabled]]"
+ i18n-values="button-text:nextButtonText">
<gaia-input id="passwordInput" type="password" required
i18n-values="error:confirmPasswordIncorrectPassword;
label:confirmPasswordLabel;">
</gaia-input>
</gaia-input-form>
- <paper-action-dialog class="footer" id="cancelConfirmDlg"
- layered="false">
- <p i18n-content="accountSetupCancelDialogTitle"></p>
- <gaia-paper-button class="dialog-action-button" affirmative
- autofocus i18n-content="accountSetupCancelDialogNo">
- </gaia-paper-button>
- <gaia-paper-button id="confirmCancel" on-tap="{{onConfirmCancel}}"
- class="dialog-action-button" affirmative
- i18n-content="accountSetupCancelDialogYes">
- </gaia-paper-button>
- </paper-action-dialog>
</gaia-card>
- </section>
- <section flex vertical layout center-justified>
- <throbber-notice i18n-values="text:gaiaLoadingNewGaia" self-center>
+ </neon-animatable>
+ <neon-animatable class="fit">
+ <throbber-notice i18n-values="text:gaiaLoadingNewGaia" class="fit">
</throbber-notice>
- </section>
- </core-animated-pages>
- <button id="closeButton" is="gaia-icon-button" icon="close"
- on-click="{{onClose}}" i18n-values="aria-label:closeButton"
- tabindex="0">
- </button>
+ </neon-animatable>
+ </neon-animated-pages>
+
+ <gaia-icon-button id="closeButton" icon="close" on-tap="onClose_"
+ disabled="[[disabled]]" i18n-values="aria-label:closeButton">
+ </gaia-icon-button>
+
+ <paper-dialog id="cancelConfirmDlg" no-cancel-on-outside-click
+ on-iron-overlay-closed="onDialogOverlayClosed_">
+ <h2 i18n-content="accountSetupCancelDialogTitle"></h2>
+ <div class="buttons">
+ <gaia-button type="dialog" dialog-dismiss autofocus
+ i18n-content="accountSetupCancelDialogNo">
+ </gaia-button>
+ <gaia-button type="dialog" dialog-confirm on-tap="onConfirmCancel_"
+ i18n-content="accountSetupCancelDialogYes">
+ </gaia-button>
+ </div>
+ </paper-dialog>
+
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.js b/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.js
index 5e6110a2e86..5acc6252beb 100644
--- a/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.js
+++ b/chromium/chrome/browser/resources/chromeos/login/saml_confirm_password.js
@@ -1,23 +1,38 @@
-/* Copyright 2015 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
-Polymer('saml-confirm-password', {
- onClose: function() {
- this.disabled = true;
- this.$.cancelConfirmDlg.toggle();
+Polymer({
+ is: 'saml-confirm-password',
+
+ properties: {
+ email: String,
+
+ disabled: {
+ type: Boolean,
+ value: false,
+ observer: 'disabledChanged_'
+ }
},
- onConfirmCancel: function() {
- this.fire('cancel');
+ ready: function() {
+ /**
+ * Workaround for
+ * https://github.com/PolymerElements/neon-animation/issues/32
+ * TODO(dzhioev): Remove when fixed in Polymer.
+ */
+ var pages = this.$.animatedPages;
+ delete pages._squelchNextFinishEvent;
+ Object.defineProperty(pages, '_squelchNextFinishEvent',
+ { get: function() { return false; } });
},
reset: function() {
this.$.cancelConfirmDlg.close();
this.disabled = false;
this.$.closeButton.hidden = false;
- this.$.animatedPages.selected = 0;
+ if (this.$.animatedPages.selected != 0)
+ this.$.animatedPages.selected = 0;
this.$.passwordInput.value = '';
},
@@ -30,28 +45,34 @@ Polymer('saml-confirm-password', {
this.$.passwordInput.focus();
},
- onPasswordSubmitted: function() {
- var inputPassword = this.$.passwordInput.value;
- this.$.passwordInput.value = '';
- if (!inputPassword) {
- this.invalidate();
- } else {
- this.$.animatedPages.selected += 1;
- this.$.closeButton.hidden = true;
- this.fire('passwordEnter', {password: inputPassword});
- }
+ onClose_: function() {
+ this.disabled = true;
+ this.$.cancelConfirmDlg.fitInto = this;
+ this.$.cancelConfirmDlg.open();
},
- set disabled(value) {
- this.$.confirmPasswordCard.classList.toggle('full-disabled', value);
- this.$.inputForm.disabled = value;
- this.$.closeButton.disabled = value;
+ onConfirmCancel_: function() {
+ this.fire('cancel');
},
- ready: function() {
- this.$.cancelConfirmDlg.addEventListener('core-overlay-close-completed',
- function() {
- this.disabled = false;
- }.bind(this));
+ onPasswordSubmitted_: function() {
+ if (!this.$.passwordInput.checkValidity())
+ return;
+ this.$.animatedPages.selected = 1;
+ this.$.closeButton.hidden = true;
+ this.fire('passwordEnter', {password: this.$.passwordInput.value});
+ },
+
+ onDialogOverlayClosed_: function() {
+ this.disabled = false;
+ },
+
+ disabledChanged_: function(disabled) {
+ this.$.confirmPasswordCard.classList.toggle('full-disabled', disabled);
+ },
+
+ onAnimationFinish_: function() {
+ if (this.$.animatedPages.selected == 1)
+ this.$.passwordInput.value = '';
}
});
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_error_message.css b/chromium/chrome/browser/resources/chromeos/login/screen_error_message.css
index 2ab69a8b6ab..459b76a545a 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_error_message.css
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_error_message.css
@@ -139,3 +139,16 @@
#connecting-indicator-ellipsis-3 {
-webkit-animation: connecting-indicator-ellipsis 3s 1s infinite;
}
+
+#error-close-button {
+ color: rgba(0, 0, 0, .54);
+ position: absolute;
+ right: 10px;
+ top: 10px;
+ z-index: 1;
+}
+
+html[dir=rtl] #error-close-button {
+ left: 10px;
+ right: auto;
+}
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_error_message.html b/chromium/chrome/browser/resources/chromeos/login/screen_error_message.html
index 099fdb4a7c0..827798e8aed 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_error_message.html
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_error_message.html
@@ -1,3 +1,5 @@
+<link rel="import" href="chrome://oobe/custom_elements.html">
+
<div id="error-message" class="step hidden show-offline-error" hidden>
<div class="step-contents">
<div class="error-header" aria-live="assertive">
@@ -137,4 +139,7 @@
<div class="error-controls">
<div id="error-message-controls" class="step-controls"></div>
</div>
+ <gaia-icon-button id="error-close-button" icon="close"
+ i18n-values="aria-label:closeButton">
+ </gaia-icon-button>
</div>
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_error_message.js b/chromium/chrome/browser/resources/chromeos/login/screen_error_message.js
index 561f6ff8cdd..5efe9d6b357 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_error_message.js
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_error_message.js
@@ -118,6 +118,7 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
this.context.addObserver(CONTEXT_KEY_UI_STATE, function(ui_state) {
self.setUIState(ui_state);
});
+ $('error-close-button').addEventListener('click', this.cancel.bind(this));
},
/**
@@ -128,6 +129,7 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
$('auto-enrollment-offline-message-text').innerHTML =
loadTimeData.getStringF(
'autoEnrollmentOfflineMessageBody',
+ loadTimeData.getString('deviceType'),
'<b class="' + CURRENT_NETWORK_NAME_CLASS + '"></b>',
'<a id="auto-enrollment-learn-more" class="signin-link" ' +
'"href="#">',
@@ -219,6 +221,9 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
onBeforeShow: function(data) {
cr.ui.Oobe.clearErrors();
cr.ui.DropDown.show('offline-networks-list', false);
+ $('login-header-bar').signinUIState = SIGNIN_UI_STATE.ERROR;
+ $('error-close-button').hidden =
+ !(Oobe.isNewGaiaFlow() && $('login-header-bar').allowCancel);
},
/**
@@ -226,6 +231,7 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
*/
onBeforeHide: function() {
cr.ui.DropDown.hide('offline-networks-list');
+ $('login-header-bar').signinUIState = SIGNIN_UI_STATE.HIDDEN;
},
/**
@@ -412,6 +418,14 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
showConnectingIndicator: function(show) {
this.classList.toggle('show-connecting-indicator', show);
this.onContentChange_();
+ },
+
+ /**
+ * Cancels error screen and drops to user pods.
+ */
+ cancel: function() {
+ if ($('login-header-bar').allowCancel)
+ Oobe.showUserPods();
}
};
});
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.css b/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.css
index 882f3dd113f..73084668e27 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.css
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.css
@@ -8,6 +8,14 @@
width: 722px; /* Should be the same as #gaia-signin. */
}
+/* Size is set explicitly to make <img> consume the space before the image is
+ loaded. This ensures correct screen's size calculation in
+ DisplayManager.updateScreenSize. */
+#fatal-error-message-container img {
+ height: 85px;
+ width: 112px;
+}
+
#fatal-error-message-container {
text-align: center;
width: 100%;
@@ -20,3 +28,24 @@
#fatal-error-button-strip-space-filler {
-webkit-box-flex: 1;
}
+
+.new-gaia-flow #fatal-error {
+ height: 528px;
+ width: 448px;
+}
+
+.new-gaia-flow #fatal-error-message-container,
+.new-gaia-flow #fatal-error-button-strip,
+.fatal-error .new-gaia-flow #step-logo,
+#fatal-error-card {
+ display: none;
+}
+
+.new-gaia-flow #fatal-error-card {
+ bottom: 0;
+ display: block;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.html b/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.html
index e03a4793494..4bd8f973044 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.html
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.html
@@ -1,10 +1,11 @@
+<link rel="import" href="chrome://oobe/custom_elements.html">
+
<div id="fatal-error" class="step hidden" hidden>
<div class="step-contents">
<div id="fatal-error-message-container">
- <img src="chrome://theme/IDR_FATAL_ERROR"><br>
+ <div><img src="chrome://theme/IDR_FATAL_ERROR" alt></div>
<p>
- <span id="fatal-error-message"></span><br>
- <span i18n-content="fatalErrorInstructions"></span>
+ <span id="fatal-error-message"></span>
</p>
</div>
<div id="fatal-error-button-strip">
@@ -13,5 +14,7 @@
i18n-content="fatalErrorDismissButton"></button>
</div>
</div>
+ <notification-card id="fatal-error-card" type="fail">
+ </notification-card>
</div>
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.js b/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.js
index df4cbf3363f..c1c3ecbfca1 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.js
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_fatal_error.js
@@ -27,11 +27,17 @@ login.createScreen('FatalErrorScreen', 'fatal-error', function() { return {
decorate: function() {
$('fatal-error-dismiss-button').addEventListener(
'click', this.onDismiss_.bind(this));
+ $('fatal-error-card').addEventListener(
+ 'buttonclick', this.onDismiss_.bind(this));
},
/** @override */
get defaultControl() {
- return $('fatal-error-dismiss-button');
+ if (Oobe.isNewGaiaFlow()) {
+ return $('fatal-error-card').submitButton;
+ } else {
+ return $('fatal-error-dismiss-button');
+ }
},
/** @override */
@@ -62,8 +68,13 @@ login.createScreen('FatalErrorScreen', 'fatal-error', function() { return {
* @param {function()} callback The callback to be invoked when the
* screen is dismissed.
*/
- show: function(message, callback) {
- $('fatal-error-message').textContent = message;
+ show: function(message, buttonLabel, callback) {
+ if (Oobe.isNewGaiaFlow()) {
+ $('fatal-error-card').textContent = message;
+ $('fatal-error-card').buttonLabel = buttonLabel;
+ } else {
+ $('fatal-error-message').textContent = message;
+ }
this.callback_ = callback;
Oobe.showScreen({id: SCREEN_FATAL_ERROR});
}
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.css b/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.css
index 840f74bbee6..8c4654b55b9 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.css
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.css
@@ -23,14 +23,10 @@
display: none;
}
-throbber-notice {
+#inner-container:not(.new-gaia-flow) throbber-notice {
display: none;
}
-.new-gaia-flow throbber-notice {
- display: block;
-}
-
#gaia-signin.full-width {
padding: 75px 0 0;
}
@@ -73,8 +69,8 @@ throbber-notice {
z-index: 1;
}
-#close-button-item:disabled,
-#back-button-item:disabled {
+#close-button-item[disabled],
+#back-button-item[disabled] {
color: rgb(127, 127, 127);
}
@@ -288,12 +284,3 @@ webview#signin-frame.show {
visibility: hidden;
}
-html /deep/ #forgotPasswordDlg {
- position: fixed;
- top: 200px;
- width: 350px;
-}
-
-html /deep/ #forgotPasswordDlg gaia-paper-button[autofocus] {
- color: rgb(66, 133, 244);
-}
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.html b/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.html
index 6df41a0bdb2..58f75f2dfdc 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.html
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.html
@@ -11,7 +11,7 @@
marginheight="0"
frameborder="0"
scrolling="no"></iframe>
- <offline-gaia id="offline-gaia" hidden></offline-gaia>
+ <offline-gaia id="offline-gaia" class="fit" hidden></offline-gaia>
</div>
<div id="gaia-signin-divider" class="signin-divider" hidden></div>
<div id="signin-right" hidden>
@@ -35,8 +35,8 @@
<throbber-notice i18n-values="text:gaiaLoadingNewGaia"></throbber-notice>
</div>
<notification-card id="gaia-whitelist-error" type="fail"
- i18n-values="buttonLabel:tryAgainButton;
- linkLabel:learnMoreButton">
+ i18n-values="button-label:tryAgainButton;
+ link-label:learnMoreButton">
</notification-card>
<div id="enterprise-info-container" hidden>
<include src="enterprise_info.html">
@@ -44,8 +44,10 @@
<div id="saml-notice-container" hidden>
<span id="saml-notice-message"></span>
</div>
- <button id="back-button-item" is="gaia-icon-button" icon="arrow-back" hidden
- i18n-values="aria-label:backButton" tabindex="0"></button>
- <button id="close-button-item" is="gaia-icon-button" icon="close" hidden
- i18n-values="aria-label:closeButton" tabindex="0"></button>
+ <gaia-icon-button id="back-button-item" icon="arrow-back" hidden
+ i18n-values="aria-label:backButton">
+ </gaia-icon-button>
+ <gaia-icon-button id="close-button-item" icon="close" hidden
+ i18n-values="aria-label:closeButton">
+ </gaia-icon-button>
</div>
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.js b/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
index 388a8a55750..212a9a7d46a 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
@@ -170,6 +170,8 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
this.onAuthCompletedMessage_.bind(this));
this.gaiaAuthHost_.addEventListener('loadAbort',
this.onLoadAbortMessage_.bind(this));
+ this.gaiaAuthHost_.addEventListener(
+ 'identifierEntered', this.onIdentifierEnteredMessage_.bind(this));
$('enterprise-info-hint-link').addEventListener('click', function(e) {
chrome.send('launchHelpApp', [HELP_TOPIC_ENTERPRISE_REPORTING]);
@@ -409,7 +411,6 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
if (this.isNewGaiaFlow) {
$('inner-container').classList.add('new-gaia-flow');
- $('progress-dots').hidden = true;
params.chromeType = data.chromeType;
params.isNewGaiaFlowChromeOS = true;
}
@@ -649,7 +650,12 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
} else {
chrome.send('scrapedPasswordVerificationFailed');
this.showFatalAuthError(
- loadTimeData.getString('fatalErrorMessageVerificationFailed'));
+ loadTimeData.getString('fatalErrorMessageVerificationFailed'),
+ loadTimeData.getString('fatalErrorTryAgainButton'));
+ }
+ if (this.isNewGaiaFlow) {
+ this.classList.toggle('no-right-panel', false);
+ this.classList.toggle('full-width', false);
}
},
@@ -671,8 +677,9 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
* @param {string} email The authenticated user's e-mail.
*/
onAuthNoPassword_: function(email) {
- this.showFatalAuthError(loadTimeData.getString(
- 'fatalErrorMessageNoPassword'));
+ this.showFatalAuthError(
+ loadTimeData.getString('fatalErrorMessageNoPassword'),
+ loadTimeData.getString('fatalErrorTryAgainButton'));
chrome.send('scrapedPasswordCount', [0]);
},
@@ -684,17 +691,18 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
* @param {string} url The URL that was blocked.
*/
onInsecureContentBlocked_: function(url) {
- this.showFatalAuthError(loadTimeData.getStringF(
- 'fatalErrorMessageInsecureURL',
- url));
+ this.showFatalAuthError(
+ loadTimeData.getStringF('fatalErrorMessageInsecureURL', url),
+ loadTimeData.getString('fatalErrorDoneButton'));
},
/**
* Shows the fatal auth error.
* @param {string} message The error message to show.
+ * @param {string} buttonLabel The label to display on dismiss button.
*/
- showFatalAuthError: function(message) {
- login.FatalErrorScreen.show(message, Oobe.showSigninUI);
+ showFatalAuthError: function(message, buttonLabel) {
+ login.FatalErrorScreen.show(message, buttonLabel, Oobe.showSigninUI);
},
/**
@@ -702,7 +710,8 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
*/
missingGaiaInfo_: function() {
this.showFatalAuthError(
- loadTimeData.getString('fatalErrorMessageNoAccountDetails'));
+ loadTimeData.getString('fatalErrorMessageNoAccountDetails'),
+ loadTimeData.getString('fatalErrorTryAgainButton'));
},
/**
@@ -734,7 +743,8 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
credentials.email,
credentials.password,
credentials.authCode,
- credentials.usingSAML
+ credentials.usingSAML,
+ credentials.gapsCookie
]);
}
} else {
@@ -772,6 +782,15 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
},
/**
+ * Invoked when identifierEntered message received.
+ * @param {!Object} e Payload of the received HTML5 message.
+ * @private
+ */
+ onIdentifierEnteredMessage_: function(e) {
+ this.onIdentifierEntered(e.detail);
+ },
+
+ /**
* Clears input fields and switches to input mode.
* @param {boolean} takeFocus True to take focus.
* @param {boolean} forceOnline Whether online sign-in should be forced.
@@ -796,6 +815,8 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
* Reloads extension frame.
*/
doReload: function() {
+ if (this.isLocal)
+ return;
this.error_ = 0;
this.gaiaAuthHost_.reload();
this.loading = true;
@@ -878,10 +899,10 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
return;
}
- $('pod-row').loadLastWallpaper();
- Oobe.showScreen({id: SCREEN_ACCOUNT_PICKER});
+ $('offline-gaia').switchToEmailCard();
+
this.classList.remove('whitelist-error');
- Oobe.resetSigninUI(true);
+ Oobe.showUserPods();
},
/**
@@ -906,6 +927,15 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
},
/**
+ * Handler for identifierEntered event.
+ * @param {!Object} data The identifier entered by user:
+ * {string} accountIdentifier User identifier.
+ */
+ onIdentifierEntered: function(data) {
+ chrome.send('identifierEntered', [data.accountIdentifier]);
+ },
+
+ /**
* Sets welcome and enterpriseinfo strings for offline gaia.
* Also sets callback and sends message whether we already have email and
* should switch to the password screen with error.
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.html b/chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.html
index 8be6fc77ba7..bfa6ee72bbd 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.html
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.html
@@ -158,7 +158,7 @@
<img class="import-pod-image"></img>
<div class="import-pod-name"></div>
</div>
- <button id="supervised-user-creation-close-button-item" is="gaia-icon-button"
- icon="close" i18n-values="aria-label:closeButton" tabindex="0">
- </button>
+ <gaia-icon-button id="supervised-user-creation-close-button-item"
+ icon="close" i18n-values="aria-label:closeButton">
+ </gaia-icon-button>
</div>
diff --git a/chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.js b/chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.js
index c7d44f88d90..cc0bc952e8e 100644
--- a/chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.js
+++ b/chromium/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.js
@@ -1286,7 +1286,7 @@ login.createScreen('SupervisedUserCreationScreen',
/**
* Updates state of login header so that necessary buttons are displayed.
- **/
+ */
onBeforeShow: function(data) {
$('login-header-bar').signinUIState =
SIGNIN_UI_STATE.SUPERVISED_USER_CREATION_FLOW;
@@ -1357,10 +1357,7 @@ login.createScreen('SupervisedUserCreationScreen',
// Make sure no manager password is kept:
this.managerList_.clearPods();
- $('pod-row').loadLastWallpaper();
-
- Oobe.showScreen({id: SCREEN_ACCOUNT_PICKER});
- Oobe.resetSigninUI(true);
+ Oobe.showUserPods();
return;
}
if (postCreationPages.indexOf(this.currentPage_) >= 0) {
diff --git a/chromium/chrome/browser/resources/chromeos/login/throbber_notice.css b/chromium/chrome/browser/resources/chromeos/login/throbber_notice.css
index 7b4a683ad56..8ca67e30023 100644
--- a/chromium/chrome/browser/resources/chromeos/login/throbber_notice.css
+++ b/chromium/chrome/browser/resources/chromeos/login/throbber_notice.css
@@ -3,17 +3,24 @@
* found in the LICENSE file.
*/
-paper-spinner::shadow .circle {
- border-color: rgb(66, 133, 244);
+:host {
+ align-items: center;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
}
paper-spinner {
- height: 38px;
- width: 38px;
+ --paper-spinner-layer-1-color: var(--google-blue-500);
+ --paper-spinner-layer-2-color: var(--google-blue-500);
+ --paper-spinner-layer-3-color: var(--google-blue-500);
+ --paper-spinner-layer-4-color: var(--google-blue-500);
}
-#spinner-container {
+paper-spinner {
+ height: 38px;
margin-bottom: 28px;
+ width: 38px;
}
#spinner-comment {
diff --git a/chromium/chrome/browser/resources/chromeos/login/throbber_notice.html b/chromium/chrome/browser/resources/chromeos/login/throbber_notice.html
index 243432de07a..397f4cd8d3f 100644
--- a/chromium/chrome/browser/resources/chromeos/login/throbber_notice.html
+++ b/chromium/chrome/browser/resources/chromeos/login/throbber_notice.html
@@ -1,12 +1,16 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/paper-spinner/paper-spinner.html">
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
-<polymer-element name="throbber-notice" attributes="text" noscript>
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-spinner/paper-spinner.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+
+<dom-module name="throbber-notice">
+ <link rel="stylesheet" href="throbber_notice.css">
<template>
- <link rel="stylesheet" href="throbber_notice.css">
- <div id="spinner-container" vertical layout center>
- <paper-spinner dir="ltr" active></paper-spinner>
- </div>
- <div id="spinner-comment">{{text}}</div>
+ <paper-spinner dir="ltr" active></paper-spinner>
+ <div id="spinner-comment"><span>[[text]]</span></div>
</template>
-</polymer-element>
+</dom-module>
+
diff --git a/chromium/chrome/browser/resources/chromeos/login/throbber_notice.js b/chromium/chrome/browser/resources/chromeos/login/throbber_notice.js
new file mode 100644
index 00000000000..2b56e0bf024
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/login/throbber_notice.js
@@ -0,0 +1,11 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Polymer({
+ is: 'throbber-notice',
+
+ properties: {
+ text: String
+ }
+});
diff --git a/chromium/chrome/browser/resources/chromeos/network_configuration/js/network_status.js b/chromium/chrome/browser/resources/chromeos/network_configuration/js/network_status.js
index e7127527c41..e8c07f9fc48 100644
--- a/chromium/chrome/browser/resources/chromeos/network_configuration/js/network_status.js
+++ b/chromium/chrome/browser/resources/chromeos/network_configuration/js/network_status.js
@@ -410,10 +410,10 @@ cr.define('network.status', function() {
/**
* Groups networks by type.
- * @param {Object<string, Object>} networkByID A map from network ID to
- * network properties.
- * @return {Object<string, Array<string>>} A map from network type to the
- * list of IDs of networks of that type.
+ * @param {Object<Object>} networkByID A map from network ID to network
+ * properties.
+ * @return {Object<Array<string>>} A map from network type to the list of IDs
+ * of networks of that type.
*/
function createNetworkIDsByType(networkByID) {
var byType = {};
@@ -454,26 +454,26 @@ cr.define('network.status', function() {
/**
* The set of technologies shown to the user.
- * @type {Object<string, boolean>}
+ * @type {Object<boolean>}
*/
this.technologies_ = {};
/**
* A map from network type to the array of IDs of network of that type.
- * @type {Object<string, Array<string>>}
+ * @type {Object<Array<string>>}
*/
this.networkIDsByType_ = {};
/**
* A map from network ID to the network's properties.
- * @type {Object<string, Object>}
+ * @type {Object<Object>}
*/
this.networkByID_ = {};
/**
* A map from network ID to the network's position in the last received
* network list.
- * @type {Object<string, number>}
+ * @type {Object<number>}
*/
this.networkIndexByID_ = {};
diff --git a/chromium/chrome/browser/resources/chromeos/network_configuration/manifest.json b/chromium/chrome/browser/resources/chromeos/network_configuration/manifest.json
index 11a6e5d9170..d03f952f9d2 100644
--- a/chromium/chrome/browser/resources/chromeos/network_configuration/manifest.json
+++ b/chromium/chrome/browser/resources/chromeos/network_configuration/manifest.json
@@ -10,5 +10,5 @@
"networkingPrivate",
"chrome://resources/*"
],
- "content_security_policy": "default-src 'none'; script-src 'self' chrome://resources ; style-src 'self' chrome://resources;"
+ "content_security_policy": "default-src 'none'; script-src 'self' blob: filesystem: chrome://resources ; style-src 'self' blob: filesystem: chrome://resources;"
}
diff --git a/chromium/chrome/browser/resources/chromeos/network_ui/compiled_resources.gyp b/chromium/chrome/browser/resources/chromeos/network_ui/compiled_resources.gyp
index ead34ba25d9..cee42def93e 100644
--- a/chromium/chrome/browser/resources/chromeos/network_ui/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/chromeos/network_ui/compiled_resources.gyp
@@ -8,13 +8,12 @@
'variables': {
'depends': [
- '../../../../../ui/webui/resources/cr_elements/cr_onc/cr_onc_types.js',
+ '../../../../../ui/webui/resources/cr_elements/v1_0/cr_onc/cr_onc_types.js',
'../../../../../ui/webui/resources/js/compiled_resources.gyp:util',
'../../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data',
],
'externs': [
- '../../../../../ui/webui/resources/cr_elements/cr_network_icon/cr_network_icon_externs.js',
- '../../../../../ui/webui/resources/cr_elements/cr_onc/cr_onc_data_externs.js',
+ '../../../../../ui/webui/resources/cr_elements/v1_0/cr_network_icon/cr_network_icon_externs.js',
'../../../../../third_party/closure_compiler/externs/chrome_extensions.js'
],
},
diff --git a/chromium/chrome/browser/resources/chromeos/network_ui/network_ui.html b/chromium/chrome/browser/resources/chromeos/network_ui/network_ui.html
index 6b512f98b24..1152a19fa01 100644
--- a/chromium/chrome/browser/resources/chromeos/network_ui/network_ui.html
+++ b/chromium/chrome/browser/resources/chromeos/network_ui/network_ui.html
@@ -6,9 +6,9 @@
<title id="network" i18n-content="titleText"></title>
<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
<link rel="stylesheet" href="chrome://network/network_ui.css">
- <link rel="import" href="chrome://resources/cr_elements/cr_network_icon/cr_network_icon.html">
- <link rel="import" href="chrome://resources/cr_elements/cr_onc/cr_onc_data.html">
- <link rel="import" href="chrome://resources/polymer/paper-button/paper-button.html">
+ <link rel="import" href="chrome://resources/cr_elements/v1_0/cr_network_icon/cr_network_icon.html">
+ <link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
+ <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
<script src="chrome://resources/js/load_time_data.js"></script>
<script src="chrome://resources/js/util.js"></script>
diff --git a/chromium/chrome/browser/resources/chromeos/network_ui/network_ui.js b/chromium/chrome/browser/resources/chromeos/network_ui/network_ui.js
index 8fcf934222c..467e3c2c69d 100644
--- a/chromium/chrome/browser/resources/chromeos/network_ui/network_ui.js
+++ b/chromium/chrome/browser/resources/chromeos/network_ui/network_ui.js
@@ -110,7 +110,7 @@ var NetworkUI = (function() {
var icon = /** @type {!CrNetworkIconElement} */(
document.createElement('cr-network-icon'));
icon.isListItem = true;
- icon.networkState = CrOncDataElement.create(networkState);
+ icon.networkState = networkState;
cell.appendChild(icon);
return cell;
};
@@ -207,7 +207,7 @@ var NetworkUI = (function() {
loadTimeData.getStringF('defaultNetworkText',
defaultState.Name,
defaultState.ConnectionState);
- icon.networkState = CrOncDataElement.create(defaultState);
+ icon.networkState = defaultState;
} else {
$('default-network-text').textContent =
loadTimeData.getString('noNetworkText');
diff --git a/chromium/chrome/browser/resources/chromeos/offline_app_load.html b/chromium/chrome/browser/resources/chromeos/offline_app_load.html
deleted file mode 100644
index 4d84c310aa9..00000000000
--- a/chromium/chrome/browser/resources/chromeos/offline_app_load.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!doctype html>
-<html i18n-values="dir:textdirection;lang:language">
-<head>
-<meta charset="utf-8">
-<title i18n-content="title">
-</title>
-<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
-<style>
-html {
- height: 100%;
-}
-body {
- color: #000;
- background-image: -webkit-linear-gradient(rgb(255, 255, 255) 50%,
- rgb(236, 244, 255));
- height: 100%;
- padding: 0px;
- margin: 0px;
-}
-#error {
- position: absolute;
- left: 180px;
- top: 150px;
- font-size: 24px;
-}
-#error img {
- margin-right: 10px;
- vertical-align: middle;
-}
-#name {
- font-weight: bold;
-}
-#msg {
-}
-</style>
-</head>
-
-<body id="t">
-
-<div id="error" jsvalues=".title:url">
-<img jsvalues=".src:icon" width="96" height="96">
-<div style="display:inline-block; vertical-align: middle;">
-<div id="name" jsvalues=".innerText:name"></div>
-<div id="msg" jsvalues=".innerText:msg"></div>
-<div id="suggestions" jsselect="suggestionsLearnMore">
- <span jsvalues=".innerHTML:msg"></span>
-</div>
-</div>
-</div>
-
-</body>
-</html>
diff --git a/chromium/chrome/browser/resources/chromeos/provided_file_systems.css b/chromium/chrome/browser/resources/chromeos/provided_file_systems.css
deleted file mode 100644
index 3a62bb30184..00000000000
--- a/chromium/chrome/browser/resources/chromeos/provided_file_systems.css
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright 2014 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-body {
- background-color: rgba(0, 0, 0, 0.05);
- font-size: 14px;
- margin: 20px;
-}
-
-#fileSystems,
-#requestEvents,
-#requestTimeline {
- background-color: white;
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
- margin-bottom: 20px;
-}
-
-#fileSystems table,
-#requestEvents table {
- border-collapse: collapse;
- width: 100%;
-}
-
-#fileSystems th,
-#requestEvents th {
- height: 30px;
-}
-
-#fileSystems .message {
- border-top: 1px solid #eee;
-}
-
-#fileSystems td {
- border-top: 1px solid #eee;
- height: 40px;
- line-height: 24px;
- text-align: center;
-}
-
-#fileSystems td .icon {
- display: inline-block;
- height: 24px;
- vertical-align: middle;
- width: 24px;
-}
-
-#fileSystems tbody tr {
- cursor: pointer;
-}
-
-#fileSystems tbody tr:active td {
- background-color: #eee;
-}
-
-#requestEvents {
- font-size: 12px;
-}
-
-#requestEvents td {
- padding: 8px;
- text-align: center;
- vertical-align: top;
-}
-
-#requestEvents td {
- border-top: 1px solid #eee;
-}
-
-#requestEvents td span {
- border-radius: 5px;
- padding: 3px;
-}
-
-#requestTimeline {
- min-height: 30px;
- position: relative;
- width: 100%;
-}
-
-#requestTimeline .request-timeline-scroller {
- overflow-x: auto;
- overflow-y: hidden;
- width: 100%;
-}
-
-#requestTimeline .request-timeline-padding {
- margin: 20px 10px;
- position: relative;
-}
-
-#requestTimeline .request-timeline-request {
- border: none;
- border-radius: 4px;
- height: 8px;
- margin: 3px 0;
- min-width: 1px;
- padding: 0;
- position: absolute;
- text-align: start;
-}
-
-#requestTimeline .request-timeline-request.selected {
- box-shadow: 0 0 3px 1px deepskyblue;
-}
-
-#requestTimeline .request-timeline-request-overhead {
- background-image: -webkit-canvas(dashedPattern);
- border-radius: 4px;
- height: 100%;
- width: 50%;
-}
-
-#requestTimeline .request-timeline-request-value-size {
- background-color: ivory;
- box-shadow: 0 1px 1px 0 silver;
- color: black;
- display: inline-block;
- font-size: 10px;
- padding: 2px;
- position: relative;
- top: -30px;
- z-index: 2;
-}
-
-#requestTimeline .request-timeline-toolbar {
- display: flex;
- justify-content: flex-end;
- left: 0;
- opacity: 0.75;
- padding: 5px;
- pointer-events: none;
- position: absolute;
- right: 0;
- z-index: 3;
-}
-
-#requestTimeline .request-timeline-toolbar button {
- background-color: #aaa;
- border: none;
- border-radius: 100%;
- color: white;
- min-height: 20px;
- min-width: 20px;
- pointer-events: auto;
-}
-
-#requestTimeline [data-request-type='REQUEST_UNMOUNT'],
-#requestEvents [data-request-type='REQUEST_UNMOUNT'] span {
- background-color: cadetblue;
- color: white;
-}
-
-#requestTimeline [data-request-type='GET_METADATA'],
-#requestEvents [data-request-type='GET_METADATA'] span {
- background-color: orange;
- color: white;
-}
-
-#requestTimeline [data-request-type='READ_DIRECTORY'],
-#requestEvents [data-request-type='READ_DIRECTORY'] span {
- background-color: hotpink;
- color: white;
-}
-
-#requestTimeline [data-request-type='OPEN_FILE'],
-#requestEvents [data-request-type='OPEN_FILE'] span {
- background-color: darkturquoise;
- color: white;
-}
-
-#requestTimeline [data-request-type='CLOSE_FILE'],
-#requestEvents [data-request-type='CLOSE_FILE'] span {
- background-color: mediumspringgreen;
-}
-
-#requestTimeline [data-request-type='READ_FILE'],
-#requestEvents [data-request-type='READ_FILE'] span {
- background-color: royalblue;
- color: white;
-}
-
-#requestTimeline [data-state='rejected'],
-#requestEvents [data-error]:not([data-error='']) span {
- background-color: tomato;
- color: white;
-}
diff --git a/chromium/chrome/browser/resources/chromeos/provided_file_systems.html b/chromium/chrome/browser/resources/chromeos/provided_file_systems.html
deleted file mode 100644
index 384464815e6..00000000000
--- a/chromium/chrome/browser/resources/chromeos/provided_file_systems.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <title>Provided File Systems</title>
- <meta charset="utf-8">
- <link rel="stylesheet" href="chrome://resources/css/chrome_shared.css">
- <link rel="stylesheet" href="provided_file_systems.css">
- <script src="chrome://provided-file-systems/provided_file_systems.js">
- </script>
- </head>
- <body>
- <polymer-element name="file-systems">
- <template>
- <link rel="stylesheet"
- href="chrome://provided-file-systems/provided_file_systems.css">
- <div id="fileSystems">
- <table>
- <thead>
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>Extension ID</th>
- <th>Active Requests</th>
- </tr>
- </thead>
- <tbody>
- <template id="file-system" repeat="{{item in model}}">
- <tr on-click="{{rowClicked}}" data-id="{{item.id}}"
- data-extension-id="{{item.extensionId}}">
- <td>{{item.id}}</td>
- <td>{{item.name}}</td>
- <td>
- <div class="icon" style="background-image:
- -webkit-image-set(
- url(chrome://extension-icon/{{item.extensionId}}/24/1)
- 1x,
- url(chrome://extension-icon/{{item.extensionId}}/48/1)
- 2x)"></div>
- {{item.extensionId}}
- </td>
- <td>{{item.activeRequests}}</td>
- </tr>
- </template>
- </tbody>
- </table>
- </div>
- </template>
- </polymer-element>
-
- <polymer-element name="request-timeline">
- <template>
- <link rel="stylesheet"
- href="chrome://provided-file-systems/provided_file_systems.css">
- <div id="requestTimeline">
- <div class="request-timeline-toolbar">
- <button on-click="{{zoomOutClicked}}">&ndash;</button>
- <button on-click="{{zoomInClicked}}">+</button>
- </div>
- <div class="request-timeline-scroller">
- <div class="request-timeline-padding"
- style="min-height: {{rows.length * ROW_HEIGHT}}px">
- <div class="request-timeline-scroller">
- <template id="request-timeline-request"
- repeat="{{request in chart}}">
- <button class="request-timeline-request"
- on-click="{{elementClicked}}"
- title="{{request.id}}"
- data-id="{{request.id}}"
- data-state="{{request.state}}"
- data-request-type="{{request.requestType}}"
- style="-webkit-margin-start: {{request.left * scale}}px;
- top: {{request.row * ROW_HEIGHT}}px;
- width: {{request.length * scale}}px">
- <div class="request-timeline-request-overhead"
- style="width:
- {{(request.length - request.executionTime) * scale}}px">
- </div>
- <template if=
- "{{request.valueSize && request.length * scale > 50}}">
- <div class="request-timeline-request-value-size">
- {{request.valueSize | formatSize}}
- </div>
- </template>
- </button>
- </template>
- </div>
- </div>
- </div>
- </div>
- </template>
- </polymer-element>
-
- <polymer-element name="request-events">
- <template>
- <link rel="stylesheet"
- href="chrome://provided-file-systems/provided_file_systems.css">
- <div id="requestEvents">
- <table>
- <thead>
- <tr>
- <th>Time</th>
- <th>Request ID</th>
- <th>Request Type</th>
- <th>Size</th>
- <th>JS Time</th>
- <th>Event Type</th>
- <th>Error</th>
- <th>Has Next</th>
- </tr>
- </thead>
- <tbody>
- <template id="request-event" repeat="{{item in model}}">
- <tr>
- <td>
- <a id="request-{{item.id}}"></a>
- {{item.time | formatTime}}
- </td>
- <td>{{item.id}}</td>
- <td data-request-type="{{item.requestType}}">
- <span>{{item.requestType}}</span>
- </td>
- <td>
- <template if={{item.valueSize}}>
- {{item.valueSize | formatSize}}
- </template>
- </td>
- <td>
- <template if={{item.valueSize}}>
- {{item.executionTime | formatExecutionTime}}
- </template>
- </td>
- <td>{{item.eventType}}</td>
- <td data-error="{{item.error}}">
- <span>{{item.error}}</span>
- </td>
- <td>{{item.hasMore | formatHasMore}}</td>
- </tr>
- </template>
- </tbody>
- </table>
- </div>
- </template>
- </polymer-element>
-
- <file-systems id="file-systems">
- </file-systems>
-
- <request-timeline hidden id="request-timeline">
- </request-timeline>
-
- <request-events hidden id="request-events">
- </request-events>
- </body>
-</html>
diff --git a/chromium/chrome/browser/resources/chromeos/provided_file_systems.js b/chromium/chrome/browser/resources/chromeos/provided_file_systems.js
deleted file mode 100644
index 007bf00e947..00000000000
--- a/chromium/chrome/browser/resources/chromeos/provided_file_systems.js
+++ /dev/null
@@ -1,409 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-<include src="../../../../third_party/polymer/components/polymer/polymer.js">
-
-/**
- * Formats size to a human readable form.
- * @param {number} size Size in bytes.
- * @return {string} Output string in a human-readable format.
- */
-function formatSizeCommon(size) {
- if (size < 1024)
- return size + ' B';
- if (size < 1024 * 1024)
- return Math.round(size / 1024) + ' KB';
- return Math.round(size / 1024 / 1024) + ' MB';
-}
-
-// Defines the file-systems element.
-Polymer('file-systems', {
- /**
- * Called when the element is created.
- */
- ready: function() {
- },
-
- /**
- * Selects an active file system from the list.
- * @param {Event} event Event.
- * @param {number} detail Detail.
- * @param {HTMLElement} sender Sender.
- */
- rowClicked: function(event, detail, sender) {
- var requestEventsNode = document.querySelector('#request-events');
- requestEventsNode.hidden = false;
- requestEventsNode.model = [];
-
- var requestTimelineNode = document.querySelector('#request-timeline');
- requestTimelineNode.hidden = false;
- requestTimelineNode.model = [];
-
- chrome.send('selectFileSystem', [sender.dataset.extensionId,
- sender.dataset.id]);
- },
-
- /**
- * List of provided file system information maps.
- * @type {Array<Object>}
- */
- model: []
-});
-
-// Defines the request-log element.
-Polymer('request-events', {
- /**
- * Called when the element is created.
- */
- ready: function() {
- },
-
- /**
- * Formats time to a hh:mm:ss.xxxx format.
- * @param {Date} time Input time.
- * @return {string} Output string in a human-readable format.
- */
- formatTime: function(time) {
- return ('0' + time.getHours()).slice(-2) + ':' +
- ('0' + time.getMinutes()).slice(-2) + ':' +
- ('0' + time.getSeconds()).slice(-2) + '.' +
- ('000' + time.getMilliseconds()).slice(-3);
- },
-
- /**
- * Formats size to a human readable form.
- * @param {number} size Size in bytes.
- * @return {string} Output string in a human-readable format.
- */
- formatSize: function(size) {
- return formatSizeCommon(size);
- },
-
- /**
- * Formats a boolean value to human-readable form.
- * @param {boolean=} opt_hasMore Input value.
- * @return {string} Output string in a human-readable format.
- */
- formatHasMore: function(opt_hasMore) {
- if (opt_hasMore == undefined)
- return '';
-
- return opt_hasMore ? 'HAS_MORE' : 'LAST';
- },
-
- /**
- * Formats execution time to human-readable form.
- * @param {boolean=} opt_executionTime Input value.
- * @return {string} Output string in a human-readable format.
- */
- formatExecutionTime: function(opt_executionTime) {
- if (opt_executionTime == undefined)
- return '';
-
- return opt_executionTime + ' ms';
- },
-
- /**
- * List of events.
- * @type {Array<Object>}
- */
- model: []
-});
-
-// Defines the request-timeline element.
-Polymer('request-timeline', {
- /**
- * Step for zoomin in and out.
- * @type {number}
- * @const
- */
- SCALE_STEP: 1.5,
-
- /**
- * Height of each row in the chart in pixels.
- * @type {number}
- * @const
- */
- ROW_HEIGHT: 14,
-
- /**
- * Observes changes in the model.
- * @type {Object<string, string>}
- */
- observe: {
- 'model.length': 'chartUpdate'
- },
-
- /**
- * Called when the element is created.
- */
- ready: function() {
- // Update active requests in the background for nice animation.
- var activeUpdateAnimation = function() {
- this.activeUpdate();
- requestAnimationFrame(activeUpdateAnimation);
- }.bind(this);
- activeUpdateAnimation();
- },
-
- /**
- * Formats size to a human readable form.
- * @param {number} size Size in bytes.
- * @return {string} Output string in a human-readable format.
- */
- formatSize: function(size) {
- return formatSizeCommon(size);
- },
-
- /**
- * Zooms in the timeline.
- * @param {Event} event Event.
- * @param {number} detail Detail.
- * @param {HTMLElement} sender Sender.
- */
- zoomInClicked: function(event, detail, sender) {
- this.scale *= this.SCALE_STEP;
- },
-
- /**
- * Zooms out the timeline.
- * @param {Event} event Event.
- * @param {number} detail Detail.
- * @param {HTMLElement} sender Sender.
- */
- zoomOutClicked: function(event, detail, sender) {
- this.scale /= this.SCALE_STEP;
- },
-
- /**
- * Selects or deselects an element on the timeline.
- * @param {Event} event Event.
- * @param {number} detail Detail.
- * @param {HTMLElement} sender Sender.
- */
- elementClicked: function(event, detail, sender) {
- if (sender.dataset.id in this.selected) {
- delete this.selected[sender.dataset.id];
- sender.classList.remove('selected');
- } else {
- this.selected[sender.dataset.id] = true;
- sender.classList.add('selected');
- }
-
- var requestEventsNode = document.querySelector('#request-events');
- requestEventsNode.hidden = false;
-
- requestEventsNode.model = [];
- for (var i = 0; i < this.model.length; i++) {
- if (this.model[i].id in this.selected)
- requestEventsNode.model.push(this.model[i]);
- }
- },
-
- /**
- * Updates chart elements of active requests, so they grow with time.
- */
- activeUpdate: function() {
- if (Object.keys(this.active).length == 0)
- return;
-
- for (var id in this.active) {
- var index = this.active[id];
- this.chart[index].length = Date.now() - this.chart[index].time;
- }
- },
-
- /**
- * Generates <code>chart</code> from the new <code>model</code> value.
- */
- chartUpdate: function(oldLength, newLength) {
- // If the new value is empty, then clear the model.
- if (!newLength) {
- this.active = {};
- this.rows = [];
- this.chart = [];
- this.timeStart = null;
- this.idleStart = null;
- this.idleTotal = 0;
- this.selected = [];
- return;
- }
-
- // Only adding new entries to the model is supported (or clearing).
- console.assert(newLength >= oldLength);
-
- for (var i = oldLength; i < newLength; i++) {
- var event = this.model[i];
- switch (event.eventType) {
- case 'created':
- // If this is the first creation event in the chart, then store its
- // time as beginning time of the chart.
- if (!this.timeStart)
- this.timeStart = event.time;
-
- // If this event terminates idling, then add the idling time to total
- // idling time. This is used to avoid gaps in the chart while idling.
- if (Object.keys(this.active).length == 0 && this.idleStart)
- this.idleTotal += event.time.getTime() - this.idleStart.getTime();
-
- // Find the appropriate row for this chart element.
- var rowIndex = 0;
- while (true) {
- // Add to this row only if there is enough space, and if the row
- // is of the same type.
- var addToRow = (rowIndex >= this.rows.length) ||
- (this.rows[rowIndex].time.getTime() <= event.time.getTime() &&
- !this.rows[rowIndex].active &&
- (this.rows[rowIndex].requestType == event.requestType));
-
- if (addToRow) {
- this.chart.push({
- index: this.chart.length,
- id: event.id,
- time: event.time,
- executionTime: 0,
- length: 0,
- requestType: event.requestType,
- left: event.time - this.timeStart - this.idleTotal,
- row: rowIndex,
- modelIndexes: [i]
- });
-
- this.rows[rowIndex] = {
- requestType: event.requestType,
- time: event.time,
- active: true
- };
-
- this.active[event.id] = this.chart.length - 1;
- break;
- }
-
- rowIndex++;
- }
- break;
-
- case 'fulfilled':
- case 'rejected':
- if (!(event.id in this.active))
- return;
- var chartIndex = this.active[event.id];
- this.chart[chartIndex].state = event.eventType;
- this.chart[chartIndex].executionTime = event.executionTime;
- this.chart[chartIndex].valueSize = event.valueSize;
- this.chart[chartIndex].modelIndexes.push(i);
- break;
-
- case 'destroyed':
- if (!(event.id in this.active))
- return;
-
- var chartIndex = this.active[event.id];
- this.chart[chartIndex].length =
- event.time - this.chart[chartIndex].time;
- this.chart[chartIndex].modelIndexes.push(i);
- this.rows[this.chart[chartIndex].row].time = event.time;
- this.rows[this.chart[chartIndex].row].active = false;
- delete this.active[event.id];
-
- // If this was the last active request, then idling starts.
- if (Object.keys(this.active).length == 0)
- this.idleStart = event.time;
- break;
- }
- }
- },
-
- /**
- * Map of selected requests.
- * @type {Object<number, boolean>}
- */
- selected: {},
-
- /**
- * Map of requests which has started, but are not completed yet, from
- * a request id to the chart element index.
- * @type {Object<number, number>}}
- */
- active: {},
-
- /**
- * List of chart elements, calculated from the model.
- * @type {Array<Object>}
- */
- chart: [],
-
- /**
- * List of rows in the chart, with the last endTime value on it.
- * @type {Array<Object>}
- */
- rows: [],
-
- /**
- * Scale of the chart.
- * @type {number}
- */
- scale: 1,
-
- /**
- * Time of the first created request.
- * @type {Date}
- */
- timeStart: null,
-
- /**
- * Time of the last idling started.
- * @type {Date}
- */
- idleStart: null,
-
- /**
- * Total idling time since chart generation started. Used to avoid
- * generating gaps in the chart when there is no activity. In milliseconds.
- * @type {number}
- */
- idleTotal: 0,
-
- /**
- * List of requests information maps.
- * @type {Array<Object>}
- */
- model: []
-});
-
-/*
- * Updates the mounted file system list.
- * @param {Array<Object>} fileSystems Array containing provided file system
- * information.
- */
-function updateFileSystems(fileSystems) {
- var fileSystemsNode = document.querySelector('#file-systems');
- fileSystemsNode.model = fileSystems;
-}
-
-/**
- * Called when a request is created.
- * @param {Object} event Event.
- */
-function onRequestEvent(event) {
- event.time = new Date(event.time); // Convert to a real Date object.
- var requestTimelineNode = document.querySelector('#request-timeline');
- requestTimelineNode.model.push(event);
-}
-
-document.addEventListener('DOMContentLoaded', function() {
- var context = document.getCSSCanvasContext('2d', 'dashedPattern', 4, 4);
- context.beginPath();
- context.strokeStyle = '#ffffff';
- context.moveTo(0, 0);
- context.lineTo(4, 4);
- context.stroke();
-
- chrome.send('updateFileSystems');
-
- // Refresh periodically.
- setInterval(function() {
- chrome.send('updateFileSystems');
- }, 1000);
-});
diff --git a/chromium/chrome/browser/resources/chromeos/speech_synthesis/manifest.json b/chromium/chrome/browser/resources/chromeos/speech_synthesis/manifest.json
deleted file mode 100644
index 0edded7dfa1..00000000000
--- a/chromium/chrome/browser/resources/chromeos/speech_synthesis/manifest.json
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- // NOTE: Keep two json files in this directory in sync. The only difference
- // should be incognito:split in Guest mode version.
- "name": "Chrome OS built-in text-to-speech extension",
- "version": "2.1.1",
- "description": "This is a high-quality text-to-speech (TTS) voice extension that runs in your browser using Native Client technology.",
- "manifest_version": 2,
- "background": {
- "scripts": [
- "voice_data_hmm_de-DE_2.js",
- "voice_data_hmm_en-GB_2.js",
- "voice_data_hmm_en-IN_2.js",
- "voice_data_hmm_en-US_2.js",
- "voice_data_hmm_es-ES_2.js",
- "voice_data_hmm_es-US_2.js",
- "voice_data_hmm_fr-FR_2.js",
- "voice_data_hmm_it-IT_2.js",
- "voice_data_hmm_ko-KR_2.js",
- "voice_data_hmm_pt-BR_2.js",
- "tts_controller.js",
- "tts_main.js"
- ]
- },
- "permissions": [
- "ttsEngine",
- "unlimitedStorage"
- ],
- "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlKEJseIIbKFyX0BCWNYOWlPEUt1IxBvIoW1PI7DTmipbwyVr3s2EprewYdtr9hCO5Yzs5w/ai1Xnhet5PLAsMje6ZP0Kvq0tlVfaYF8oQHBPF+ifx31RBT7Cn+ZVKLq1fxrwzY063GVhW+CAr06Ar8YRFXtFoC4FHlUNDIoSb4wIDAQAB",
- "tts_engine": {
- "voices": [
- {
- "voice_name": "Chrome OS German",
- "lang": "de-DE",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS British English",
- "lang": "en-GB",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Indian English",
- "lang": "en-IN",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS US English",
- "lang": "en-US",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Spanish",
- "lang": "es-ES",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS US Spanish",
- "lang": "es-US",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS French",
- "lang": "fr-FR",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Italian",
- "lang": "it-IT",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Korean",
- "lang": "ko-KR",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Brazilian Portuguese",
- "lang": "pt-BR",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- }
- ]
- }
-}
diff --git a/chromium/chrome/browser/resources/chromeos/speech_synthesis/manifest_guest.json b/chromium/chrome/browser/resources/chromeos/speech_synthesis/manifest_guest.json
deleted file mode 100644
index c7efa02acd8..00000000000
--- a/chromium/chrome/browser/resources/chromeos/speech_synthesis/manifest_guest.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- // NOTE: Keep two json files in this directory in sync. The only difference
- // should be incognito:split in Guest mode version.
- "name": "Chrome OS built-in text-to-speech extension",
- "version": "2.1.1",
- "description": "This is a high-quality text-to-speech (TTS) voice extension that runs in your browser using Native Client technology.",
- "manifest_version": 2,
- "incognito": "split",
- "background": {
- "scripts": [
- "voice_data_hmm_de-DE_2.js",
- "voice_data_hmm_en-GB_2.js",
- "voice_data_hmm_en-IN_2.js",
- "voice_data_hmm_en-US_2.js",
- "voice_data_hmm_es-ES_2.js",
- "voice_data_hmm_es-US_2.js",
- "voice_data_hmm_fr-FR_2.js",
- "voice_data_hmm_it-IT_2.js",
- "voice_data_hmm_ko-KR_2.js",
- "voice_data_hmm_pt-BR_2.js",
- "tts_controller.js",
- "tts_main.js"
- ]
- },
- "permissions": [
- "ttsEngine",
- "unlimitedStorage"
- ],
- "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlKEJseIIbKFyX0BCWNYOWlPEUt1IxBvIoW1PI7DTmipbwyVr3s2EprewYdtr9hCO5Yzs5w/ai1Xnhet5PLAsMje6ZP0Kvq0tlVfaYF8oQHBPF+ifx31RBT7Cn+ZVKLq1fxrwzY063GVhW+CAr06Ar8YRFXtFoC4FHlUNDIoSb4wIDAQAB",
- "tts_engine": {
- "voices": [
- {
- "voice_name": "Chrome OS German",
- "lang": "de-DE",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS British English",
- "lang": "en-GB",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Indian English",
- "lang": "en-IN",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS US English",
- "lang": "en-US",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Spanish",
- "lang": "es-ES",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS US Spanish",
- "lang": "es-US",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS French",
- "lang": "fr-FR",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Italian",
- "lang": "it-IT",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Korean",
- "lang": "ko-KR",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- },
- {
- "voice_name": "Chrome OS Brazilian Portuguese",
- "lang": "pt-BR",
- "gender": "female",
- "event_types": [ "start", "word", "end", "error" ]
- }
- ]
- }
-}
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/css/wallpaper_manager.css b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/css/wallpaper_manager.css
index 65683e38e06..9effa45b453 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/css/wallpaper_manager.css
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/css/wallpaper_manager.css
@@ -129,6 +129,7 @@ body {
#spinner-container {
-webkit-box-align: center;
-webkit-box-pack: center;
+ background: url(chrome://resources/images/throbber.svg) center/32px no-repeat;
display: -webkit-box;
height: 287px;
padding-bottom: 15px;
@@ -138,27 +139,6 @@ body {
width: 100%;
}
-@-webkit-keyframes spin {
- from {
- -webkit-transform: rotate(0);
- }
- to {
- -webkit-transform: rotate(360deg);
- }
-}
-
-#spinner-container #spinner {
- -webkit-animation-duration: 1s;
- -webkit-animation-iteration-count: infinite;
- -webkit-animation-name: spin;
- -webkit-animation-timing-function: linear;
- background-image: url(../images/ui/spinner.png);
- background-position: center;
- background-repeat: no-repeat;
- height: 16px;
- width: 16px;
-}
-
#wallpaper-set-by-message {
-webkit-padding-end: 5px;
-webkit-padding-start: 15px;
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon128.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon128.png
index 7e9e04ffb30..fcc60622a14 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon128.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon128.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon16.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon16.png
index cfb31c1985b..39b8b7e02e8 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon16.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon16.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon256.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon256.png
index 2829e20bdc6..2ac138b4bcc 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon256.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon256.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon32.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon32.png
index 51dd168dc1e..f74ee64eb2b 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon32.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon32.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon48.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon48.png
index e310aa1a0a3..2e5d9ab2bcb 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon48.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon48.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon64.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon64.png
index d87afbf773c..4249d367cb3 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon64.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon64.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon96.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon96.png
index 6c7863ae1e7..4cd46999488 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon96.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/icon96.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/2x/close-white.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/2x/close-white.png
index 3e87fa34738..566efa90cc7 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/2x/close-white.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/2x/close-white.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/2x/spinner.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/2x/spinner.png
deleted file mode 100644
index 0a262cde981..00000000000
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/2x/spinner.png
+++ /dev/null
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail-hover.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail-hover.png
index 7cfb59d4c4f..3e8bba9b42b 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail-hover.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail-hover.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail.png
index 0c19c02c638..148861f9b32 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/add-wallpaper-thumbnail.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/checkbox_unchecked.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/checkbox_unchecked.png
index c92eaaa2d91..45c25da4254 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/checkbox_unchecked.png
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/checkbox_unchecked.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/spinner.png b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/spinner.png
deleted file mode 100644
index ef48b582d7f..00000000000
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/images/ui/spinner.png
+++ /dev/null
Binary files differ
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js
index 9db03d4ccf3..7dac2310f7a 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js
@@ -290,7 +290,7 @@ cr.define('wallpapers', function() {
}, ShowSpinnerDelayMs);
}
} else {
- // Sets dataModel to null should hide spinner immedidately.
+ // Sets dataModel to null should hide spinner immediately.
$('spinner-container').hidden = true;
}
@@ -349,8 +349,7 @@ cr.define('wallpapers', function() {
var dataModelId = self.dataModelId_;
self.pendingItems_++;
return WallpaperThumbnailsGridItem(value, dataModelId,
- (value.wallpaperId == null) ?
- null : self.thumbnailList_[value.wallpaperId],
+ self.thumbnailList_[value.wallpaperId],
self.pendingItemComplete.bind(self));
};
this.selectionModel = new ListSingleSelectionModel();
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
index 8c6c867a3c4..5b84a8f5476 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
@@ -35,7 +35,7 @@ function WallpaperManager(dialogDom) {
* URL of the learn more page for wallpaper picker.
*/
/** @const */ var LearnMoreURL =
- 'https://support.google.com/chromeos/?p=wallpaper_fileerror&hl=' +
+ 'https://support.google.com/chromebook/?p=wallpaper_fileerror&hl=' +
navigator.language;
/**
@@ -1004,13 +1004,14 @@ function WallpaperManager(dialogDom) {
};
var self = this;
+ // Need this check for test purpose.
+ var numOnlineWallpaper = (this.enableOnlineWallpaper_ && this.manifest_) ?
+ this.manifest_.wallpaper_list.length : 0;
var processResults = function(entries) {
for (var i = 0; i < entries.length; i++) {
var entry = entries[i];
var wallpaperInfo = {
- // Set wallpaperId to null to avoid duplicate thumbnail images,
- // see crbug.com/506135 for details.
- wallpaperId: null,
+ wallpaperId: numOnlineWallpaper + i,
baseURL: entry.name,
// The layout will be replaced by the actual value saved in
// local storage when requested later. Layout is not important
@@ -1025,7 +1026,7 @@ function WallpaperManager(dialogDom) {
}
if (loadTimeData.getBoolean('isOEMDefaultWallpaper')) {
var oemDefaultWallpaperElement = {
- wallpaperId: null,
+ wallpaperId: numOnlineWallpaper + entries.length,
baseURL: 'OemDefaultWallpaper',
layout: 'CENTER_CROPPED',
source: Constants.WallpaperSourceEnum.OEM,
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/main.html b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/main.html
index d5faab80cc3..e005100d859 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/main.html
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/main.html
@@ -100,9 +100,7 @@ found in the LICENSE file.
<div id="category-container">
<div id="wallpaper-set-by-message"></div>
<grid id="wallpaper-grid" class="image-picker"></grid>
- <div id="spinner-container" hidden>
- <div id="spinner"></div>
- </div>
+ <div id="spinner-container" hidden></div>
<div class="progress-bar" hidden>
<div class="progress-track"></div>
</div>
diff --git a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json
index c52ada0dd67..8feeb9309b5 100644
--- a/chromium/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json
+++ b/chromium/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json
@@ -19,6 +19,7 @@
"permissions": [
"alarms",
"app.window.alpha",
+ "chrome://resources/",
"experimental",
"storage",
"unlimitedStorage",
@@ -34,7 +35,8 @@
"js/util.js",
"js/event_page.js"
]
- }
+ },
+ "content_security_policy": "img-src 'self' blob: filesystem: data: chrome://resources;"
},
"display_in_launcher": false
}
diff --git a/chromium/chrome/browser/resources/component_extension_resources.grd b/chromium/chrome/browser/resources/component_extension_resources.grd
index 49f0b64b614..155e0488575 100644
--- a/chromium/chrome/browser/resources/component_extension_resources.grd
+++ b/chromium/chrome/browser/resources/component_extension_resources.grd
@@ -41,7 +41,6 @@
<include name="IDR_BOOKMARK_MANAGER_BOOKMARK_BMM_JS" file="bookmark_manager/js/bmm.js" type="BINDATA" />
<include name="IDR_BOOKMARK_MANAGER_BOOKMARK_CSS_JS" file="bookmark_manager/css/bmm.css.js" type="BINDATA" />
<!-- Gaia auth extension -->
- <include name="IDR_GAIA_AUTH_KEYBOARD_UI_CSS" file="gaia_auth/keyboard_ui.css" type="BINDATA" />
<include name="IDR_GAIA_AUTH_MAIN" file="gaia_auth/main.html" allowexternalscript="true" type="BINDATA" />
<include name="IDR_GAIA_AUTH_MAIN_JS" file="gaia_auth/main.js" type="BINDATA" />
<include name="IDR_GAIA_AUTH_MAIN_CSS" file="gaia_auth/main.css" type="BINDATA" />
@@ -167,6 +166,7 @@
<include name="IDR_PDF_INDEX_MATERIAL_HTML" file="pdf/index-material.html" allowexternalscript="true" type="BINDATA" />
<include name="IDR_PDF_MAIN_JS" file="pdf/main.js" type="BINDATA" />
<include name="IDR_PDF_PDF_JS" file="pdf/pdf.js" type="BINDATA" />
+ <include name="IDR_PDF_SETTINGS_JS" file="pdf/settings.js" type="BINDATA" />
<include name="IDR_PDF_UI_MANAGER_JS" file="pdf/ui_manager.js" type="BINDATA" />
<include name="IDR_PDF_VIEWPORT_JS" file="pdf/viewport.js" type="BINDATA" />
<include name="IDR_PDF_OPEN_PDF_PARAMS_PARSER_JS" file="pdf/open_pdf_params_parser.js" type="BINDATA" />
@@ -181,12 +181,16 @@
<include name="IDR_PDF_VIEWER_BOOKMARK_HTML" file="pdf/elements/viewer-bookmark/viewer-bookmark.html" type="BINDATA" />
<include name="IDR_PDF_VIEWER_BOOKMARK_JS" file="pdf/elements/viewer-bookmark/viewer-bookmark.js" type="BINDATA" />
<include name="IDR_PDF_VIEWER_BOOKMARKS_CONTENT_HTML" file="pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.html" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_BOOKMARKS_CONTENT_JS" file="pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.js" type="BINDATA" />
<include name="IDR_PDF_VIEWER_BUTTON_CSS" file="pdf/elements/viewer-button/viewer-button.css" type="BINDATA" />
<include name="IDR_PDF_VIEWER_BUTTON_HTML" file="pdf/elements/viewer-button/viewer-button.html" type="BINDATA" />
<include name="IDR_PDF_VIEWER_BUTTON_JS" file="pdf/elements/viewer-button/viewer-button.js" type="BINDATA" />
<include name="IDR_PDF_VIEWER_ERROR_SCREEN_CSS" file="pdf/elements/viewer-error-screen/viewer-error-screen.css" type="BINDATA" />
<include name="IDR_PDF_VIEWER_ERROR_SCREEN_HTML" file="pdf/elements/viewer-error-screen/viewer-error-screen.html" type="BINDATA" />
<include name="IDR_PDF_VIEWER_ERROR_SCREEN_JS" file="pdf/elements/viewer-error-screen/viewer-error-screen.js" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_ERROR_SCREEN_LEGACY_CSS" file="pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.css" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_ERROR_SCREEN_LEGACY_HTML" file="pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_ERROR_SCREEN_LEGACY_JS" file="pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.js" type="BINDATA" />
<include name="IDR_PDF_VIEWER_PAGE_INDICATOR_CSS" file="pdf/elements/viewer-page-indicator/viewer-page-indicator.css" type="BINDATA" />
<include name="IDR_PDF_VIEWER_PAGE_INDICATOR_HTML" file="pdf/elements/viewer-page-indicator/viewer-page-indicator.html" type="BINDATA" />
<include name="IDR_PDF_VIEWER_PAGE_INDICATOR_JS" file="pdf/elements/viewer-page-indicator/viewer-page-indicator.js" type="BINDATA" />
@@ -196,6 +200,9 @@
<include name="IDR_PDF_VIEWER_PASSWORD_SCREEN_CSS" file="pdf/elements/viewer-password-screen/viewer-password-screen.css" type="BINDATA" />
<include name="IDR_PDF_VIEWER_PASSWORD_SCREEN_HTML" file="pdf/elements/viewer-password-screen/viewer-password-screen.html" type="BINDATA" />
<include name="IDR_PDF_VIEWER_PASSWORD_SCREEN_JS" file="pdf/elements/viewer-password-screen/viewer-password-screen.js" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_PASSWORD_SCREEN_LEGACY_CSS" file="pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.css" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_PASSWORD_SCREEN_LEGACY_HTML" file="pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_PASSWORD_SCREEN_LEGACY_JS" file="pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.js" type="BINDATA" />
<include name="IDR_PDF_VIEWER_PDF_TOOLBAR_CSS" file="pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.css" type="BINDATA" />
<include name="IDR_PDF_VIEWER_PDF_TOOLBAR_HTML" file="pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html" type="BINDATA" />
<include name="IDR_PDF_VIEWER_PDF_TOOLBAR_JS" file="pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.js" type="BINDATA" />
@@ -205,6 +212,9 @@
<include name="IDR_PDF_VIEWER_TOOLBAR_CSS" file="pdf/elements/viewer-toolbar/viewer-toolbar.css" type="BINDATA" />
<include name="IDR_PDF_VIEWER_TOOLBAR_HTML" file="pdf/elements/viewer-toolbar/viewer-toolbar.html" type="BINDATA" />
<include name="IDR_PDF_VIEWER_TOOLBAR_JS" file="pdf/elements/viewer-toolbar/viewer-toolbar.js" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_TOOLBAR_DROPDOWN_CSS" file="pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.css" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_TOOLBAR_DROPDOWN_HTML" file="pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html" type="BINDATA" />
+ <include name="IDR_PDF_VIEWER_TOOLBAR_DROPDOWN_JS" file="pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js" type="BINDATA" />
<include name="IDR_PDF_VIEWER_ZOOM_BUTTON_CSS" file="pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.css" type="BINDATA" />
<include name="IDR_PDF_VIEWER_ZOOM_BUTTON_HTML" file="pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html" type="BINDATA" />
<include name="IDR_PDF_VIEWER_ZOOM_BUTTON_JS" file="pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js" type="BINDATA" />
diff --git a/chromium/chrome/browser/resources/contextual_search/OWNERS b/chromium/chrome/browser/resources/contextual_search/OWNERS
deleted file mode 100644
index 07a31a62aca..00000000000
--- a/chromium/chrome/browser/resources/contextual_search/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-mathp@chromium.org
diff --git a/chromium/chrome/browser/resources/contextual_search/header.svg b/chromium/chrome/browser/resources/contextual_search/header.svg
deleted file mode 100644
index 3fb9aa3585d..00000000000
--- a/chromium/chrome/browser/resources/contextual_search/header.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 156 99" enable-background="new 0 0 156 99" xml:space="preserve">
-<g>
- <rect x="48.2" y="55" fill="#51C1FF" width="108" height="26.7"/>
- <path fill="#D4DDE1" d="M64,44c0,2.2-1.8,4-4,4H4c-2.2,0-4-1.8-4-4v-1c0-2.2,1.8-4,4-4h56c2.2,0,4,1.8,4,4V44z"/>
- <path fill="#D4DDE1" d="M138,44c0,2.2-1.8,4-4,4H78c-2.2,0-4-1.8-4-4v-1c0-2.2,1.8-4,4-4h56c2.2,0,4,1.8,4,4V44z"/>
- <path fill="#17F9FF" d="M145.9,69c0,2.2-1.8,4-4,4H62.2c-2.2,0-4-1.8-4-4v-1c0-2.2,1.8-4,4-4h79.7c2.2,0,4,1.8,4,4V69z"/>
- <path fill="#D4DDE1" d="M37.8,69c0,2.2-1.8,4-4,4H4c-2.2,0-4-1.8-4-4v-1c0-2.2,1.8-4,4-4h29.8c2.2,0,4,1.8,4,4V69z"/>
- <path fill="#D4DDE1" d="M79,95c0,2.2-1.8,4-4,4H4c-2.2,0-4-1.8-4-4v-1c0-2.2,1.8-4,4-4h71c2.2,0,4,1.8,4,4V95z"/>
- <path fill="#D4DDE1" d="M119.1,95c0,2.2-1.8,4-4,4H93c-2.2,0-4-1.8-4-4v-1c0-2.2,1.8-4,4-4h22.1c2.2,0,4,1.8,4,4V95z"/>
- <g>
- <path fill="#448AFF" d="M122.2,21c0-11-9-20-20-20s-20,9-20,20c0,4.8,1.7,9.1,4.5,12.6c0,0,0,0,0,0l15.5,20l15.9-20.4c0,0,0,0,0,0
- C120.6,29.8,122.2,25.6,122.2,21z"/>
- </g>
- <path fill="#FFFFFF" d="M106.2,23.1l-0.9-0.7c-0.3-0.3-0.7-0.6-0.7-1.2c0-0.6,0.4-1.1,0.9-1.4c1.1-0.9,2.2-1.8,2.2-3.7
- c0-1.8-1.1-2.8-1.7-3.3h1.5l1-1.2h-5.3c-3.8,0-5.6,2.4-5.6,5c0,2,1.5,4.1,4.3,4.1h0.7c-0.1,0.3-0.3,0.7-0.3,1.1
- c0,0.9,0.3,1.2,0.8,1.7c-1.2,0.1-3.4,0.3-5,1.4c-1.5,0.9-2,2.2-2,3.2c0,2,1.8,3.8,5.6,3.8c4.6,0,6.8-2.6,6.8-5
- C108.4,25.1,107.4,24.1,106.2,23.1z M99.7,15.3c0-1.9,1.1-2.7,2.3-2.7c2.2,0,3.4,3,3.4,4.7c0,2.2-1.8,2.7-2.5,2.7
- C100.9,19.9,99.7,17.3,99.7,15.3z M102.8,30.7c-2.8,0-4.6-1.3-4.6-3.2c0-1.9,1.7-2.5,2.2-2.7c1.1-0.3,2.6-0.4,2.8-0.4h0.6
- c2.1,1.5,2.9,2.1,2.9,3.4C106.8,29.4,105.1,30.7,102.8,30.7z"/>
-</g>
-</svg>
diff --git a/chromium/chrome/browser/resources/contextual_search/promo.css b/chromium/chrome/browser/resources/contextual_search/promo.css
deleted file mode 100644
index 63fe3392ee4..00000000000
--- a/chromium/chrome/browser/resources/contextual_search/promo.css
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright 2014 The Chromium Authors. All rights reserved.
- Use of this source code is governed by a BSD-style license that can be
- found in the LICENSE file. */
-
-/* TODO: Need to clean up @font-face after we remove font-family from body. */
-@font-face {
- font-family: 'Roboto2';
- font-weight: 400;
- src: local('Roboto'), local('Roboto2-Regular'),
- url(chrome://resources/roboto/roboto.woff2) format('woff2'),
- url(chrome://resources/roboto/roboto.woff) format('woff');
-}
-
-/* TODO(pedrosimonetti): Find a better way to fix the problem when the
- * text scaling preference is set to a high value.
- *
- * This CSS rule prevents the promo text from scaling as explained here:
- * https://code.google.com/p/chromium/issues/detail?id=252828#c10
- *
- * For for background about the problem, see:
- * https://code.google.com/p/chromium/issues/detail?id=466773
- */
-#heading,
-#description {
- max-height: 999999px;
-}
-
-body {
- font-family: 'Roboto2', sans-serif;
- margin: 0;
-}
-
-a {
- text-decoration: none;
-}
-
-a.colored-link {
- color: rgb(66, 133, 244);
-}
-
-#container {
- /* NOTE(pedrosimonetti): There's an implicit extra top margin that is
- * rendered natively (currently using 24dp). So, the total padding will
- * be 38dp (24dp + 14dp). For more info, see SEARCH_BAR_HEIGHT_STATE_PROMO
- * in ContextualSearchPanelBase.java.
- *
- * We're also setting the side and bottom paddings to ensure to make sure
- * that when computing the height of the container all margins/paddings will
- * be considered.
- */
- padding: 14px 16px 12px;
-}
-
-#button-container {
- margin-top: 24px;
- text-align: end;
- width: 100%;
-}
-
-#container.hide {
- -webkit-transform: scale(0.95);
- -webkit-transition-duration: 130ms;
- -webkit-transition-property: opacity, -webkit-transform;
- opacity: 0;
-}
-
-#description {
- color: #7E7E7E;
- font-size: 16px;
- line-height: 1.38em;
- margin: 12px 0 24px;
-}
-
-/* Some properties below can be overridden in landscape orientation. */
-#heading {
- font-size: 23px;
- margin: 20px 0 12px;
- text-align: center;
-}
-.header-image {
- background-image: url(header.svg);
- background-repeat: no-repeat;
- height: 98px;
- margin: 0 auto 38px auto;
- width: 156px;
-}
-.portrait {
- display: block;
-}
-.landscape {
- display: none;
-}
-
-/* Landscape */
-@media screen and (orientation:landscape) {
- #heading {
- margin-top: 0;
- /* The heading text and description text should be aligned, therefore
- * the left margin here will be equal to the header image width (156px)
- * plus its right margin (24px). Therefore the total left should be
- * 156px + 24px = 180px.
- */
- margin-left: 180px;
- padding-top: 8px;
- text-align: left;
- }
- .header-image {
- /* The header image is supposed to be vertically centered when the promo
- * is in landscape mode. For now, we're forcefully moving the image 4
- * pixels up to make it centered. A better approach would be using CSS
- * flexbox to properly center it, but this will require changing the
- * markup and styling of the whole promo, and it could be tricky coming
- * up with a single markup that works in both portrait and lanscape modes.
- */
- margin: 0 24px 0 0;
- position: relative;
- top: -4px;
- }
- .portrait {
- display: none;
- }
- .landscape {
- display: block;
- float: left;
- }
- html[dir='rtl'] .landscape {
- float: right;
- }
-}
-
-button {
- background: none;
- border: none;
- display: inline-block;
- font-family: 'Roboto2', sans-serif;
- font-size: 14px;
- margin: 6px 0;
- /* We use a slightly different top-bottom padding because Roboto has a
- * rendering bug which makes an extra padding to be rendered at the bottom of
- * text.
- */
- padding: 12px 16px 8px;
- white-space: nowrap;
-}
-
-button .caption {
- text-transform: uppercase;
-}
-
-#optin-button {
- background: rgb(66, 133, 244);
- background-clip: padding-box;
- border-radius: 3px;
-}
-
-#optin-button .caption {
- color: white;
-}
-
-#optout-button .caption {
- color: rgb(66, 133, 244);
-}
diff --git a/chromium/chrome/browser/resources/contextual_search/promo.html b/chromium/chrome/browser/resources/contextual_search/promo.html
deleted file mode 100644
index b5bbd1bcda2..00000000000
--- a/chromium/chrome/browser/resources/contextual_search/promo.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!doctype html>
-<html>
-<!-- Copyright 2014 The Chromium Authors. All rights reserved.
- Use of this source code is governed by a BSD-style license that can be
- found in the LICENSE file. -->
-<head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, user-scalable=no">
- <title>Contextual Search First-Run</title>
- <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
- <link rel="stylesheet" href="promo.css">
- <script src="chrome://contextual-search-promo/config.js"></script>
- <script src="chrome://contextual-search-promo/promo.js"></script>
-</head>
-<body>
- <div id="container">
- <div class="header-image portrait"></div>
- <div id="heading" i18n-content="heading"></div>
- <div class="header-image landscape"></div>
- <div id="description">
- <span i18n-content="description-1"></span>
- <a class="colored-link" href="#learn-more"
- i18n-content="feature-name">
- </a>
- <span i18n-content="description-2"></span>
- </div>
- <div id="button-container">
- <button id="optout-button">
- <span class="caption" i18n-content="optOut"></span>
- </button>
- <button id="optin-button">
- <span class="caption" i18n-content="optIn"></span>
- </button>
- </div>
- </div>
-</body>
-</html>
diff --git a/chromium/chrome/browser/resources/contextual_search/promo.js b/chromium/chrome/browser/resources/contextual_search/promo.js
deleted file mode 100644
index 8e17d909aea..00000000000
--- a/chromium/chrome/browser/resources/contextual_search/promo.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright 2014 The Chromium Authors. All rights reserved.
- Use of this source code is governed by a BSD-style license that can be
- found in the LICENSE file.
-*/
-
-<include src="../../../../ui/webui/resources/js/util.js">
-<include src="../../../../ui/webui/resources/js/load_time_data.js">
-
-/**
- * The amount of delay to use in the opt-in action in order to give time for
- * the fade-out animation to execute, before navigating to the opt-in URL,
- * in milliseconds.
- * @const
- */
-var OPT_IN_DELAY_MS = 65;
-
-/**
- * Once the DOM is loaded, determine if the header image is to be kept and
- * register a handler to add the 'hide' class to the container element in order
- * to hide it.
- */
-document.addEventListener('DOMContentLoaded', function(event) {
- if (config['hideHeader']) {
- removeHeaderImages();
- }
- $('optin-button').addEventListener('click', function() {
- $('container').classList.add('hide');
- setTimeout(function() {
- location.hash = 'optin';
- }, OPT_IN_DELAY_MS);
- });
- $('optout-button').addEventListener('click', function() {
- location.hash = 'optout';
- });
-});
-
-/**
- * Returns the height of the content. Method called from Chrome to properly size
- * the view embedding it.
- * @return {number} The height of the content, in pixels.
- */
-function getContentHeight() {
- return $('container').clientHeight;
-}
-
-/**
- * Removes all header images from the promo.
- */
-function removeHeaderImages() {
- var images = document.querySelectorAll('.header-image');
- for (var i = 0, length = images.length; i < length; i++) {
- var image = images[i];
- var parent = image.parentElement;
- if (parent) {
- parent.removeChild(image);
- }
- }
-}
diff --git a/chromium/chrome/browser/resources/cryptotoken/enroller.js b/chromium/chrome/browser/resources/cryptotoken/enroller.js
index 57706a136d6..859ff6d045a 100644
--- a/chromium/chrome/browser/resources/cryptotoken/enroller.js
+++ b/chromium/chrome/browser/resources/cryptotoken/enroller.js
@@ -356,7 +356,7 @@ function Enroller(timer, sender, errorCb, successCb, opt_logMsgUrl) {
/** @private {boolean} */
this.done_ = false;
- /** @private {Object<string, string>} */
+ /** @private {Object<string>} */
this.browserData_ = {};
/** @private {Array<EnrollHelperChallenge>} */
this.encodedEnrollChallenges_ = [];
diff --git a/chromium/chrome/browser/resources/cryptotoken/generichelper.js b/chromium/chrome/browser/resources/cryptotoken/generichelper.js
index 29446105f2f..020dbf9ee44 100644
--- a/chromium/chrome/browser/resources/cryptotoken/generichelper.js
+++ b/chromium/chrome/browser/resources/cryptotoken/generichelper.js
@@ -20,7 +20,7 @@ var RequestHandlerFactory;
* @implements {RequestHelper}
*/
function GenericRequestHelper() {
- /** @private {Object<string, RequestHandlerFactory>} */
+ /** @private {Object<RequestHandlerFactory>} */
this.handlerFactories_ = {};
}
diff --git a/chromium/chrome/browser/resources/cryptotoken/gnubbies.js b/chromium/chrome/browser/resources/cryptotoken/gnubbies.js
index 2425cad4c3d..f73e1f4226c 100644
--- a/chromium/chrome/browser/resources/cryptotoken/gnubbies.js
+++ b/chromium/chrome/browser/resources/cryptotoken/gnubbies.js
@@ -30,7 +30,7 @@ var GnubbyNamespaceImpl;
* @constructor
*/
function Gnubbies() {
- /** @private {Object<string, Array>} */
+ /** @private {Object<Array>} */
this.devs_ = {};
this.pendingEnumerate = []; // clients awaiting an enumerate
/**
@@ -39,11 +39,11 @@ function Gnubbies() {
* @private {Array<string>}
*/
this.namespaces_ = [];
- /** @private {Object<string, GnubbyNamespaceImpl>} */
+ /** @private {Object<GnubbyNamespaceImpl>} */
this.impl_ = {};
- /** @private {Object<string, Object<number, !GnubbyDevice>>} */
+ /** @private {Object<Object<number, !GnubbyDevice>>} */
this.openDevs_ = {};
- /** @private {Object<string, Object<number, *>>} */
+ /** @private {Object<Object<number, *>>} */
this.pendingOpens_ = {}; // clients awaiting an open
}
diff --git a/chromium/chrome/browser/resources/cryptotoken/multiplesigner.js b/chromium/chrome/browser/resources/cryptotoken/multiplesigner.js
index 1c4ffc29b18..491a8953319 100644
--- a/chromium/chrome/browser/resources/cryptotoken/multiplesigner.js
+++ b/chromium/chrome/browser/resources/cryptotoken/multiplesigner.js
@@ -60,7 +60,7 @@ function MultipleGnubbySigner(forEnroll, allCompleteCb, gnubbyCompleteCb,
this.complete_ = false;
/** @private {number} */
this.numComplete_ = 0;
- /** @private {!Object<string, GnubbyTracker>} */
+ /** @private {!Object<GnubbyTracker>} */
this.gnubbies_ = {};
/** @private {Countdown} */
this.timer_ = DEVICE_FACTORY_REGISTRY.getCountdownFactory()
diff --git a/chromium/chrome/browser/resources/cryptotoken/requestqueue.js b/chromium/chrome/browser/resources/cryptotoken/requestqueue.js
index a377f4c4270..872acefdbfa 100644
--- a/chromium/chrome/browser/resources/cryptotoken/requestqueue.js
+++ b/chromium/chrome/browser/resources/cryptotoken/requestqueue.js
@@ -163,7 +163,7 @@ RequestQueue.prototype.queueRequest = function(beginCb, timer) {
* @constructor
*/
function OriginKeyedRequestQueue() {
- /** @private {Object<string, !RequestQueue>} */
+ /** @private {Object<!RequestQueue>} */
this.requests_ = {};
}
diff --git a/chromium/chrome/browser/resources/cryptotoken/signer.js b/chromium/chrome/browser/resources/cryptotoken/signer.js
index df91d3944d5..dca744880d1 100644
--- a/chromium/chrome/browser/resources/cryptotoken/signer.js
+++ b/chromium/chrome/browser/resources/cryptotoken/signer.js
@@ -361,9 +361,9 @@ function Signer(timer, sender, errorCb, successCb, opt_logMsgUrl) {
/** @private {boolean} */
this.done_ = false;
- /** @private {Object<string, string>} */
+ /** @private {Object<string>} */
this.browserData_ = {};
- /** @private {Object<string, SignChallenge>} */
+ /** @private {Object<SignChallenge>} */
this.serverChallenges_ = {};
// Allow http appIds for http origins. (Broken, but the caller deserves
// what they get.)
diff --git a/chromium/chrome/browser/resources/cryptotoken/singlesigner.js b/chromium/chrome/browser/resources/cryptotoken/singlesigner.js
index 445f96d698e..ebda0352996 100644
--- a/chromium/chrome/browser/resources/cryptotoken/singlesigner.js
+++ b/chromium/chrome/browser/resources/cryptotoken/singlesigner.js
@@ -72,7 +72,7 @@ function SingleGnubbySigner(gnubbyId, forEnroll, completeCb, timer,
/** @private {boolean} */
this.challengesSet_ = false;
- /** @private {!Object<string, number>} */
+ /** @private {!Object<number>} */
this.cachedError_ = [];
}
diff --git a/chromium/chrome/browser/resources/default_apps/external_extensions.json b/chromium/chrome/browser/resources/default_apps/external_extensions.json
index 52aa50068f1..39e109ac146 100644
--- a/chromium/chrome/browser/resources/default_apps/external_extensions.json
+++ b/chromium/chrome/browser/resources/default_apps/external_extensions.json
@@ -34,6 +34,10 @@
// Google Slides
"felcaaldnbdncclmgdcncolpebgiejap" : {
"external_update_url": "https://clients2.google.com/service/update2/crx"
+ },
+ // Drive extension
+ "ghbmnnjooekpmoecnnnilnnbdlolhkhi" : {
+ "external_update_url": "https://clients2.google.com/service/update2/crx"
}
}
diff --git a/chromium/chrome/browser/resources/disclosure_triangle_small.png b/chromium/chrome/browser/resources/disclosure_triangle_small.png
index 6588d74cb89..18859702b39 100644
--- a/chromium/chrome/browser/resources/disclosure_triangle_small.png
+++ b/chromium/chrome/browser/resources/disclosure_triangle_small.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/downloads/compiled_resources.gyp b/chromium/chrome/browser/resources/downloads/compiled_resources.gyp
index c6c8b08a8c2..25184bdbd81 100644
--- a/chromium/chrome/browser/resources/downloads/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/downloads/compiled_resources.gyp
@@ -17,12 +17,13 @@
'../../../../ui/webui/resources/js/cr/ui/focus_row.js',
'../../../../ui/webui/resources/js/event_tracker.js',
'../../../../ui/webui/resources/js/util.js',
- 'item.js',
+ 'constants.js',
+ 'throttled_icon_loader.js',
'item_view.js',
'focus_row.js',
],
'externs': [
- '<(CLOSURE_DIR)/externs/chrome_send_externs.js',
+ '<(EXTERNS_DIR)/chrome_send.js',
'externs.js',
],
},
diff --git a/chromium/chrome/browser/resources/downloads/compiled_resources2.gyp b/chromium/chrome/browser/resources/downloads/compiled_resources2.gyp
new file mode 100644
index 00000000000..af609c9df58
--- /dev/null
+++ b/chromium/chrome/browser/resources/downloads/compiled_resources2.gyp
@@ -0,0 +1,63 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+{
+ 'targets': [
+ {
+ 'target_name': 'externs',
+ 'includes': ['../../../../third_party/closure_compiler/externs_js.gypi'],
+ },
+ {
+ 'target_name': 'constants',
+ 'dependencies': ['<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr'],
+ 'includes': ['../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ {
+ 'target_name': 'item_view',
+ 'dependencies': [
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:load_time_data',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:util',
+ 'constants',
+ 'throttled_icon_loader',
+ 'externs',
+ ],
+ 'includes': ['../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ {
+ 'target_name': 'focus_row',
+ 'dependencies': [
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:assert',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+ '<(DEPTH)/ui/webui/resources/js/cr/ui/compiled_resources2.gyp:focus_row',
+ 'item_view',
+ ],
+ 'includes': ['../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ {
+ 'target_name': 'manager',
+ 'dependencies': [
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:assert',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:load_time_data',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:event_tracker',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:util',
+ '<(DEPTH)/ui/webui/resources/js/cr/compiled_resources2.gyp:ui',
+ '<(DEPTH)/ui/webui/resources/js/cr/ui/compiled_resources2.gyp:command',
+ '<(DEPTH)/ui/webui/resources/js/cr/ui/compiled_resources2.gyp:focus_grid',
+ 'constants',
+ 'throttled_icon_loader',
+ 'item_view',
+ 'focus_row',
+ '<(EXTERNS_GYP):chrome_send',
+ 'externs',
+ ],
+ 'includes': ['../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ {
+ 'target_name': 'throttled_icon_loader',
+ 'dependencies': ['<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr'],
+ 'includes': ['../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ ],
+}
diff --git a/chromium/chrome/browser/resources/downloads/constants.html b/chromium/chrome/browser/resources/downloads/constants.html
new file mode 100644
index 00000000000..0ac6c26b9e5
--- /dev/null
+++ b/chromium/chrome/browser/resources/downloads/constants.html
@@ -0,0 +1,2 @@
+<link rel="import" href="chrome://resources/html/cr.html">
+<script src="chrome://downloads/constants.js"></script>
diff --git a/chromium/chrome/browser/resources/downloads/item.js b/chromium/chrome/browser/resources/downloads/constants.js
index 348be58a8af..b123be03919 100644
--- a/chromium/chrome/browser/resources/downloads/item.js
+++ b/chromium/chrome/browser/resources/downloads/constants.js
@@ -3,28 +3,11 @@
// found in the LICENSE file.
cr.define('downloads', function() {
- /** @constructor */
- function Item() {}
-
- /**
- * The states a download can be in. These correspond to states defined in
- * DownloadsDOMHandler::CreateDownloadItemValue
- * @enum {string}
- */
- Item.States = {
- IN_PROGRESS: 'IN_PROGRESS',
- CANCELLED: 'CANCELLED',
- COMPLETE: 'COMPLETE',
- PAUSED: 'PAUSED',
- DANGEROUS: 'DANGEROUS',
- INTERRUPTED: 'INTERRUPTED',
- };
-
/**
* Explains why a download is in DANGEROUS state.
* @enum {string}
*/
- Item.DangerType = {
+ var DangerType = {
NOT_DANGEROUS: 'NOT_DANGEROUS',
DANGEROUS_FILE: 'DANGEROUS_FILE',
DANGEROUS_URL: 'DANGEROUS_URL',
@@ -34,25 +17,22 @@ cr.define('downloads', function() {
POTENTIALLY_UNWANTED: 'POTENTIALLY_UNWANTED',
};
- Item.prototype = {
- /** @type {downloads.ItemView} */
- view: null,
-
- /**
- * @param {!downloads.Data} data Info about the download.
- */
- render: function(data) {
- this.view = this.view || new downloads.ItemView;
- this.view.update(data);
- },
-
- unrender: function() {
- if (this.view) {
- this.view.destroy();
- this.view = null;
- }
- },
+ /**
+ * The states a download can be in. These correspond to states defined in
+ * DownloadsDOMHandler::CreateDownloadItemValue
+ * @enum {string}
+ */
+ var States = {
+ IN_PROGRESS: 'IN_PROGRESS',
+ CANCELLED: 'CANCELLED',
+ COMPLETE: 'COMPLETE',
+ PAUSED: 'PAUSED',
+ DANGEROUS: 'DANGEROUS',
+ INTERRUPTED: 'INTERRUPTED',
};
- return {Item: Item};
+ return {
+ DangerType: DangerType,
+ States: States,
+ };
});
diff --git a/chromium/chrome/browser/resources/downloads/downloads.html b/chromium/chrome/browser/resources/downloads/downloads.html
index 3e7e2021cbd..e261c589618 100644
--- a/chromium/chrome/browser/resources/downloads/downloads.html
+++ b/chromium/chrome/browser/resources/downloads/downloads.html
@@ -7,16 +7,17 @@
<!-- This has to come after chrome_shared.css -->
<link rel="stylesheet" href="downloads.css">
<script src="chrome://resources/js/action_link.js"></script>
- <script src="chrome://resources/js/cr.js"></script>
+ <link rel="import" href="chrome://resources/html/assert.html">
+ <link rel="import" href="chrome://resources/html/cr.html">
<script src="chrome://resources/js/cr/ui.js"></script>
<script src="chrome://resources/js/cr/ui/command.js"></script>
<script src="chrome://resources/js/load_time_data.js"></script>
<script src="chrome://resources/js/util.js"></script>
- <script src="chrome://resources/js/assert.js"></script>
<script src="chrome://resources/js/event_tracker.js"></script>
<script src="chrome://resources/js/cr/ui/focus_row.js"></script>
<script src="chrome://resources/js/cr/ui/focus_grid.js"></script>
- <script src="chrome://downloads/item.js"></script>
+ <link rel="import" href="chrome://downloads/constants.html">
+ <link rel="import" href="chrome://downloads/throttled_icon_loader.html">
<script src="chrome://downloads/item_view.js"></script>
<script src="chrome://downloads/focus_row.js"></script>
<script src="chrome://downloads/manager.js"></script>
@@ -25,15 +26,15 @@
<header>
<h1 i18n-content="downloads"></h1>
<input id="term" type="search" tabindex=1
- i18n-values="placeholder:searchbutton" autofocus incremental>
+ i18n-values="placeholder:searchButton" autofocus incremental>
</header>
<div class="main">
<div class="summary" id="downloads-summary">
<span id="downloads-summary-text"></span>
<span id="downloads-actions">
<a is="action-link" id="open-downloads-folder"
- i18n-content="open_downloads_folder"></a>
- <a is="action-link" id="clear-all" i18n-content="clear_all" hidden></a>
+ i18n-content="openDownloadsFolder"></a>
+ <a is="action-link" id="clear-all" i18n-content="clearAll" hidden></a>
</span>
</div>
<div id="downloads-display"></div>
@@ -66,19 +67,19 @@
</div>
<div class="controls">
<a is="action-link" class="show" column-type="show"
- i18n-content="control_showinfolder"></a>
- <a class="retry" column-type="retry" i18n-content="control_retry"
+ i18n-content="controlShowInFolder"></a>
+ <a class="retry" column-type="retry" i18n-content="controlRetry"
download></a>
<a is="action-link" class="pause" column-type="pause"
- i18n-content="control_pause"></a>
+ i18n-content="controlPause"></a>
<a is="action-link" class="resume" column-type="resume"
- i18n-content="control_resume"></a>
+ i18n-content="controlResume"></a>
<a is="action-link" class="remove" column-type="remove"
- i18n-content="control_removefromlist"></a>
+ i18n-content="controlRemoveFromList"></a>
<a is="action-link" class="cancel" column-type="cancel"
- i18n-content="control_cancel"></a>
+ i18n-content="controlCancel"></a>
<span class="controlled-by"
- i18n-values=".innerHTML:control_by_extension"></span>
+ i18n-values=".innerHTML:controlByExtension"></span>
</div>
</div>
<div class="dangerous">
@@ -86,14 +87,14 @@
<div class="description"></div>
<div class="controls">
<a is="action-link" class="restore" column-type="save"
- i18n-content="danger_restore"></a>
+ i18n-content="dangerRestore"></a>
<a is="action-link" class="remove" column-type="discard"
- i18n-content="control_removefromlist"></a>
+ i18n-content="controlRemoveFromList"></a>
</div>
<button class="save" column-type="save"
- i18n-content="danger_save"></button>
+ i18n-content="dangerSave"></button>
<button class="discard" column-type="discard"
- i18n-content="danger_discard"></button>
+ i18n-content="dangerDiscard"></button>
</div>
</div>
</div>
diff --git a/chromium/chrome/browser/resources/downloads/item_view.js b/chromium/chrome/browser/resources/downloads/item_view.js
index bf2a09ad609..1cd29776f74 100644
--- a/chromium/chrome/browser/resources/downloads/item_view.js
+++ b/chromium/chrome/browser/resources/downloads/item_view.js
@@ -3,13 +3,15 @@
// found in the LICENSE file.
cr.define('downloads', function() {
- /** @const */ var Item = downloads.Item;
-
/**
* Creates and updates the DOM representation for a download.
+ * @param {!downloads.ThrottledIconLoader} iconLoader
* @constructor
*/
- function ItemView() {
+ function ItemView(iconLoader) {
+ /** @private {!downloads.ThrottledIconLoader} */
+ this.iconLoader_ = iconLoader;
+
this.node = $('templates').querySelector('.download').cloneNode(true);
this.safe_ = this.queryRequired_('.safe');
@@ -117,47 +119,6 @@ cr.define('downloads', function() {
return ItemView.foregroundImages_[x];
};
- /** @private {Array<{img: HTMLImageElement, url: string}>} */
- ItemView.iconsToLoad_ = [];
-
- /**
- * Load the provided |url| into |img.src| after appending ?scale=.
- * @param {!HTMLImageElement} img An <img> to show the loaded image in.
- * @param {string} url A remote image URL to load.
- */
- ItemView.loadScaledIcon = function(img, url) {
- var scale = '?scale=' + window.devicePixelRatio + 'x';
- ItemView.iconsToLoad_.push({img: img, url: url + scale});
- ItemView.loadNextIcon_();
- };
-
- /** @private */
- ItemView.loadNextIcon_ = function() {
- if (ItemView.isIconLoading_)
- return;
-
- ItemView.isIconLoading_ = true;
-
- while (ItemView.iconsToLoad_.length) {
- var request = ItemView.iconsToLoad_.shift();
- var img = request.img;
-
- if (img.src == request.url)
- continue;
-
- img.onabort = img.onerror = img.onload = function() {
- ItemView.isIconLoading_ = false;
- ItemView.loadNextIcon_();
- };
-
- img.src = request.url;
- return;
- }
-
- // If we reached here, there's no more work to do.
- ItemView.isIconLoading_ = false;
- };
-
ItemView.prototype = {
/** @param {!downloads.Data} data */
update: function(data) {
@@ -176,36 +137,41 @@ cr.define('downloads', function() {
if (dangerText) {
this.ensureTextIs_(this.description_, dangerText);
- var dangerousFile = data.danger_type == Item.DangerType.DANGEROUS_FILE;
+ var dangerType = data.danger_type;
+ var dangerousFile = dangerType == downloads.DangerType.DANGEROUS_FILE;
this.description_.classList.toggle('malware', !dangerousFile);
var idr = dangerousFile ? 'IDR_WARNING' : 'IDR_SAFEBROWSING_WARNING';
- ItemView.loadScaledIcon(this.dangerImg_, 'chrome://theme/' + idr);
+ var iconUrl = 'chrome://theme/' + idr;
+ this.iconLoader_.loadScaledIcon(this.dangerImg_, iconUrl);
var showMalwareControls =
- data.danger_type == Item.DangerType.DANGEROUS_CONTENT ||
- data.danger_type == Item.DangerType.DANGEROUS_HOST ||
- data.danger_type == Item.DangerType.DANGEROUS_URL ||
- data.danger_type == Item.DangerType.POTENTIALLY_UNWANTED;
+ dangerType == downloads.DangerType.DANGEROUS_CONTENT ||
+ dangerType == downloads.DangerType.DANGEROUS_HOST ||
+ dangerType == downloads.DangerType.DANGEROUS_URL ||
+ dangerType == downloads.DangerType.POTENTIALLY_UNWANTED;
this.malwareControls_.hidden = !showMalwareControls;
this.discard_.hidden = showMalwareControls;
this.save_.hidden = showMalwareControls;
} else {
- var path = encodeURIComponent(data.file_path);
- ItemView.loadScaledIcon(this.safeImg_, 'chrome://fileicon/' + path);
+ var iconUrl = 'chrome://fileicon/' + encodeURIComponent(data.file_path);
+ this.iconLoader_.loadScaledIcon(this.safeImg_, iconUrl);
- /** @const */ var isInProgress = data.state == Item.States.IN_PROGRESS;
+ /** @const */ var isInProgress =
+ data.state == downloads.States.IN_PROGRESS;
this.node.classList.toggle('in-progress', isInProgress);
/** @const */ var completelyOnDisk =
- data.state == Item.States.COMPLETE && !data.file_externally_removed;
+ data.state == downloads.States.COMPLETE &&
+ !data.file_externally_removed;
this.fileLink_.href = data.url;
this.ensureTextIs_(this.fileLink_, data.file_name);
this.fileLink_.hidden = !completelyOnDisk;
- /** @const */ var isInterrupted = data.state == Item.States.INTERRUPTED;
+ /** @const */ var isInterrupted =
+ data.state == downloads.States.INTERRUPTED;
this.fileName_.classList.toggle('interrupted', isInterrupted);
this.ensureTextIs_(this.fileName_, data.file_name);
this.fileName_.hidden = completelyOnDisk;
@@ -219,12 +185,12 @@ cr.define('downloads', function() {
this.resume_.hidden = !data.resume;
- /** @const */ var isPaused = data.state == Item.States.PAUSED;
+ /** @const */ var isPaused = data.state == downloads.States.PAUSED;
/** @const */ var showCancel = isPaused || isInProgress;
this.cancel_.hidden = !showCancel;
this.safeRemove_.hidden = showCancel ||
- !loadTimeData.getBoolean('allow_deleting_history');
+ !loadTimeData.getBoolean('allowDeletingHistory');
/** @const */ var controlledByExtension = data.by_ext_id &&
data.by_ext_name;
@@ -319,19 +285,17 @@ cr.define('downloads', function() {
*/
getDangerText_: function(data) {
switch (data.danger_type) {
- case Item.DangerType.DANGEROUS_FILE:
- return loadTimeData.getStringF('danger_file_desc', data.file_name);
- case Item.DangerType.DANGEROUS_URL:
- return loadTimeData.getString('danger_url_desc');
- case Item.DangerType.DANGEROUS_CONTENT: // Fall through.
- case Item.DangerType.DANGEROUS_HOST:
- return loadTimeData.getStringF('danger_content_desc', data.file_name);
- case Item.DangerType.UNCOMMON_CONTENT:
- return loadTimeData.getStringF('danger_uncommon_desc',
- data.file_name);
- case Item.DangerType.POTENTIALLY_UNWANTED:
- return loadTimeData.getStringF('danger_settings_desc',
- data.file_name);
+ case downloads.DangerType.DANGEROUS_FILE:
+ return loadTimeData.getStringF('dangerFileDesc', data.file_name);
+ case downloads.DangerType.DANGEROUS_URL:
+ return loadTimeData.getString('dangerUrlDesc');
+ case downloads.DangerType.DANGEROUS_CONTENT: // Fall through.
+ case downloads.DangerType.DANGEROUS_HOST:
+ return loadTimeData.getStringF('dangerContentDesc', data.file_name);
+ case downloads.DangerType.UNCOMMON_CONTENT:
+ return loadTimeData.getStringF('dangerUncommonDesc', data.file_name);
+ case downloads.DangerType.POTENTIALLY_UNWANTED:
+ return loadTimeData.getStringF('dangerSettingsDesc', data.file_name);
default:
return '';
}
@@ -344,20 +308,20 @@ cr.define('downloads', function() {
*/
getStatusText_: function(data) {
switch (data.state) {
- case Item.States.IN_PROGRESS:
- case Item.States.PAUSED: // Fallthrough.
+ case downloads.States.IN_PROGRESS:
+ case downloads.States.PAUSED: // Fallthrough.
assert(typeof data.progress_status_text == 'string');
return data.progress_status_text;
- case Item.States.CANCELLED:
- return loadTimeData.getString('status_cancelled');
- case Item.States.DANGEROUS:
+ case downloads.States.CANCELLED:
+ return loadTimeData.getString('statusCancelled');
+ case downloads.States.DANGEROUS:
break; // Intentionally hit assertNotReached(); at bottom.
- case Item.States.INTERRUPTED:
+ case downloads.States.INTERRUPTED:
assert(typeof data.last_reason_text == 'string');
return data.last_reason_text;
- case Item.States.COMPLETE:
+ case downloads.States.COMPLETE:
return data.file_externally_removed ?
- loadTimeData.getString('status_removed') : '';
+ loadTimeData.getString('statusRemoved') : '';
}
assertNotReached();
return '';
diff --git a/chromium/chrome/browser/resources/downloads/manager.js b/chromium/chrome/browser/resources/downloads/manager.js
index 1c5ca2855fb..e7c01e220d8 100644
--- a/chromium/chrome/browser/resources/downloads/manager.js
+++ b/chromium/chrome/browser/resources/downloads/manager.js
@@ -18,12 +18,13 @@ cr.define('downloads', function() {
/**
* Sets the search text, updates related UIs, and tells the browser.
* @param {string} searchText Text we're searching for.
+ * @private
*/
- setSearchText: function(searchText) {
+ setSearchText_: function(searchText) {
this.searchText_ = searchText;
$('downloads-summary-text').textContent = this.searchText_ ?
- loadTimeData.getStringF('searchresultsfor', this.searchText_) : '';
+ loadTimeData.getStringF('searchResultsFor', this.searchText_) : '';
// Split quoted terms (e.g., 'The "lazy" dog' => ['The', 'lazy', 'dog']).
function trim(s) { return s.trim(); }
@@ -31,35 +32,53 @@ cr.define('downloads', function() {
},
/**
+ * @return {number} A guess at how many items could be visible at once.
+ * @private
+ */
+ guesstimateNumberOfVisibleItems_: function() {
+ var headerHeight = document.querySelector('header').offsetHeight;
+ var summaryHeight = $('downloads-summary').offsetHeight;
+ var nonItemSpace = headerHeight + summaryHeight;
+ return Math.floor((window.innerHeight - nonItemSpace) / 46) + 1;
+ },
+
+ /**
* Called when all items need to be updated.
* @param {!Array<!downloads.Data>} list A list of new download data.
+ * @private
*/
- updateAll: function(list) {
+ updateAll_: function(list) {
var oldIdMap = this.idMap_ || {};
- /** @private {!Object<!downloads.Item>} */
+ /** @private {!Object<!downloads.ItemView>} */
this.idMap_ = {};
- /** @private {!Array<!downloads.Item>} */
+ /** @private {!Array<!downloads.ItemView>} */
this.items_ = [];
+ if (!this.iconLoader_) {
+ var guesstimate = Math.max(this.guesstimateNumberOfVisibleItems_(), 1);
+ /** @private {downloads.ThrottledIconLoader} */
+ this.iconLoader_ = new downloads.ThrottledIconLoader(guesstimate);
+ }
+
for (var i = 0; i < list.length; ++i) {
var data = list[i];
var id = data.id;
// Re-use old items when possible (saves work, preserves focus).
- var item = oldIdMap[id] || new downloads.Item;
+ var item = oldIdMap[id] || new downloads.ItemView(this.iconLoader_);
this.idMap_[id] = item; // Associated by ID for fast lookup.
this.items_.push(item); // Add to sorted list for order.
// Render |item| but don't actually add to the DOM yet. |this.items_|
// must be fully created to be able to find the right spot to insert.
- item.render(data);
+ item.update(data);
// Collapse redundant dates.
var prev = list[i - 1];
- item.view.dateContainer.hidden =
+ item.dateContainer.hidden =
prev && prev.date_string == data.date_string;
delete oldIdMap[id];
@@ -67,45 +86,50 @@ cr.define('downloads', function() {
// Remove stale, previously rendered items from the DOM.
for (var id in oldIdMap) {
- oldIdMap[id].unrender();
+ var oldNode = oldIdMap[id].node;
+ if (oldNode.parentNode)
+ oldNode.parentNode.removeChild(oldNode);
delete oldIdMap[id];
}
for (var i = 0; i < this.items_.length; ++i) {
var item = this.items_[i];
- if (item.view.node.parentNode) // Already in the DOM; skip.
+ if (item.node.parentNode) // Already in the DOM; skip.
continue;
var before = null;
// Find the next rendered item after this one, and insert before it.
for (var j = i + 1; !before && j < this.items_.length; ++j) {
- if (this.items_[j].view.node.parentNode)
- before = this.items_[j].view.node;
+ if (this.items_[j].node.parentNode)
+ before = this.items_[j].node;
}
// If |before| is null, |item| will just get added at the end.
- this.node_.insertBefore(item.view.node, before);
+ this.node_.insertBefore(item.node, before);
}
var noDownloadsOrResults = $('no-downloads-or-results');
noDownloadsOrResults.textContent = loadTimeData.getString(
- this.searchText_ ? 'no_search_results' : 'no_downloads');
+ this.searchText_ ? 'noSearchResults' : 'noDownloads');
- var hasDownloads = this.size() > 0;
+ var hasDownloads = this.size_() > 0;
this.node_.hidden = !hasDownloads;
noDownloadsOrResults.hidden = hasDownloads;
- if (loadTimeData.getBoolean('allow_deleting_history'))
+ if (loadTimeData.getBoolean('allowDeletingHistory'))
$('clear-all').hidden = !hasDownloads || this.searchText_.length > 0;
this.rebuildFocusGrid_();
},
- /** @param {!downloads.Data} data Info about the item to update. */
- updateItem: function(data) {
+ /**
+ * @param {!downloads.Data} data Info about the item to update.
+ * @private
+ */
+ updateItem_: function(data) {
var activeElement = document.activeElement;
var item = this.idMap_[data.id];
- item.render(data);
+ item.update(data);
var focusRow = this.decorateItem_(item);
if (focusRow.contains(activeElement) &&
@@ -138,31 +162,37 @@ cr.define('downloads', function() {
},
/**
- * @param {!downloads.Item} item An item to decorate as a FocusRow.
+ * @param {!downloads.ItemView} item An item to decorate as a FocusRow.
* @return {!downloads.FocusRow} |item| decorated as a FocusRow.
+ * @private
*/
decorateItem_: function(item) {
- downloads.FocusRow.decorate(item.view.node, item.view, this.node_);
- return assertInstanceof(item.view.node, downloads.FocusRow);
+ downloads.FocusRow.decorate(item.node, item, this.node_);
+ return assertInstanceof(item.node, downloads.FocusRow);
},
- /** @return {number} The number of downloads shown on the page. */
- size: function() {
+ /**
+ * @return {number} The number of downloads shown on the page.
+ * @private
+ */
+ size_: function() {
return this.items_.length;
},
- clearAll: function() {
- if (loadTimeData.getBoolean('allow_deleting_history')) {
+ /** @private */
+ clearAll_: function() {
+ if (loadTimeData.getBoolean('allowDeletingHistory')) {
chrome.send('clearAll');
- this.setSearchText('');
+ this.setSearchText_('');
}
},
- onLoad: function() {
+ /** @private */
+ onLoad_: function() {
this.node_ = $('downloads-display');
$('clear-all').onclick = function() {
- this.clearAll();
+ this.clearAll_();
}.bind(this);
$('open-downloads-folder').onclick = function() {
@@ -170,14 +200,14 @@ cr.define('downloads', function() {
};
$('term').onsearch = function(e) {
- this.setSearchText($('term').value);
+ this.setSearchText_($('term').value);
}.bind(this);
cr.ui.decorate('command', cr.ui.Command);
document.addEventListener('canExecute', this.onCanExecute_.bind(this));
document.addEventListener('command', this.onCommand_.bind(this));
- this.setSearchText('');
+ this.setSearchText_('');
},
/**
@@ -186,8 +216,14 @@ cr.define('downloads', function() {
*/
onCanExecute_: function(e) {
e = /** @type {cr.ui.CanExecuteEvent} */(e);
- e.canExecute = e.command.id != 'undo-command' ||
- document.activeElement != $('term');
+ switch (e.command.id) {
+ case 'undo-command':
+ e.canExecute = document.activeElement != $('term');
+ break;
+ case 'clear-all-command':
+ e.canExecute = true;
+ break;
+ }
},
/**
@@ -198,28 +234,28 @@ cr.define('downloads', function() {
if (e.command.id == 'undo-command')
chrome.send('undo');
else if (e.command.id == 'clear-all-command')
- this.clearAll();
+ this.clearAll_();
},
};
Manager.updateAll = function(list) {
- Manager.getInstance().updateAll(list);
+ Manager.getInstance().updateAll_(list);
};
Manager.updateItem = function(item) {
- Manager.getInstance().updateItem(item);
+ Manager.getInstance().updateItem_(item);
};
Manager.setSearchText = function(searchText) {
- Manager.getInstance().setSearchText(searchText);
+ Manager.getInstance().setSearchText_(searchText);
};
Manager.onLoad = function() {
- Manager.getInstance().onLoad();
+ Manager.getInstance().onLoad_();
};
Manager.size = function() {
- return Manager.getInstance().size();
+ return Manager.getInstance().size_();
};
return {Manager: Manager};
diff --git a/chromium/chrome/browser/resources/downloads/throttled_icon_loader.html b/chromium/chrome/browser/resources/downloads/throttled_icon_loader.html
new file mode 100644
index 00000000000..4cbd4ebfebd
--- /dev/null
+++ b/chromium/chrome/browser/resources/downloads/throttled_icon_loader.html
@@ -0,0 +1,3 @@
+<link rel="import" href="chrome://resources/html/assert.html">
+<link rel="import" href="chrome://resources/html/cr.html">
+<script src="throttled_icon_loader.js"></script>
diff --git a/chromium/chrome/browser/resources/downloads/throttled_icon_loader.js b/chromium/chrome/browser/resources/downloads/throttled_icon_loader.js
new file mode 100644
index 00000000000..5a10024e480
--- /dev/null
+++ b/chromium/chrome/browser/resources/downloads/throttled_icon_loader.js
@@ -0,0 +1,61 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/** @typedef {{img: HTMLImageElement, url: string}} */
+var LoadIconRequest;
+
+cr.define('downloads', function() {
+ /**
+ * @param {number} maxAllowed The maximum number of simultaneous downloads
+ * allowed.
+ * @constructor
+ */
+ function ThrottledIconLoader(maxAllowed) {
+ assert(maxAllowed > 0);
+
+ /** @private {number} */
+ this.maxAllowed_ = maxAllowed;
+
+ /** @private {!Array<!LoadIconRequest>} */
+ this.requests_ = [];
+ }
+
+ ThrottledIconLoader.prototype = {
+ /** @private {number} */
+ loading_: 0,
+
+ /**
+ * Load the provided |url| into |img.src| after appending ?scale=.
+ * @param {!HTMLImageElement} img An <img> to show the loaded image in.
+ * @param {string} url A remote image URL to load.
+ */
+ loadScaledIcon: function(img, url) {
+ var scaledUrl = url + '?scale=' + window.devicePixelRatio + 'x';
+ if (img.src == scaledUrl)
+ return;
+
+ this.requests_.push({img: img, url: scaledUrl});
+ this.loadNextIcon_();
+ },
+
+ /** @private */
+ loadNextIcon_: function() {
+ if (this.loading_ > this.maxAllowed_ || !this.requests_.length)
+ return;
+
+ var request = this.requests_.shift();
+ var img = request.img;
+
+ img.onabort = img.onerror = img.onload = function() {
+ this.loading_--;
+ this.loadNextIcon_();
+ }.bind(this);
+
+ this.loading_++;
+ img.src = request.url;
+ },
+ };
+
+ return {ThrottledIconLoader: ThrottledIconLoader};
+});
diff --git a/chromium/chrome/browser/resources/downloads_section.png b/chromium/chrome/browser/resources/downloads_section.png
index 1f592977c48..52f7b7ea61d 100644
--- a/chromium/chrome/browser/resources/downloads_section.png
+++ b/chromium/chrome/browser/resources/downloads_section.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/extensions/OWNERS b/chromium/chrome/browser/resources/extensions/OWNERS
index c97faa4239e..9fb4aea29dc 100644
--- a/chromium/chrome/browser/resources/extensions/OWNERS
+++ b/chromium/chrome/browser/resources/extensions/OWNERS
@@ -1,3 +1,4 @@
+dbeam@chromium.org
finnur@chromium.org
kalman@chromium.org
-miket@chromium.org
+rdevlin.cronin@chromium.org
diff --git a/chromium/chrome/browser/resources/extensions/compiled_resources.gyp b/chromium/chrome/browser/resources/extensions/compiled_resources.gyp
index 23f5dd0f3d3..e6127bf181a 100644
--- a/chromium/chrome/browser/resources/extensions/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/extensions/compiled_resources.gyp
@@ -31,9 +31,9 @@
'../../../../ui/webui/resources/js/util.js',
],
'externs': [
- '<(CLOSURE_DIR)/externs/chrome_extensions.js',
- '<(CLOSURE_DIR)/externs/chrome_send_externs.js',
- '<(CLOSURE_DIR)/externs/developer_private.js',
+ '<(EXTERNS_DIR)/chrome_extensions.js',
+ '<(EXTERNS_DIR)/chrome_send.js',
+ '<(EXTERNS_DIR)/developer_private.js',
],
},
'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
diff --git a/chromium/chrome/browser/resources/extensions/extension_command_list.js b/chromium/chrome/browser/resources/extensions/extension_command_list.js
index 0a184dc8330..9974fb72da9 100644
--- a/chromium/chrome/browser/resources/extensions/extension_command_list.js
+++ b/chromium/chrome/browser/resources/extensions/extension_command_list.js
@@ -15,14 +15,6 @@ var ExtensionCommand;
cr.define('options', function() {
'use strict';
- /**
- * Creates a new list of extension commands.
- * @param {Object=} opt_propertyBag Optional properties.
- * @constructor
- * @extends {HTMLDivElement}
- */
- var ExtensionCommandList = cr.ui.define('div');
-
/** @const */ var keyComma = 188;
/** @const */ var keyDel = 46;
/** @const */ var keyDown = 40;
@@ -184,6 +176,17 @@ cr.define('options', function() {
(countShiftAsModifier && event.shiftKey);
}
+ /**
+ * Creates a new list of extension commands.
+ * @param {HTMLDivElement} div
+ * @constructor
+ * @extends {HTMLDivElement}
+ */
+ function ExtensionCommandList(div) {
+ div.__proto__ = ExtensionCommandList.prototype;
+ return div;
+ }
+
ExtensionCommandList.prototype = {
__proto__: HTMLDivElement.prototype,
@@ -212,20 +215,31 @@ cr.define('options', function() {
*/
capturingElement_: null,
- decorate: function() {
+ /**
+ * Updates the extensions data for the overlay.
+ * @param {!Array<ExtensionInfo>} data The extension data.
+ */
+ setData: function(data) {
+ /** @private {!Array<ExtensionInfo>} */
+ this.data_ = data;
+
this.textContent = '';
// Iterate over the extension data and add each item to the list.
- this.data_.commands.forEach(this.createNodeForExtension_.bind(this));
+ this.data_.forEach(this.createNodeForExtension_.bind(this));
},
/**
* Synthesizes and initializes an HTML element for the extension command
* metadata given in |extension|.
- * @param {Object} extension A dictionary of extension metadata.
+ * @param {ExtensionInfo} extension A dictionary of extension metadata.
* @private
*/
createNodeForExtension_: function(extension) {
+ if (extension.commands.length == 0 ||
+ extension.state == chrome.developerPrivate.ExtensionState.DISABLED)
+ return;
+
var template = $('template-collection-extension-commands').querySelector(
'.extension-command-list-extension-item-wrapper');
var node = template.cloneNode(true);
@@ -237,22 +251,22 @@ cr.define('options', function() {
// Iterate over the commands data within the extension and add each item
// to the list.
- extension.commands.forEach(this.createNodeForCommand_.bind(this));
+ extension.commands.forEach(
+ this.createNodeForCommand_.bind(this, extension.id));
},
/**
* Synthesizes and initializes an HTML element for the extension command
* metadata given in |command|.
- * @param {ExtensionCommand} command A dictionary of extension command
- * metadata.
+ * @param {string} extensionId The associated extension's id.
+ * @param {Command} command A dictionary of extension command metadata.
* @private
*/
- createNodeForCommand_: function(command) {
+ createNodeForCommand_: function(extensionId, command) {
var template = $('template-collection-extension-commands').querySelector(
'.extension-command-list-command-item-wrapper');
var node = template.cloneNode(true);
- node.id = this.createElementId_(
- 'command', command.extension_id, command.command_name);
+ node.id = this.createElementId_('command', extensionId, command.name);
var description = node.querySelector('.command-description');
description.textContent = command.description;
@@ -264,7 +278,7 @@ cr.define('options', function() {
shortcutNode.addEventListener('blur', this.handleBlur_.bind(this));
shortcutNode.addEventListener('keydown', this.handleKeyDown_.bind(this));
shortcutNode.addEventListener('keyup', this.handleKeyUp_.bind(this));
- if (!command.active) {
+ if (!command.isActive) {
shortcutNode.textContent =
loadTimeData.getString('extensionCommandsInactive');
@@ -276,28 +290,31 @@ cr.define('options', function() {
var commandClear = node.querySelector('.command-clear');
commandClear.id = this.createElementId_(
- 'clear', command.extension_id, command.command_name);
+ 'clear', extensionId, command.name);
commandClear.title = loadTimeData.getString('extensionCommandsDelete');
commandClear.addEventListener('click', this.handleClear_.bind(this));
var select = node.querySelector('.command-scope');
select.id = this.createElementId_(
- 'setCommandScope', command.extension_id, command.command_name);
+ 'setCommandScope', extensionId, command.name);
select.hidden = false;
// Add the 'In Chrome' option.
var option = document.createElement('option');
option.textContent = loadTimeData.getString('extensionCommandsRegular');
select.appendChild(option);
- if (command.extension_action) {
+ if (command.isExtensionAction || !command.isActive) {
// Extension actions cannot be global, so we might as well disable the
- // combo box, to signify that.
+ // combo box, to signify that, and if the command is inactive, it
+ // doesn't make sense to allow the user to adjust the scope.
select.disabled = true;
} else {
// Add the 'Global' option.
option = document.createElement('option');
option.textContent = loadTimeData.getString('extensionCommandsGlobal');
select.appendChild(option);
- select.selectedIndex = command.global ? 1 : 0;
+ select.selectedIndex =
+ command.scope == chrome.developerPrivate.CommandScope.GLOBAL ?
+ 1 : 0;
select.addEventListener(
'change', this.handleSetCommandScope_.bind(this));
@@ -316,7 +333,7 @@ cr.define('options', function() {
if (this.capturingElement_)
return; // Already capturing.
- chrome.send('setShortcutHandlingSuspended', [true]);
+ chrome.developerPrivate.setShortcutHandlingSuspended(true);
var shortcutNode = event.target;
this.oldValue_ = shortcutNode.textContent;
@@ -341,7 +358,7 @@ cr.define('options', function() {
if (!this.capturingElement_)
return; // Not capturing.
- chrome.send('setShortcutHandlingSuspended', [false]);
+ chrome.developerPrivate.setShortcutHandlingSuspended(false);
var shortcutNode = this.capturingElement_;
var commandShortcut = shortcutNode.parentElement;
@@ -402,12 +419,20 @@ cr.define('options', function() {
handleKeyDown_: function(event) {
event = /** @type {KeyboardEvent} */(event);
if (event.keyCode == keyEscape) {
- // Escape cancels capturing.
+ if (!this.capturingElement_) {
+ // If we're not currently capturing, allow escape to propagate (so it
+ // can close the overflow).
+ return;
+ }
+ // Otherwise, escape cancels capturing.
this.endCapture_(event);
var parsed = this.parseElementId_('clear',
event.target.parentElement.querySelector('.command-clear').id);
- chrome.send('setExtensionCommandShortcut',
- [parsed.extensionId, parsed.commandName, '']);
+ chrome.developerPrivate.updateExtensionCommand({
+ extensionId: parsed.extensionId,
+ commandName: parsed.commandName,
+ keybinding: ''
+ });
event.preventDefault();
event.stopPropagation();
return;
@@ -430,8 +455,9 @@ cr.define('options', function() {
*/
handleKeyUp_: function(event) {
event = /** @type {KeyboardEvent} */(event);
- if (event.keyCode == keyTab) {
- // Allow tab propagation for keyboard navigation.
+ if (event.keyCode == keyTab || event.keyCode == keyEscape) {
+ // We need to allow tab propagation for keyboard navigation, and escapes
+ // are fully handled in handleKeyDown.
return;
}
@@ -496,8 +522,10 @@ cr.define('options', function() {
// Ending the capture must occur before calling
// setExtensionCommandShortcut to ensure the shortcut is set.
this.endCapture_(event);
- chrome.send('setExtensionCommandShortcut',
- [parsed.extensionId, parsed.commandName, keystroke]);
+ chrome.developerPrivate.updateExtensionCommand(
+ {extensionId: parsed.extensionId,
+ commandName: parsed.commandName,
+ keybinding: keystroke});
}
},
@@ -508,8 +536,10 @@ cr.define('options', function() {
*/
handleClear_: function(event) {
var parsed = this.parseElementId_('clear', event.target.id);
- chrome.send('setExtensionCommandShortcut',
- [parsed.extensionId, parsed.commandName, '']);
+ chrome.developerPrivate.updateExtensionCommand(
+ {extensionId: parsed.extensionId,
+ commandName: parsed.commandName,
+ keybinding: ''});
},
/**
@@ -521,8 +551,13 @@ cr.define('options', function() {
var parsed = this.parseElementId_('setCommandScope', event.target.id);
var element = document.getElementById(
'setCommandScope-' + parsed.extensionId + '-' + parsed.commandName);
- chrome.send('setCommandScope',
- [parsed.extensionId, parsed.commandName, element.selectedIndex == 1]);
+ var scope = element.selectedIndex == 1 ?
+ chrome.developerPrivate.CommandScope.GLOBAL :
+ chrome.developerPrivate.CommandScope.CHROME;
+ chrome.developerPrivate.updateExtensionCommand(
+ {extensionId: parsed.extensionId,
+ commandName: parsed.commandName,
+ scope: scope});
},
/**
diff --git a/chromium/chrome/browser/resources/extensions/extension_commands_overlay.js b/chromium/chrome/browser/resources/extensions/extension_commands_overlay.js
index a96ef44780b..9b51f341f90 100644
--- a/chromium/chrome/browser/resources/extensions/extension_commands_overlay.js
+++ b/chromium/chrome/browser/resources/extensions/extension_commands_overlay.js
@@ -31,12 +31,15 @@ cr.define('extensions', function() {
cr.ui.overlay.globalInitialization();
overlay.addEventListener('cancelOverlay', this.handleDismiss_.bind(this));
- $('extension-commands-dismiss').addEventListener('click',
- this.handleDismiss_.bind(this));
+ this.extensionCommandList_ = new ExtensionCommandList(
+ /**@type {HTMLDivElement} */($('extension-command-list')));
- // This will request the data to show on the page and will get a response
- // back in returnExtensionsData.
- chrome.send('extensionCommandsRequestExtensionsData');
+ $('extension-commands-dismiss').addEventListener('click', function() {
+ cr.dispatchSimpleEvent(overlay, 'cancelOverlay');
+ });
+
+ // The ExtensionList will update us with its data, so we don't need to
+ // handle that here.
},
/**
@@ -51,25 +54,28 @@ cr.define('extensions', function() {
/**
* Called by the dom_ui_ to re-populate the page with data representing
* the current state of extension commands.
- * @param {!{commands: Array<{name: string, id: string, commands: ?Array}>}}
- * extensionsData
+ * @param {!Array<ExtensionInfo>} extensionsData
*/
- ExtensionCommandsOverlay.returnExtensionsData = function(extensionsData) {
- ExtensionCommandList.prototype.data_ = extensionsData;
- var extensionCommandList = $('extension-command-list');
- ExtensionCommandList.decorate(extensionCommandList);
+ ExtensionCommandsOverlay.updateExtensionsData = function(extensionsData) {
+ var overlay = ExtensionCommandsOverlay.getInstance();
+ overlay.extensionCommandList_.setData(extensionsData);
+
+ var hasAnyCommands = false;
+ for (var i = 0; i < extensionsData.length; ++i) {
+ if (extensionsData[i].commands.length > 0) {
+ hasAnyCommands = true;
+ break;
+ }
+ }
// Make sure the config link is visible, since there are commands to show
// and potentially configure.
document.querySelector('.extension-commands-config').hidden =
- extensionsData.commands.length == 0;
+ !hasAnyCommands;
- $('no-commands').hidden = extensionsData.commands.length > 0;
- var list = $('extension-command-list');
- if (extensionsData.commands.length == 0)
- list.classList.add('empty-extension-commands-list');
- else
- list.classList.remove('empty-extension-commands-list');
+ $('no-commands').hidden = hasAnyCommands;
+ overlay.extensionCommandList_.classList.toggle(
+ 'empty-extension-commands-list', !hasAnyCommands);
};
// Export
diff --git a/chromium/chrome/browser/resources/extensions/extension_error_overlay.js b/chromium/chrome/browser/resources/extensions/extension_error_overlay.js
index 84e32a9f63b..1f7975e6605 100644
--- a/chromium/chrome/browser/resources/extensions/extension_error_overlay.js
+++ b/chromium/chrome/browser/resources/extensions/extension_error_overlay.js
@@ -292,8 +292,10 @@ cr.define('extensions', function() {
cr.ui.overlay.globalInitialization();
overlay.addEventListener('cancelOverlay', this.handleDismiss_.bind(this));
- $('extension-error-overlay-dismiss').addEventListener(
- 'click', this.handleDismiss_.bind(this));
+ $('extension-error-overlay-dismiss').addEventListener('click',
+ function() {
+ cr.dispatchSimpleEvent(overlay, 'cancelOverlay');
+ });
/**
* The element of the full overlay.
diff --git a/chromium/chrome/browser/resources/extensions/extension_error_severity_fatal.png b/chromium/chrome/browser/resources/extensions/extension_error_severity_fatal.png
index b52a68c6026..b53dc2cf74b 100644
--- a/chromium/chrome/browser/resources/extensions/extension_error_severity_fatal.png
+++ b/chromium/chrome/browser/resources/extensions/extension_error_severity_fatal.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/extensions/extension_error_severity_info.png b/chromium/chrome/browser/resources/extensions/extension_error_severity_info.png
index edc95f7cae6..1c32c6eb83f 100644
--- a/chromium/chrome/browser/resources/extensions/extension_error_severity_info.png
+++ b/chromium/chrome/browser/resources/extensions/extension_error_severity_info.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/extensions/extension_error_severity_warning.png b/chromium/chrome/browser/resources/extensions/extension_error_severity_warning.png
index 67a2037799c..d2e3434a595 100644
--- a/chromium/chrome/browser/resources/extensions/extension_error_severity_warning.png
+++ b/chromium/chrome/browser/resources/extensions/extension_error_severity_warning.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/extensions/extension_list.js b/chromium/chrome/browser/resources/extensions/extension_list.js
index b3343913c9f..d8cc1e03a9a 100644
--- a/chromium/chrome/browser/resources/extensions/extension_list.js
+++ b/chromium/chrome/browser/resources/extensions/extension_list.js
@@ -147,6 +147,8 @@ ExtensionFocusRow.prototype = {
cr.define('extensions', function() {
'use strict';
+ var ExtensionCommandsOverlay = extensions.ExtensionCommandsOverlay;
+
/**
* Compares two extensions for the order they should appear in the list.
* @param {ExtensionInfo} a The first extension.
@@ -294,6 +296,18 @@ cr.define('extensions', function() {
eventData.event_type == EventType.UNINSTALLED) {
this.delegate_.onExtensionCountChanged();
}
+
+ if (eventData.event_type == EventType.LOADED ||
+ eventData.event_type == EventType.UNLOADED ||
+ eventData.event_type == EventType.PREFS_CHANGED ||
+ eventData.event_type == EventType.UNINSTALLED) {
+ // We update the commands overlay whenever an extension is added or
+ // removed (other updates wouldn't affect command-ly things). We
+ // need both UNLOADED and UNINSTALLED since the UNLOADED event results
+ // in an extension losing active keybindings, and UNINSTALLED can
+ // result in the "Keyboard shortcuts" link being removed.
+ ExtensionCommandsOverlay.updateExtensionsData(this.extensions_);
+ }
}.bind(this));
},
@@ -320,6 +334,11 @@ cr.define('extensions', function() {
extensions.sort(compareExtensions);
this.extensions_ = extensions;
this.showExtensionNodes_();
+
+ // We keep the commands overlay's extension info in sync, so that we
+ // don't duplicate the same querying logic there.
+ ExtensionCommandsOverlay.updateExtensionsData(this.extensions_);
+
resolve();
// |resolve| is async so it's necessary to use |then| here in order to
@@ -639,7 +658,6 @@ cr.define('extensions', function() {
var trashTemplate = $('template-collection').querySelector('.trash');
var trash = trashTemplate.cloneNode(true);
trash.title = loadTimeData.getString('extensionUninstall');
- trash.hidden = !extension.userMayModify;
trash.setAttribute('column-type', 'trash');
trash.addEventListener('click', function(e) {
trash.classList.add('open');
@@ -702,19 +720,14 @@ cr.define('extensions', function() {
// Hack to keep the closure compiler happy about |remove|.
// TODO(hcarmona): Remove this hack when the closure compiler is updated.
var node = /** @type {Element} */ (row);
- node.classList.remove('policy-controlled', 'may-not-modify',
- 'may-not-remove');
+ node.classList.remove('controlled', 'may-not-remove');
var classes = [];
- if (!extension.userMayModify) {
- classes.push('policy-controlled', 'may-not-modify');
- } else if (extension.dependentExtensions.length > 0) {
- classes.push('may-not-remove', 'may-not-modify');
- } else if (extension.mustRemainInstalled) {
+ if (extension.controlledInfo) {
+ classes.push('controlled');
+ } else if (!extension.userMayModify ||
+ extension.mustRemainInstalled ||
+ extension.dependentExtensions.length > 0) {
classes.push('may-not-remove');
- } else if (extension.disableReasons.suspiciousInstall ||
- extension.disableReasons.corruptInstall ||
- extension.disableReasons.updateRequired) {
- classes.push('may-not-modify');
}
row.classList.add.apply(row.classList, classes);
@@ -850,32 +863,37 @@ cr.define('extensions', function() {
extension.disableReasons.suspiciousInstall ||
extension.disableReasons.corruptInstall ||
extension.disableReasons.updateRequired ||
- extension.installedByCustodian ||
extension.dependentExtensions.length > 0;
item.querySelector('input').disabled = enableCheckboxDisabled;
item.querySelector('input').checked = isActive;
});
- // Button for extensions controlled by policy.
+ // Indicator for extensions controlled by policy.
var controlNode = row.querySelector('.enable-controls');
var indicator =
controlNode.querySelector('.controlled-extension-indicator');
- var needsIndicator = isOK &&
- !extension.userMayModify &&
- extension.policyText;
- // TODO(treib): If userMayModify is false, but policyText is empty, that
- // indicates this extension is controlled by something else than
- // enterprise policy (such as the profile being supervised). For now, just
- // don't show the indicator in this case. We should really handle this
- // better though (ie use a different text and icon).
+ var needsIndicator = isOK && extension.controlledInfo;
if (needsIndicator && !indicator) {
indicator = new cr.ui.ControlledIndicator();
indicator.classList.add('controlled-extension-indicator');
- indicator.setAttribute('controlled-by', 'policy');
- var textPolicy = extension.policyText || '';
- indicator.setAttribute('textpolicy', textPolicy);
- indicator.image.setAttribute('aria-label', textPolicy);
+ var ControllerType = chrome.developerPrivate.ControllerType;
+ var controlledByStr = '';
+ switch (extension.controlledInfo.type) {
+ case ControllerType.POLICY:
+ controlledByStr = 'policy';
+ break;
+ case ControllerType.CHILD_CUSTODIAN:
+ controlledByStr = 'child-custodian';
+ break;
+ case ControllerType.SUPERVISED_USER_CUSTODIAN:
+ controlledByStr = 'supervised-user-custodian';
+ break;
+ }
+ indicator.setAttribute('controlled-by', controlledByStr);
+ var text = extension.controlledInfo.text;
+ indicator.setAttribute('text' + controlledByStr, text);
+ indicator.image.setAttribute('aria-label', text);
controlNode.appendChild(indicator);
indicator.querySelector('div').setAttribute('column-type',
'enterprise');
diff --git a/chromium/chrome/browser/resources/extensions/extension_options_overlay.js b/chromium/chrome/browser/resources/extensions/extension_options_overlay.js
index 8c09d153afc..73aac3ed618 100644
--- a/chromium/chrome/browser/resources/extensions/extension_options_overlay.js
+++ b/chromium/chrome/browser/resources/extensions/extension_options_overlay.js
@@ -2,6 +2,25 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+// Returns the width of a scrollbar in logical pixels.
+function getScrollbarWidth() {
+ // Create nested divs with scrollbars.
+ var outer = document.createElement('div');
+ outer.style.width = '100px';
+ outer.style.overflow = 'scroll';
+ outer.style.visibility = 'hidden';
+ document.body.appendChild(outer);
+ var inner = document.createElement('div');
+ inner.style.width = '101px';
+ outer.appendChild(inner);
+
+ // The outer div's |clientWidth| and |offsetWidth| differ only by the width of
+ // the vertical scrollbar.
+ var scrollbarWidth = outer.offsetWidth - outer.clientWidth;
+ outer.parentNode.removeChild(outer);
+ return scrollbarWidth;
+}
+
cr.define('extensions', function() {
'use strict';
@@ -132,11 +151,19 @@ cr.define('extensions', function() {
extensionoptions.onpreferredsizechanged = function(evt) {
var oldOverlayWidth = parseInt(overlayStyle.width, 10);
var oldOverlayHeight = parseInt(overlayStyle.height, 10);
- var newOverlayWidth = Math.max(evt.width, minWidth);
+ var newOverlayWidth = evt.width;
// |evt.height| is just the new overlay guest height, and does not
// include the overlay header height, so it needs to be added.
- var newOverlayHeight =
- Math.min(evt.height + overlayHeader.offsetHeight, maxHeight);
+ var newOverlayHeight = evt.height + overlayHeader.offsetHeight;
+
+ // Make room for the vertical scrollbar, if there is one.
+ if (newOverlayHeight > maxHeight) {
+ newOverlayWidth += getScrollbarWidth();
+ }
+
+ // Enforce |minWidth| and |maxHeight|.
+ newOverlayWidth = Math.max(newOverlayWidth, minWidth);
+ newOverlayHeight = Math.min(newOverlayHeight, maxHeight);
// animationTime is the amount of time in ms that will be used to resize
// the overlay. It is calculated by multiplying the pythagorean distance
diff --git a/chromium/chrome/browser/resources/extensions/extensions.css b/chromium/chrome/browser/resources/extensions/extensions.css
index 47119b78412..c94dfad6d5a 100644
--- a/chromium/chrome/browser/resources/extensions/extensions.css
+++ b/chromium/chrome/browser/resources/extensions/extensions.css
@@ -59,11 +59,6 @@ html:not(.focus-outline-visible)
flex: 1;
}
-#dev-toggle {
- margin-top: 0;
- text-align: end;
-}
-
.extension-code {
border: 1px solid #ccc;
display: flex;
@@ -108,11 +103,13 @@ html:not(.focus-outline-visible)
}
#header-controls {
- right: 13px;
+ /* Reserve enough space to match .location-text + .trash */
+ min-width: 130px;
+ right: 16px;
}
html[dir='rtl'] #header-controls {
- left: 13px;
+ left: 16px;
right: auto;
}
@@ -122,7 +119,7 @@ html[dir='rtl'] #header-controls {
#extension-settings #page-header {
/* These values match the .page values. */
- -webkit-margin-end: 0;
+ -webkit-margin-end: 24px;
min-width: 576px;
}
@@ -184,6 +181,7 @@ html[dir='rtl'] .extension-list-item {
.extension-title {
-webkit-padding-end: 20px;
color: rgb(48, 57, 66);
+ display: inline;
font-size: 14px;
font-weight: 500;
}
@@ -369,6 +367,11 @@ html[dir=rtl] .extension-commands-config {
width: 100px;
}
+.enable-checkbox {
+ /* Reserve enough space to match .location-text */
+ min-width: 100px;
+}
+
/* Trash */
#extension-settings .trash {
@@ -378,6 +381,7 @@ html[dir=rtl] .extension-commands-config {
right: -8px;
top: 6px;
transition: opacity 200ms;
+ vertical-align: top;
}
html[dir='rtl'] #extension-settings .trash {
@@ -398,7 +402,7 @@ html[dir='rtl'] #extension-settings .trash {
* remove it from the layout and make space for the controlled indicator.
* TODO(cschuet): rather than hide always replace it with something meaningful.
*/
-.extension-list-item-wrapper.policy-controlled .trash {
+.extension-list-item-wrapper.controlled .trash {
display: none;
}
diff --git a/chromium/chrome/browser/resources/extensions/extensions.html b/chromium/chrome/browser/resources/extensions/extensions.html
index fede5ebdc7a..58bbf471d84 100644
--- a/chromium/chrome/browser/resources/extensions/extensions.html
+++ b/chromium/chrome/browser/resources/extensions/extensions.html
@@ -16,6 +16,7 @@
<link rel="stylesheet" href="chrome://resources/css/controlled_indicator.css">
<link rel="stylesheet" href="chrome://resources/css/chrome_shared.css">
<link rel="stylesheet" href="chrome://resources/css/overlay.css">
+<link rel="stylesheet" href="chrome://resources/css/spinner.css">
<link rel="stylesheet" href="chrome://resources/css/trash.css">
<link rel="stylesheet" href="../uber/uber_shared.css">
@@ -86,7 +87,11 @@
</div>
</div>
</header>
- <div id="dev-controls">
+ <div id="loading-spinner">
+ <div class="inline-spinner"></div>
+ <span i18n-content="loading"></span>
+ </div>
+ <div id="dev-controls" hidden>
<div class="button-container">
<button id="load-unpacked"
i18n-content="extensionSettingsLoadUnpackedButton"></button>
@@ -128,7 +133,7 @@
<div class="extension-list-item">
<div class="extension-details">
<div>
- <span class="extension-title"></span>
+ <h2 class="extension-title"></h2>
<span class="extension-version"></span>
</div>
<p class="corrupt-install-message"
diff --git a/chromium/chrome/browser/resources/extensions/extensions.js b/chromium/chrome/browser/resources/extensions/extensions.js
index 5e1812dbf25..863d2fe6b60 100644
--- a/chromium/chrome/browser/resources/extensions/extensions.js
+++ b/chromium/chrome/browser/resources/extensions/extensions.js
@@ -125,17 +125,10 @@ cr.define('extensions', function() {
dragEnabled_: false,
/**
- * Callback for testing purposes. This is called after the "Developer mode"
- * checkbox is toggled and the div containing developer buttons' height has
- * been set.
- * @type {function()?}
- */
- testingDeveloperModeCallback: null,
-
- /**
* Perform initial setup.
*/
initialize: function() {
+ this.setLoading_(true);
uber.onContentFrameLoaded();
cr.ui.FocusOutlineManager.forDocument(document);
measureCheckboxStrings();
@@ -148,10 +141,12 @@ cr.define('extensions', function() {
var wrapper = $('extension-list-wrapper');
wrapper.insertBefore(extensionList, wrapper.firstChild);
- this.update_();
- // TODO(devlin): Remove this once all notifications are moved to events on
- // the developerPrivate api.
- chrome.send('extensionSettingsRegister');
+ // Get the initial profile state, and register to be notified of any
+ // future changes.
+ chrome.developerPrivate.getProfileConfiguration(
+ this.update_.bind(this));
+ chrome.developerPrivate.onProfileStateChanged.addListener(
+ this.update_.bind(this));
var extensionLoader = extensions.ExtensionLoader.getInstance();
@@ -240,23 +235,15 @@ cr.define('extensions', function() {
},
/**
- * Updates the extensions page to the latest profile and extensions
- * configuration.
- * @private
- */
- update_: function() {
- chrome.developerPrivate.getProfileConfiguration(
- this.returnProfileConfiguration_.bind(this));
- },
-
- /**
* [Re]-Populates the page with data representing the current state of
* installed extensions.
* @param {ProfileInfo} profileInfo
* @private
*/
- returnProfileConfiguration_: function(profileInfo) {
+ update_: function(profileInfo) {
+ this.setLoading_(true);
webuiResponded = true;
+
/** @const */
var supervised = profileInfo.isSupervised;
@@ -268,27 +255,33 @@ cr.define('extensions', function() {
devControlsCheckbox.checked = profileInfo.inDeveloperMode;
devControlsCheckbox.disabled = supervised;
- this.updateDevControlsVisibility_(false);
-
$('load-unpacked').disabled = !profileInfo.canLoadUnpacked;
var extensionList = $('extension-settings-list');
extensionList.updateExtensionsData(
profileInfo.isIncognitoAvailable,
profileInfo.appInfoDialogEnabled).then(function() {
- // We can get called many times in short order, thus we need to
- // be careful to remove the 'finished loading' timeout.
- if (this.loadingTimeout_)
- window.clearTimeout(this.loadingTimeout_);
- document.documentElement.classList.add('loading');
- this.loadingTimeout_ = window.setTimeout(function() {
- document.documentElement.classList.remove('loading');
- }, 0);
-
+ this.setLoading_(false);
this.onExtensionCountChanged();
}.bind(this));
},
/**
+ * Shows the loading spinner and hides elements that shouldn't be visible
+ * while loading.
+ * @param {boolean} isLoading
+ * @private
+ */
+ setLoading_: function(isLoading) {
+ document.documentElement.classList.toggle('loading', isLoading);
+ $('loading-spinner').hidden = !isLoading;
+ $('dev-controls').hidden = isLoading;
+ this.updateDevControlsVisibility_(false);
+
+ // The extension list is already hidden/shown elsewhere and shouldn't be
+ // updated here because it can be hidden if there are no extensions.
+ },
+
+ /**
* Handles the Pack Extension button.
* @param {Event} e Change event.
* @private
@@ -352,8 +345,7 @@ cr.define('extensions', function() {
devControls.style.height = !showDevControls ? '' :
buttons.offsetHeight + 'px';
- if (this.testingDeveloperModeCallback)
- this.testingDeveloperModeCallback();
+ document.dispatchEvent(new Event('devControlsVisibilityUpdated'));
}.bind(this));
},
@@ -367,14 +359,6 @@ cr.define('extensions', function() {
};
/**
- * Called by the WebUI when something has changed and the extensions UI needs
- * to be updated.
- */
- ExtensionSettings.onExtensionsChanged = function() {
- ExtensionSettings.getInstance().update_();
- };
-
- /**
* Returns the current overlay or null if one does not exist.
* @return {Element} The overlay element.
*/
@@ -401,9 +385,19 @@ cr.define('extensions', function() {
}
if (node) {
- var lastFocused = document.activeElement;
+ var lastFocused;
+
+ var focusOutlineManager = cr.ui.FocusOutlineManager.forDocument(document);
+ if (focusOutlineManager.visible)
+ lastFocused = document.activeElement;
+
$('overlay').addEventListener('cancelOverlay', function f() {
- lastFocused.focus();
+ console.log('cancelOverlay');
+ console.log('lastFocused', lastFocused);
+ console.log('focusOutlineManager.visible', focusOutlineManager.visible);
+ if (lastFocused && focusOutlineManager.visible)
+ lastFocused.focus();
+
$('overlay').removeEventListener('cancelOverlay', f);
});
node.classList.add('showing');
@@ -483,6 +477,5 @@ cr.define('extensions', function() {
});
window.addEventListener('load', function(e) {
- document.documentElement.classList.add('loading');
extensions.ExtensionSettings.getInstance().initialize();
});
diff --git a/chromium/chrome/browser/resources/extensions/pack_extension_overlay.js b/chromium/chrome/browser/resources/extensions/pack_extension_overlay.js
index 03e6180a03d..05d23d1f2f9 100644
--- a/chromium/chrome/browser/resources/extensions/pack_extension_overlay.js
+++ b/chromium/chrome/browser/resources/extensions/pack_extension_overlay.js
@@ -23,8 +23,9 @@ cr.define('extensions', function() {
cr.ui.overlay.globalInitialization();
overlay.addEventListener('cancelOverlay', this.handleDismiss_.bind(this));
- $('pack-extension-dismiss').addEventListener('click',
- this.handleDismiss_.bind(this));
+ $('pack-extension-dismiss').addEventListener('click', function() {
+ cr.dispatchSimpleEvent(overlay, 'cancelOverlay');
+ });
$('pack-extension-commit').addEventListener('click',
this.handleCommit_.bind(this));
$('browse-extension-dir').addEventListener('click',
diff --git a/chromium/chrome/browser/resources/feedback/js/event_handler.js b/chromium/chrome/browser/resources/feedback/js/event_handler.js
index d212c49df87..d492891bf1a 100644
--- a/chromium/chrome/browser/resources/feedback/js/event_handler.js
+++ b/chromium/chrome/browser/resources/feedback/js/event_handler.js
@@ -63,8 +63,11 @@ var whitelistedExtensionIds = [
'E216473E4D15C5FB14522D32C5F8DEAAB2CECDC6', // http://crbug.com/470411
'676A08383D875E51CE4C2308D875AE77199F1413', // http://crbug.com/473845
'869A23E11B308AF45A68CC386C36AADA4BE44A01', // http://crbug.com/473845
+ 'E9CE07C7EDEFE70B9857B312E88F94EC49FCC30F', // http://crbug.com/473845
'A4577D8C2AF4CF26F40CBCA83FFA4251D6F6C8F8', // http://crbug.com/478929
'A8208CCC87F8261AFAEB6B85D5E8D47372DDEA6B', // http://crbug.com/478929
+ 'B620CF4203315F9F2E046EDED22C7571A935958D', // http://crbug.com/510270
+ 'B206D8716769728278D2D300349C6CB7D7DE2EF9', // http://crbug.com/510270
];
diff --git a/chromium/chrome/browser/resources/feedback/js/feedback.js b/chromium/chrome/browser/resources/feedback/js/feedback.js
index 2aaded05aad..e0775f5bc04 100644
--- a/chromium/chrome/browser/resources/feedback/js/feedback.js
+++ b/chromium/chrome/browser/resources/feedback/js/feedback.js
@@ -6,7 +6,7 @@
* @const
*/
var FEEDBACK_LANDING_PAGE =
- 'https://www.google.com/support/chrome/go/feedback_confirmation';
+ 'https://support.google.com/chrome/go/feedback_confirmation';
/** @type {number}
* @const
*/
diff --git a/chromium/chrome/browser/resources/feedback/manifest.json b/chromium/chrome/browser/resources/feedback/manifest.json
index 4f94ae38640..1fd74aef065 100644
--- a/chromium/chrome/browser/resources/feedback/manifest.json
+++ b/chromium/chrome/browser/resources/feedback/manifest.json
@@ -18,7 +18,7 @@
"background": {
"scripts": ["js/event_handler.js"]
},
- "content_security_policy": "default-src 'none'; script-src 'self' chrome://resources; style-src 'unsafe-inline' *; img-src *; media-src 'self'"
+ "content_security_policy": "default-src 'none'; script-src 'self' blob: filesystem: chrome://resources; style-src 'unsafe-inline' *; img-src *; media-src 'self' blob: filesystem:"
},
"display_in_launcher": false,
"display_in_new_tab_page": false
diff --git a/chromium/chrome/browser/resources/flags.css b/chromium/chrome/browser/resources/flags.css
index 6bae533168f..ca75e84b907 100644
--- a/chromium/chrome/browser/resources/flags.css
+++ b/chromium/chrome/browser/resources/flags.css
@@ -114,17 +114,17 @@ html[dir=rtl] #experiment-reset-all {
-webkit-padding-end: 5px;
}
-/* Disabled and unsupported experiments display grey text on a grey background.
+/* Default and unsupported experiments display grey text on a grey background.
The title, however, should remain legible. */
.experiment-unsupported > td,
-.experiment-disabled > td {
+.experiment-default > td {
background: #F0F0F0;
color: #A0A0A0;
}
.experiment-unsupported .experiment-name,
-.experiment-disabled .experiment-name {
+.experiment-default .experiment-name {
color: #000;
}
diff --git a/chromium/chrome/browser/resources/flags.html b/chromium/chrome/browser/resources/flags.html
index 9a4cd3c71a6..3a6e57afc41 100644
--- a/chromium/chrome/browser/resources/flags.html
+++ b/chromium/chrome/browser/resources/flags.html
@@ -62,8 +62,8 @@
<table width="100%" cellpadding="2" cellspacing="0">
<!-- TODO(mkwst): This doesn't work exactly as expected for multivalue
experiments. See http://crbug.com/73730 -->
- <tr jsvalues="class: enabled ? 'experiment-enabled'
- : 'experiment-disabled'">
+ <tr jsvalues="class: is_default ? 'experiment-default'
+ : 'experiment-switched'">
<td valign="top">
<div class="experiment-text">
<div>
diff --git a/chromium/chrome/browser/resources/flags.js b/chromium/chrome/browser/resources/flags.js
index 4c3a180f161..2ef351f370b 100644
--- a/chromium/chrome/browser/resources/flags.js
+++ b/chromium/chrome/browser/resources/flags.js
@@ -110,8 +110,12 @@ function resetAllFlags() {
* internal_name: 'Experiment ID string',
* name: 'Experiment Name',
* description: 'description',
- * // enabled is only set if the experiment is single valued.
+ * // enabled and default are only set if the experiment is single
+ * // valued.
+ * // enabled is true if the experiment is currently enabled.
+ * // is_default is true if the experiment is in its default state.
* enabled: true,
+ * is_default: false,
* // choices is only set if the experiment has multiple values.
* choices: [
* {
diff --git a/chromium/chrome/browser/resources/gaia_auth/OWNERS b/chromium/chrome/browser/resources/gaia_auth/OWNERS
index 932dfbf8be8..9e6ea7e5d7d 100644
--- a/chromium/chrome/browser/resources/gaia_auth/OWNERS
+++ b/chromium/chrome/browser/resources/gaia_auth/OWNERS
@@ -1,4 +1,5 @@
nkostylev@chromium.org
xiyuan@chromium.org
zelidrag@chromium.org
-guohui@chromium.org \ No newline at end of file
+guohui@chromium.org
+achuith@chromium.org
diff --git a/chromium/chrome/browser/resources/gaia_auth/background.js b/chromium/chrome/browser/resources/gaia_auth/background.js
index 3b529f33463..482a4d1df4c 100644
--- a/chromium/chrome/browser/resources/gaia_auth/background.js
+++ b/chromium/chrome/browser/resources/gaia_auth/background.js
@@ -28,13 +28,14 @@
* the associated tab id.
*/
function BackgroundBridgeManager() {
+ this.bridges_ = {};
}
BackgroundBridgeManager.prototype = {
CONTINUE_URL_BASE: 'chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik' +
'/success.html',
// Maps a tab id to its associated BackgroundBridge.
- bridges_: {},
+ bridges_: null,
run: function() {
chrome.runtime.onConnect.addListener(this.onConnect_.bind(this));
@@ -103,6 +104,7 @@ BackgroundBridgeManager.prototype = {
*/
function BackgroundBridge(tabId) {
this.tabId_ = tabId;
+ this.passwordStore_ = {};
}
BackgroundBridge.prototype = {
@@ -148,7 +150,7 @@ BackgroundBridge.prototype = {
// Whether SAML flow is going.
isSAML_: false,
- passwordStore_: {},
+ passwordStore_: null,
channelMain_: null,
channelInjected_: null,
diff --git a/chromium/chrome/browser/resources/gaia_auth/channel.js b/chromium/chrome/browser/resources/gaia_auth/channel.js
index 52094b9d925..2f6ce2101e6 100644
--- a/chromium/chrome/browser/resources/gaia_auth/channel.js
+++ b/chromium/chrome/browser/resources/gaia_auth/channel.js
@@ -6,6 +6,8 @@
* Channel to the background script.
*/
function Channel() {
+ this.messageCallbacks_ = {};
+ this.internalRequestCallbacks_ = {};
}
/** @const */
@@ -19,13 +21,13 @@ Channel.prototype = {
port_: null,
// Registered message callbacks.
- messageCallbacks_: {},
+ messageCallbacks_: null,
// Internal request id to track pending requests.
nextInternalRequestId_: 0,
// Pending internal request callbacks.
- internalRequestCallbacks_: {},
+ internalRequestCallbacks_: null,
/**
* Initialize the channel with given port for the background script.
diff --git a/chromium/chrome/browser/resources/gaia_auth/keyboard_ui.css b/chromium/chrome/browser/resources/gaia_auth/keyboard_ui.css
deleted file mode 100644
index 4bff353fd2d..00000000000
--- a/chromium/chrome/browser/resources/gaia_auth/keyboard_ui.css
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-input[type=email]:focus,
-input[type=number]:focus,
-input[type=password]:focus,
-input[type=tel]:focus,
-input[type=text]:focus,
-input[type=url]:focus {
- box-shadow: inset 0 1px 2px rgba(0,0,0,0.3),
- 0 0 23px rgb(77, 144, 254)
- !important;
-}
-
-.g-button-submit:focus,
-a:focus {
- box-shadow: inset 0 0 0 1px #fff,
- 0 0 23px rgb(77, 144, 254)
- !important;
-}
diff --git a/chromium/chrome/browser/resources/gaia_auth/main.js b/chromium/chrome/browser/resources/gaia_auth/main.js
index c1744a29336..1614fb9a5d5 100644
--- a/chromium/chrome/browser/resources/gaia_auth/main.js
+++ b/chromium/chrome/browser/resources/gaia_auth/main.js
@@ -224,6 +224,9 @@ Authenticator.prototype = {
window.setTimeout(function() {
if (!this.supportChannel_) {
+ // Give up previous channel and bind its 'channelConnected' to a no-op.
+ supportChannel.registerMessage('channelConnected', function() {});
+
// Re-initialize the channel if it is not connected properly, e.g.
// connect may be called before background script started running.
this.initSupportChannel_();
diff --git a/chromium/chrome/browser/resources/gaia_auth/manifest.json b/chromium/chrome/browser/resources/gaia_auth/manifest.json
index e62cc451130..0e708d01274 100644
--- a/chromium/chrome/browser/resources/gaia_auth/manifest.json
+++ b/chromium/chrome/browser/resources/gaia_auth/manifest.json
@@ -17,7 +17,7 @@
"all_frames": true
}
],
- "content_security_policy": "default-src 'self'; script-src 'self'; frame-src 'self' http: https:; style-src 'self'",
+ "content_security_policy": "default-src 'self' blob: filesystem:; script-src 'self' blob: filesystem:; frame-src 'self' blob: filesystem: http: https:; style-src 'self' blob: filesystem:",
"description": "GAIA Component Extension",
"incognito": "split",
"web_accessible_resources": [
diff --git a/chromium/chrome/browser/resources/gaia_auth/manifest_keyboard.json b/chromium/chrome/browser/resources/gaia_auth/manifest_keyboard.json
deleted file mode 100644
index 676bb98c1e6..00000000000
--- a/chromium/chrome/browser/resources/gaia_auth/manifest_keyboard.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- // chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/
- "key": "MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQC4L17nAfeTd6Xhtx96WhQ6DSr8KdHeQmfzgCkieKLCgUkWdwB9G1DCuh0EPMDn1MdtSwUAT7xE36APEzi0X/UpKjOVyX8tCC3aQcLoRAE0aJAvCcGwK7qIaQaczHmHKvPC2lrRdzSoMMTC5esvHX+ZqIBMi123FOL0dGW6OPKzIwIBIw==",
- "name": "GaiaAuthExtension",
- "version": "0.0.1",
- "manifest_version": 2,
- "background" : {
- "scripts": ["channel.js", "background.js"]
- },
- "content_scripts": [
- {
- "matches": [
- "<all_urls>"
- ],
- "js": ["channel.js", "saml_injected.js"],
- "run_at": "document_start",
- "all_frames": true
- },
- {
- "matches": [
- "https://www.google.com/accounts/*",
- "https://accounts.google.com/*"
- ],
- "css": ["keyboard_ui.css"],
- "all_frames": true
- }
- ],
- "content_security_policy": "default-src 'self'; script-src 'self'; frame-src 'self' http: https:; style-src 'self'",
- "description": "GAIA Component Extension",
- "incognito": "split",
- "web_accessible_resources": [
- "main.css",
- "main.html",
- "main.js",
- "offline.css",
- "offline.html",
- "offline.js",
- "success.html",
- "success.js",
- "util.js"
- ],
- "permissions": [
- "<all_urls>",
- "webRequest",
- "webRequestBlocking"
- ]
-}
diff --git a/chromium/chrome/browser/resources/gaia_auth_host/OWNERS b/chromium/chrome/browser/resources/gaia_auth_host/OWNERS
index cac125975e2..210e4ec0dc7 100644
--- a/chromium/chrome/browser/resources/gaia_auth_host/OWNERS
+++ b/chromium/chrome/browser/resources/gaia_auth_host/OWNERS
@@ -1,3 +1,4 @@
nkostylev@chromium.org
xiyuan@chromium.org
zelidrag@chromium.org
+achuith@chromium.org
diff --git a/chromium/chrome/browser/resources/gaia_auth_host/authenticator.js b/chromium/chrome/browser/resources/gaia_auth_host/authenticator.js
index 870b368258f..ed83ce3619f 100644
--- a/chromium/chrome/browser/resources/gaia_auth_host/authenticator.js
+++ b/chromium/chrome/browser/resources/gaia_auth_host/authenticator.js
@@ -25,8 +25,10 @@ cr.define('cr.login', function() {
var SIGN_IN_HEADER = 'google-accounts-signin';
var EMBEDDED_FORM_HEADER = 'google-accounts-embedded';
var LOCATION_HEADER = 'location';
+ var COOKIE_HEADER = 'cookie';
var SET_COOKIE_HEADER = 'set-cookie';
var OAUTH_CODE_COOKIE = 'oauth_code';
+ var GAPS_COOKIE = 'GAPS';
var SERVICE_ID = 'chromeoslogin';
var EMBEDDED_SETUP_CHROMEOS_ENDPOINT = 'embedded/setup/chromeos';
@@ -87,6 +89,7 @@ cr.define('cr.login', function() {
'platformVersion', // Version of the OS build.
'releaseChannel', // Installation channel.
'endpointGen', // Current endpoint generation.
+ 'gapsCookie', // GAPS cookie
];
/**
@@ -114,7 +117,10 @@ cr.define('cr.login', function() {
this.initialFrameUrl_ = null;
this.reloadUrl_ = null;
this.trusted_ = true;
- this.oauth_code_ = null;
+ this.oauthCode_ = null;
+ this.gapsCookie_ = null;
+ this.gapsCookieSent_ = false;
+ this.newGapsCookie_ = null;
this.useEafe_ = false;
this.clientId_ = null;
@@ -170,7 +176,10 @@ cr.define('cr.login', function() {
this.email_ = null;
this.gaiaId_ = null;
this.password_ = null;
- this.oauth_code_ = null;
+ this.oauthCode_ = null;
+ this.gapsCookie_ = null;
+ this.gapsCookieSent_ = false;
+ this.newGapsCookie_ = null;
this.chooseWhatToSync_ = false;
this.skipForNow_ = false;
this.sessionIndex_ = null;
@@ -188,6 +197,7 @@ cr.define('cr.login', function() {
this.authMode = authMode;
this.clearCredentials_();
this.loaded_ = false;
+ // gaiaUrl parameter is used for testing. Once defined, it is never changed.
this.idpOrigin_ = data.gaiaUrl || IDP_ORIGIN;
this.continueUrl_ = data.continueUrl || CONTINUE_URL;
this.continueUrlWithoutParams_ =
@@ -197,6 +207,9 @@ cr.define('cr.login', function() {
this.isNewGaiaFlowChromeOS = data.isNewGaiaFlowChromeOS;
this.useEafe_ = data.useEafe || false;
this.clientId_ = data.clientId;
+ this.gapsCookie_ = data.gapsCookie;
+ this.gapsCookieSent_ = false;
+ this.newGapsCookie_ = null;
this.initialFrameUrl_ = this.constructInitialFrameUrl_(data);
this.reloadUrl_ = data.frameUrl || this.initialFrameUrl_;
@@ -210,6 +223,16 @@ cr.define('cr.login', function() {
this.webview_.contextMenus.onShow.addListener(function(e) {
e.preventDefault();
});
+
+ if (!this.onBeforeSetHeadersSet_) {
+ this.onBeforeSetHeadersSet_ = true;
+ var filterPrefix = this.idpOrigin_ + EMBEDDED_SETUP_CHROMEOS_ENDPOINT;
+ // This depends on gaiaUrl parameter, that is why it is here.
+ this.webview_.request.onBeforeSendHeaders.addListener(
+ this.onBeforeSendHeaders_.bind(this),
+ {urls: [filterPrefix + '?*', filterPrefix + '/*']},
+ ['requestHeaders', 'blocking']);
+ }
}
this.webview_.src = this.reloadUrl_;
@@ -374,11 +397,73 @@ cr.define('cr.login', function() {
this.isNewGaiaFlowChromeOS && headerName == SET_COOKIE_HEADER) {
var headerValue = header.value;
if (headerValue.indexOf(OAUTH_CODE_COOKIE + '=', 0) == 0) {
- this.oauth_code_ =
+ this.oauthCode_ =
headerValue.substring(OAUTH_CODE_COOKIE.length + 1).split(';')[0];
}
+ if (headerValue.indexOf(GAPS_COOKIE + '=', 0) == 0) {
+ this.newGapsCookie_ =
+ headerValue.substring(GAPS_COOKIE.length + 1).split(';')[0];
+ }
+ }
+ }
+ };
+
+ /**
+ * This method replaces cookie value in cookie header.
+ * @param@ {string} header_value Original string value of Cookie header.
+ * @param@ {string} cookie_name Name of cookie to be replaced.
+ * @param@ {string} cookie_value New cookie value.
+ * @return {string} New Cookie header value.
+ * @private
+ */
+ Authenticator.prototype.updateCookieValue_ = function(
+ header_value, cookie_name, cookie_value) {
+ var cookies = header_value.split(/\s*;\s*/);
+ var found = false;
+ for (var i = 0; i < cookies.length; ++i) {
+ if (cookies[i].indexOf(cookie_name + '=', 0) == 0) {
+ found = true;
+ cookies[i] = cookie_name + '=' + cookie_value;
+ break;
+ }
+ }
+ if (!found) {
+ cookies.push(cookie_name + '=' + cookie_value);
+ }
+ return cookies.join('; ');
+ };
+
+ /**
+ * Handler for webView.request.onBeforeSendHeaders .
+ * @return {!Object} Modified request headers.
+ * @private
+ */
+ Authenticator.prototype.onBeforeSendHeaders_ = function(details) {
+ // We should re-send cookie if first request was unsuccessful (i.e. no new
+ // GAPS cookie was received).
+ if (this.isNewGaiaFlowChromeOS && this.gapsCookie_ &&
+ (!this.gapsCookieSent_ || !this.newGapsCookie_)) {
+ var headers = details.requestHeaders;
+ var found = false;
+ var gapsCookie = this.gapsCookie_;
+
+ for (var i = 0, l = headers.length; i < l; ++i) {
+ if (headers[i].name == COOKIE_HEADER) {
+ headers[i].value = this.updateCookieValue_(headers[i].value,
+ GAPS_COOKIE, gapsCookie);
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ details.requestHeaders.push(
+ {name: COOKIE_HEADER, value: GAPS_COOKIE + '=' + gapsCookie});
}
+ this.gapsCookieSent_ = true;
}
+ return {
+ requestHeaders: details.requestHeaders
+ };
};
/**
@@ -398,14 +483,14 @@ cr.define('cr.login', function() {
if (this.useEafe_ &&
typeof e.data == 'object' &&
e.data.hasOwnProperty('authorizationCode')) {
- assert(!this.oauth_code_);
- this.oauth_code_ = e.data.authorizationCode;
+ assert(!this.oauthCode_);
+ this.oauthCode_ = e.data.authorizationCode;
this.dispatchEvent(
new CustomEvent('authCompleted',
{
detail: {
authCodeOnly: true,
- authCode: this.oauth_code_
+ authCode: this.oauthCode_
}
}));
return;
@@ -445,6 +530,10 @@ cr.define('cr.login', function() {
this.dispatchEvent(new CustomEvent('backButton', {detail: msg.show}));
} else if (msg.method == 'showView') {
this.dispatchEvent(new Event('showView'));
+ } else if (msg.method == 'identifierEntered') {
+ this.dispatchEvent(new CustomEvent(
+ 'identifierEntered',
+ {detail: {accountIdentifier: msg.accountIdentifier}}));
} else {
console.warn('Unrecognized message from GAIA: ' + msg.method);
}
@@ -487,17 +576,23 @@ cr.define('cr.login', function() {
return;
}
- if (this.authFlow != AuthFlow.SAML) {
- this.onAuthCompleted_();
- return;
- }
-
if (this.samlHandler_.samlApiUsed) {
if (this.samlApiUsedCallback) {
this.samlApiUsedCallback();
}
this.password_ = this.samlHandler_.apiPasswordBytes;
- } else if (this.samlHandler_.scrapedPasswordCount == 0) {
+ this.onAuthCompleted_();
+ return;
+ }
+
+ // TODO(achuith): Eliminate this branch when credential passing api is
+ // stable on prod. crbug.com/467778.
+ if (this.authFlow != AuthFlow.SAML) {
+ this.onAuthCompleted_();
+ return;
+ }
+
+ if (this.samlHandler_.scrapedPasswordCount == 0) {
if (this.noPasswordCallback) {
this.noPasswordCallback(this.email_);
return;
@@ -527,22 +622,23 @@ cr.define('cr.login', function() {
Authenticator.prototype.onAuthCompleted_ = function() {
assert(this.skipForNow_ ||
(this.email_ && this.gaiaId_ && this.sessionIndex_));
- this.dispatchEvent(
- new CustomEvent('authCompleted',
- // TODO(rsorokin): get rid of the stub values.
- {
- detail: {
- email: this.email_ || '',
- gaiaId: this.gaiaId_ || '',
- password: this.password_ || '',
- authCode: this.oauth_code_,
- usingSAML: this.authFlow == AuthFlow.SAML,
- chooseWhatToSync: this.chooseWhatToSync_,
- skipForNow: this.skipForNow_,
- sessionIndex: this.sessionIndex_ || '',
- trusted: this.trusted_
- }
- }));
+ this.dispatchEvent(new CustomEvent(
+ 'authCompleted',
+ // TODO(rsorokin): get rid of the stub values.
+ {
+ detail: {
+ email: this.email_ || '',
+ gaiaId: this.gaiaId_ || '',
+ password: this.password_ || '',
+ authCode: this.oauthCode_,
+ usingSAML: this.authFlow == AuthFlow.SAML,
+ chooseWhatToSync: this.chooseWhatToSync_,
+ skipForNow: this.skipForNow_,
+ sessionIndex: this.sessionIndex_ || '',
+ trusted: this.trusted_,
+ gapsCookie: this.newGapsCookie_ || this.gapsCookie_ || '',
+ }
+ }));
this.clearCredentials_();
};
@@ -653,7 +749,7 @@ cr.define('cr.login', function() {
* @private
*/
Authenticator.prototype.onLoadCommit_ = function(e) {
- if (this.oauth_code_) {
+ if (this.oauthCode_) {
this.skipForNow_ = true;
this.maybeCompleteAuth_();
}
diff --git a/chromium/chrome/browser/resources/gaia_auth_host/post_message_channel.js b/chromium/chrome/browser/resources/gaia_auth_host/post_message_channel.js
index b63f93b2039..0b2b6e7323f 100644
--- a/chromium/chrome/browser/resources/gaia_auth_host/post_message_channel.js
+++ b/chromium/chrome/browser/resources/gaia_auth_host/post_message_channel.js
@@ -14,7 +14,7 @@
var PostMessageChannel = (function() {
/**
* Allowed origins of the hosting page.
- * @type {Array.<string>}
+ * @type {Array<string>}
*/
var ALLOWED_ORIGINS = [
'chrome://oobe',
@@ -78,7 +78,7 @@ var PostMessageChannel = (function() {
/**
* Channle Id to port map.
- * @type {Object.<number, PostMessagePort>}
+ * @type {Object<number, PostMessagePort>}
*/
this.channels_ = {};
@@ -324,6 +324,7 @@ var PostMessageChannel = (function() {
* @constructor
*/
function PostMessageChannel() {
+ Channel.apply(this, arguments);
};
PostMessageChannel.prototype = {
diff --git a/chromium/chrome/browser/resources/gaia_auth_host/saml_handler.js b/chromium/chrome/browser/resources/gaia_auth_host/saml_handler.js
index bd8603613d3..9b6ceb94c00 100644
--- a/chromium/chrome/browser/resources/gaia_auth_host/saml_handler.js
+++ b/chromium/chrome/browser/resources/gaia_auth_host/saml_handler.js
@@ -105,7 +105,7 @@ cr.define('cr.login', function() {
/**
* Scraped password stored in an id to password field value map.
- * @type {Object.<string, string>}
+ * @type {Object<string, string>}
* @private
*/
this.passwordStore_ = {};
@@ -199,7 +199,7 @@ cr.define('cr.login', function() {
/**
* Gets the de-duped scraped passwords.
- * @return {Array.<string>}
+ * @return {Array<string>}
* @private
*/
getConsolidatedScrapedPasswords_: function() {
diff --git a/chromium/chrome/browser/resources/gcm_internals.html b/chromium/chrome/browser/resources/gcm_internals.html
index 48fb41b28ce..faddaa478b1 100644
--- a/chromium/chrome/browser/resources/gcm_internals.html
+++ b/chromium/chrome/browser/resources/gcm_internals.html
@@ -128,7 +128,7 @@
<tr>
<th>Time</th>
<th>App Id</th>
- <th>Sender Ids</th>
+ <th>Source</th>
<th>Event</th>
<th>Details</th>
</tr>
diff --git a/chromium/chrome/browser/resources/get_salient_image_url.js b/chromium/chrome/browser/resources/get_salient_image_url.js
deleted file mode 100644
index cb3020e6d5d..00000000000
--- a/chromium/chrome/browser/resources/get_salient_image_url.js
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-/*
- * Looks on the page to find the image that could be the most representative
- * one.
- */
-(function() {
- // Extract the referrer policy from the page.
- var referrerPolicy = 'default';
- var metaTags = document.getElementsByTagName('meta');
- for (var i = 0; i < metaTags.length; ++i) {
- if (metaTags[i].name.toLowerCase() == 'referrer') {
- referrerPolicy = metaTags[i].content.toLowerCase();
- break;
- }
- }
-
- // See what to use for JSON. Some pages use a library that overrides JSON.
- var jsonEncoder = JSON.stringify;
- if (!jsonEncoder)
- jsonEncoder = JSON.encode;
-
- // First look if there is an Open Graph Image property available.
- var ogImage = document.querySelector('meta[property=\"og:image\"]');
- if (ogImage) {
- // Checks that the url in ogImage has a path that contains more than just a
- // simple '/'.
- var url = ogImage.content;
- var location = document.createElement('a');
- location.href = url;
- if (location.pathname.length > 1) {
- return jsonEncoder({
- 'imageUrl': url,
- 'referrerPolicy': referrerPolicy
- });
- }
- }
-
- // Iterates through the images on the page, find the largest one that doesn't
- // look like a banner.
- var maxPointSize = 0;
- var maxImage = null;
-
- var images = document.getElementsByTagName('img');
- for (var i = 0; i < images.length; i++) {
- var currentImage = images[i];
- var aspectRatio = currentImage.width / currentImage.height;
- if (aspectRatio >= 2.4 || aspectRatio <= 0.5)
- continue; // Skip weirdly shaped images. Those are ads or headers.
- var pointSize = currentImage.width * currentImage.height;
- if (pointSize > maxPointSize) {
- maxPointSize = pointSize;
- maxImage = currentImage;
- }
- }
-
- // Only keep images larger than 320*160.
- if (maxPointSize <= 51200.0 || maxImage === null)
- return '';
-
- return jsonEncoder({
- 'imageUrl': maxImage.src,
- 'referrerPolicy': referrerPolicy
- });
-})();
diff --git a/chromium/chrome/browser/resources/google_now/background.js b/chromium/chrome/browser/resources/google_now/background.js
index 2db2d1e6f8c..7ef5d026052 100644
--- a/chromium/chrome/browser/resources/google_now/background.js
+++ b/chromium/chrome/browser/resources/google_now/background.js
@@ -136,7 +136,7 @@ var ReceivedGroup;
*
* @typedef {{
* googleNowDisabled: (boolean|undefined),
- * groups: Object<string, ReceivedGroup>,
+ * groups: Object<ReceivedGroup>,
* notifications: Array<ReceivedNotification>
* }}
*/
@@ -355,8 +355,8 @@ function requestFromServer(method, handlerName, opt_contentType) {
/**
* Shows the notification groups as notification cards.
- * @param {Object<string, StoredNotificationGroup>} notificationGroups Map from
- * group name to group information.
+ * @param {Object<StoredNotificationGroup>} notificationGroups Map from group
+ * name to group information.
* @param {function(ReceivedNotification)=} opt_onCardShown Optional parameter
* called when each card is shown.
* @return {Promise} A promise to show the notification groups as cards.
@@ -445,8 +445,8 @@ function combineGroup(combinedCards, storedGroup) {
/**
* Calculates the soonest poll time from a map of groups as an absolute time.
- * @param {Object<string, StoredNotificationGroup>} groups Map from group name
- * to group information.
+ * @param {Object<StoredNotificationGroup>} groups Map from group name to group
+ * information.
* @return {number} The next poll time based off of the groups.
*/
function calculateNextPollTimeMilliseconds(groups) {
@@ -467,8 +467,8 @@ function calculateNextPollTimeMilliseconds(groups) {
/**
* Schedules next cards poll.
- * @param {Object<string, StoredNotificationGroup>} groups Map from group name
- * to group information.
+ * @param {Object<StoredNotificationGroup>} groups Map from group name to group
+ * information.
*/
function scheduleNextCardsPoll(groups) {
var nextPollTimeMs = calculateNextPollTimeMilliseconds(groups);
@@ -494,8 +494,8 @@ function scheduleOptInCheckPoll() {
/**
* Combines notification groups into a set of Chrome notifications.
- * @param {Object<string, StoredNotificationGroup>} notificationGroups Map from
- * group name to group information.
+ * @param {Object<StoredNotificationGroup>} notificationGroups Map from group
+ * name to group information.
* @return {Object<ChromeNotificationId, CombinedCard>} Cards to show.
*/
function combineCardsFromGroups(notificationGroups) {
@@ -527,7 +527,7 @@ function processServerResponse(response) {
var receivedGroups = response.groups;
return fillFromChromeLocalStorage({
- /** @type {Object<string, StoredNotificationGroup>} */
+ /** @type {Object<StoredNotificationGroup>} */
notificationGroups: {},
/** @type {Object<ServerNotificationId, number>} */
recentDismissals: {}
@@ -707,7 +707,7 @@ function requestAndUpdateOptedIn() {
*/
function getGroupsToRequest() {
return fillFromChromeLocalStorage({
- /** @type {Object<string, StoredNotificationGroup>} */
+ /** @type {Object<StoredNotificationGroup>} */
notificationGroups: {}
}).then(function(items) {
console.log('getGroupsToRequest-storage-get ' + JSON.stringify(items));
@@ -963,7 +963,7 @@ function onNotificationClosed(chromeNotificationId, byUser) {
pendingDismissals: [],
/** @type {Object<ChromeNotificationId, NotificationDataEntry>} */
notificationsData: {},
- /** @type {Object<string, StoredNotificationGroup>} */
+ /** @type {Object<StoredNotificationGroup>} */
notificationGroups: {}
}).then(function(items) {
/** @type {NotificationDataEntry} */
@@ -1028,8 +1028,6 @@ function stopPollingCards() {
*/
function initialize() {
recordEvent(GoogleNowEvent.EXTENSION_START);
- // TODO(skare): Reenable, after signin.
- unregisterFromGcm();
onStateChange();
}
@@ -1054,7 +1052,8 @@ function setShouldPollCards(shouldPollCardsRequest) {
}
/**
- * Starts or stops the optin check.
+ * Starts or stops the optin check and GCM channel to receive optin
+ * notifications.
* @param {boolean} shouldPollOptInStatus true to start and false to stop
* polling the optin status.
*/
@@ -1073,6 +1072,12 @@ function setShouldPollOptInStatus(shouldPollOptInStatus) {
'Action Ignored setShouldPollOptInStatus=' + shouldPollOptInStatus);
}
});
+
+ if (shouldPollOptInStatus) {
+ registerForGcm();
+ } else {
+ unregisterFromGcm();
+ }
}
/**
@@ -1385,7 +1390,7 @@ instrumented.runtime.onStartup.addListener(function() {
// persistent notifications will work.
tasks.add(SHOW_ON_START_TASK_NAME, function() {
fillFromChromeLocalStorage({
- /** @type {Object<string, StoredNotificationGroup>} */
+ /** @type {Object<StoredNotificationGroup>} */
notificationGroups: {}
}).then(function(items) {
console.log('onStartup-get ' + JSON.stringify(items));
@@ -1475,7 +1480,7 @@ instrumented.gcm.onMessage.addListener(function(message) {
// preventing polling the server when the payload really didn't change.
fillFromChromeLocalStorage({
lastPollNowPayloads: {},
- /** @type {Object<string, StoredNotificationGroup>} */
+ /** @type {Object<StoredNotificationGroup>} */
notificationGroups: {}
}, PromiseRejection.ALLOW).then(function(items) {
if (items.lastPollNowPayloads[tag] != payload) {
diff --git a/chromium/chrome/browser/resources/google_now/cards.js b/chromium/chrome/browser/resources/google_now/cards.js
index 0ecd50144d7..d14479aca20 100644
--- a/chromium/chrome/browser/resources/google_now/cards.js
+++ b/chromium/chrome/browser/resources/google_now/cards.js
@@ -192,8 +192,8 @@ function buildCardSet() {
* of the card.
* @param {CombinedCard} combinedCard Combined cards with
* |chromeNotificationId|.
- * @param {Object<string, StoredNotificationGroup>} notificationGroups
- * Map from group name to group information.
+ * @param {Object<StoredNotificationGroup>} notificationGroups Map from group
+ * name to group information.
* @param {function(ReceivedNotification)=} onCardShown Optional parameter
* called when each card is shown.
* @return {(NotificationDataEntry|undefined)} Notification data entry for
@@ -283,8 +283,8 @@ function buildCardSet() {
* of the card.
* @param {NotificationDataEntry} notificationData Stored notification entry
* for this card.
- * @param {Object<string, StoredNotificationGroup>} notificationGroups
- * Map from group name to group information.
+ * @param {Object<StoredNotificationGroup>} notificationGroups Map from group
+ * name to group information.
* @return {{
* dismissals: Array<DismissalData>,
* notificationData: (NotificationDataEntry|undefined)
@@ -325,8 +325,8 @@ function buildCardSet() {
* Removes card information from |notificationGroups|.
* @param {ChromeNotificationId} chromeNotificationId chrome.notifications ID
* of the card.
- * @param {Object<string, StoredNotificationGroup>} notificationGroups
- * Map from group name to group information.
+ * @param {Object<StoredNotificationGroup>} notificationGroups Map from group
+ * name to group information.
*/
function clearCardFromGroups(chromeNotificationId, notificationGroups) {
console.log('cardManager.clearCardFromGroups ' + chromeNotificationId);
@@ -352,7 +352,7 @@ function buildCardSet() {
fillFromChromeLocalStorage({
/** @type {Object<ChromeNotificationId, NotificationDataEntry>} */
notificationsData: {},
- /** @type {Object<string, StoredNotificationGroup>} */
+ /** @type {Object<StoredNotificationGroup>} */
notificationGroups: {}
}).then(function(items) {
console.log('cardManager.onAlarm.get ' + JSON.stringify(items));
diff --git a/chromium/chrome/browser/resources/google_now/utility.js b/chromium/chrome/browser/resources/google_now/utility.js
index c5b3d57c1f3..ee34219868a 100644
--- a/chromium/chrome/browser/resources/google_now/utility.js
+++ b/chromium/chrome/browser/resources/google_now/utility.js
@@ -696,7 +696,7 @@ function buildTaskManager(areConflicting) {
/**
* Queue of scheduled tasks. The first element, if present, corresponds to the
* currently running task.
- * @type {Array<Object<string, function()>>}
+ * @type {Array<Object<function()>>}
*/
var queue = [];
diff --git a/chromium/chrome/browser/resources/hangout_services/OWNERS b/chromium/chrome/browser/resources/hangout_services/OWNERS
index b6caf7a0aa2..db6c6c297e3 100644
--- a/chromium/chrome/browser/resources/hangout_services/OWNERS
+++ b/chromium/chrome/browser/resources/hangout_services/OWNERS
@@ -1 +1,2 @@
bemasc@chromium.org
+grunell@chromium.org
diff --git a/chromium/chrome/browser/resources/hangout_services/background.html b/chromium/chrome/browser/resources/hangout_services/background.html
index 681d7012f68..08424b170cb 100644
--- a/chromium/chrome/browser/resources/hangout_services/background.html
+++ b/chromium/chrome/browser/resources/hangout_services/background.html
@@ -10,8 +10,6 @@ faster.
-->
<html>
<head>
-<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
-<script src="startup.js"></script>
<script src="thunk.js"></script>
</head>
<body>
diff --git a/chromium/chrome/browser/resources/hangout_services/manifest.json b/chromium/chrome/browser/resources/hangout_services/manifest.json
index 95d5464f5e8..253635f6626 100644
--- a/chromium/chrome/browser/resources/hangout_services/manifest.json
+++ b/chromium/chrome/browser/resources/hangout_services/manifest.json
@@ -3,7 +3,7 @@
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAQt2ZDdPfoSe/JI6ID5bgLHRCnCu9T36aYczmhw/tnv6QZB2I6WnOCMZXJZlRdqWc7w9jo4BWhYS50Vb4weMfh/I0On7VcRwJUgfAxW2cHB+EkmtI1v4v/OU24OqIa1Nmv9uRVeX0GjhQukdLNhAE6ACWooaf5kqKlCeK+1GOkQIDAQAB",
"name": "Google+ Hangouts",
- "version": "1.0",
+ "version": "1.1",
"manifest_version": 2,
"externally_connectable": {
"matches": [
@@ -21,11 +21,11 @@
},
"incognito": "split",
"permissions": [
- "alarms",
"desktopCapture",
"processes",
"system.cpu",
"webrtcAudioPrivate",
+ "webrtcDesktopCapturePrivate",
"webrtcLoggingPrivate"
]
}
diff --git a/chromium/chrome/browser/resources/hangout_services/startup.js b/chromium/chrome/browser/resources/hangout_services/startup.js
deleted file mode 100644
index c81d39ce9ac..00000000000
--- a/chromium/chrome/browser/resources/hangout_services/startup.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-chrome.runtime.onStartup.addListener(
- function() {
- chrome.alarms.create('hangout_services_fxpre', {'delayInMinutes': 2});
-});
-
-chrome.alarms.onAlarm.addListener(function(alarm) {
- if (!alarm || alarm.name != 'hangout_services_fxpre')
- return;
-
- var e = document.createElement('iframe');
- e.src = 'https://plus.google.com/hangouts/_/fxpre';
- document.body.appendChild(e);
-});
diff --git a/chromium/chrome/browser/resources/hangout_services/thunk.js b/chromium/chrome/browser/resources/hangout_services/thunk.js
index b07d7ea3e24..e70dbb2f438 100644
--- a/chromium/chrome/browser/resources/hangout_services/thunk.js
+++ b/chromium/chrome/browser/resources/hangout_services/thunk.js
@@ -41,26 +41,13 @@ chrome.runtime.onMessageExternal.addListener(
requestInfo['guestProcessId'] = sender.guestProcessId;
}
+ if (sender.guestRenderFrameRoutingId) {
+ requestInfo['guestRenderFrameId'] = sender.guestRenderFrameRoutingId;
+ }
+
var method = message['method'];
var origin = getHost(sender.url);
- if (method == 'chooseDesktopMedia') {
- // TODO(bemasc): Remove this method once the caller has transitioned
- // to using the port.
- var cancelId;
- function sendResponseWithCancelId(streamId) {
- var value = {'cancelId': cancelId, 'streamId': streamId};
- doSendResponse(value);
- }
- cancelId = chrome.desktopCapture.chooseDesktopMedia(
- ['screen', 'window'], sender.tab, sendResponseWithCancelId);
- return true;
- } else if (method == 'cancelChooseDesktopMedia') {
- // TODO(bemasc): Remove this method (see above).
- var cancelId = message['cancelId'];
- chrome.desktopCapture.cancelChooseDesktopMedia(cancelId);
- doSendResponse();
- return false;
- } else if (method == 'cpu.getInfo') {
+ if (method == 'cpu.getInfo') {
chrome.system.cpu.getInfo(doSendResponse);
return true;
} else if (method == 'logging.setMetadata') {
@@ -90,6 +77,11 @@ chrome.runtime.onMessageExternal.addListener(
chrome.webrtcLoggingPrivate.upload(
requestInfo, origin, doSendResponse);
return true;
+ } else if (method == 'logging.uploadStored') {
+ var logId = message['logId'];
+ chrome.webrtcLoggingPrivate.uploadStored(
+ requestInfo, origin, logId, doSendResponse);
+ return true;
} else if (method == 'logging.stopAndUpload') {
stopAllRtpDump(requestInfo, origin, function() {
chrome.webrtcLoggingPrivate.stop(requestInfo, origin, function() {
@@ -98,6 +90,11 @@ chrome.runtime.onMessageExternal.addListener(
});
});
return true;
+ } else if (method == 'logging.store') {
+ var logId = message['logId'];
+ chrome.webrtcLoggingPrivate.store(
+ requestInfo, origin, logId, doSendResponse);
+ return true;
} else if (method == 'logging.discard') {
chrome.webrtcLoggingPrivate.discard(
requestInfo, origin, doSendResponse);
@@ -183,12 +180,26 @@ function onChooseDesktopMediaPort(port) {
var method = message['method'];
if (method == 'chooseDesktopMedia') {
var sources = message['sources'];
- var cancelId = chrome.desktopCapture.chooseDesktopMedia(
- sources, port.sender.tab, sendResponse);
+ var cancelId = null;
+ if (port.sender.tab) {
+ cancelId = chrome.desktopCapture.chooseDesktopMedia(
+ sources, port.sender.tab, sendResponse);
+ } else {
+ var requestInfo = {};
+ requestInfo['guestProcessId'] = port.sender.guestProcessId || 0;
+ requestInfo['guestRenderFrameId'] =
+ port.sender.guestRenderFrameRoutingId || 0;
+ cancelId = chrome.webrtcDesktopCapturePrivate.chooseDesktopMedia(
+ sources, requestInfo, sendResponse);
+ }
port.onDisconnect.addListener(function() {
// This method has no effect if called after the user has selected a
// desktop media source, so it does not need to be conditional.
- chrome.desktopCapture.cancelChooseDesktopMedia(cancelId);
+ if (port.sender.tab) {
+ chrome.desktopCapture.cancelChooseDesktopMedia(cancelId);
+ } else {
+ chrome.webrtcDesktopCapturePrivate.cancelChooseDesktopMedia(cancelId);
+ }
});
}
});
diff --git a/chromium/chrome/browser/resources/help/check_circle.svg b/chromium/chrome/browser/resources/help/check_circle.svg
new file mode 100644
index 00000000000..3b8cd5d56fe
--- /dev/null
+++ b/chromium/chrome/browser/resources/help/check_circle.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 48 48" fill="#4285F4">
+ <path d="M0 0h48v48H0z" fill="none"/>
+ <path d="M24 4C12.95 4 4 12.95 4 24c0 11.04 8.95 20 20 20 11.04 0 20-8.96 20-20 0-11.05-8.96-20-20-20zm-4 30L10 24l2.83-2.83L20 28.34l15.17-15.17L38 16 20 34z"/>
+</svg>
diff --git a/chromium/chrome/browser/resources/help/compiled_resources.gyp b/chromium/chrome/browser/resources/help/compiled_resources.gyp
index 2a44392e253..53f39ed86cc 100644
--- a/chromium/chrome/browser/resources/help/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/help/compiled_resources.gyp
@@ -24,7 +24,7 @@
'../../../../chrome/browser/resources/help/help_page.js',
'../../../../chrome/browser/resources/options/compiled_resources.gyp:options_bundle',
],
- 'externs': ['<(CLOSURE_DIR)/externs/chrome_send_externs.js'],
+ 'externs': ['<(EXTERNS_DIR)/chrome_send.js'],
},
'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
}
diff --git a/chromium/chrome/browser/resources/help/help_content.css b/chromium/chrome/browser/resources/help/help_content.css
index b43f6e8dbac..813c542665e 100644
--- a/chromium/chrome/browser/resources/help/help_content.css
+++ b/chromium/chrome/browser/resources/help/help_content.css
@@ -72,7 +72,7 @@
}
#update-status-icon.up-to-date {
- background-image: url(chrome://theme/IDR_CHECKMARK);
+ background-image: url(check_circle.svg);
background-size: 18px;
}
@@ -140,11 +140,11 @@
width: 240px;
}
-#product-label-container {
+#regulatory-label-container {
padding-top: 32px;
}
-#product-label {
+#regulatory-label {
display: block;
width: 330px;
}
diff --git a/chromium/chrome/browser/resources/help/help_content.html b/chromium/chrome/browser/resources/help/help_content.html
index 4b976f50736..d49695d6417 100644
--- a/chromium/chrome/browser/resources/help/help_content.html
+++ b/chromium/chrome/browser/resources/help/help_content.html
@@ -111,8 +111,8 @@
</if>
</div>
<if expr="chromeos">
- <div id="product-label-container" hidden>
- <img id="product-label" src="chrome://chromeos-asset/fcc/label.png">
+ <div id="regulatory-label-container" hidden>
+ <img id="regulatory-label">
</div>
</if>
</div>
diff --git a/chromium/chrome/browser/resources/help/help_page.js b/chromium/chrome/browser/resources/help/help_page.js
index 7dbc848064d..d3d53dc50c5 100644
--- a/chromium/chrome/browser/resources/help/help_page.js
+++ b/chromium/chrome/browser/resources/help/help_page.js
@@ -156,13 +156,10 @@ cr.define('help', function() {
cr.ui.ArrowLocation.TOP_END);
};
- // Unhide the product label if/when the image loads.
- var productLabel = $('product-label');
- var show = function() { $('product-label-container').hidden = false; };
- if (productLabel.naturalWidth)
- show();
- else
- productLabel.onload = show;
+ // Unhide the regulatory label if/when the image loads.
+ $('regulatory-label').onload = function() {
+ $('regulatory-label-container').hidden = false;
+ };
}
var logo = $('product-logo');
@@ -579,12 +576,21 @@ cr.define('help', function() {
},
/**
- * Sets the product label's alt text.
+ * Sets the regulatory label's source.
+ * @param {string} path The path to use for the image.
+ * @private
+ */
+ setRegulatoryLabelPath_: function(path) {
+ $('regulatory-label').src = path;
+ },
+
+ /**
+ * Sets the regulatory label's alt text.
* @param {string} text The text to use for the image.
* @private
*/
- setProductLabelText_: function(text) {
- $('product-label').setAttribute('alt', text);
+ setRegulatoryLabelText_: function(text) {
+ $('regulatory-label').alt = text;
},
};
@@ -655,8 +661,14 @@ cr.define('help', function() {
HelpPage.getInstance().setBuildDate_(buildDate);
};
- HelpPage.setProductLabelText = function(text) {
- HelpPage.getInstance().setProductLabelText_(text);
+ HelpPage.setRegulatoryLabelPath = function(path) {
+ assert(cr.isChromeOS);
+ HelpPage.getInstance().setRegulatoryLabelPath_(path);
+ };
+
+ HelpPage.setRegulatoryLabelText = function(text) {
+ assert(cr.isChromeOS);
+ HelpPage.getInstance().setRegulatoryLabelText_(text);
};
// Export
diff --git a/chromium/chrome/browser/resources/help_app/manifest.json b/chromium/chrome/browser/resources/help_app/manifest.json
index 34de5e7ad74..65563c776af 100644
--- a/chromium/chrome/browser/resources/help_app/manifest.json
+++ b/chromium/chrome/browser/resources/help_app/manifest.json
@@ -5,7 +5,7 @@
"description": "Chrome OS Help",
"default_locale": "en",
"manifest_version": 2,
- "content_security_policy": "default-src 'self'; img-src 'self' data:;",
+ "content_security_policy": "default-src 'self' blob: filesystem:; img-src 'self' blob: filesystem: data:;",
"background": {
"scripts": [
"js/background-bundle.js"
diff --git a/chromium/chrome/browser/resources/history/compiled_resources.gyp b/chromium/chrome/browser/resources/history/compiled_resources.gyp
index cbeb2d5cb5c..9934bd0e18d 100644
--- a/chromium/chrome/browser/resources/history/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/history/compiled_resources.gyp
@@ -27,7 +27,7 @@
'../../../../ui/webui/resources/js/util.js',
'history_focus_manager.js',
],
- 'externs': ['<(CLOSURE_DIR)/externs/chrome_send_externs.js'],
+ 'externs': ['<(EXTERNS_DIR)/chrome_send.js'],
},
'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
}
diff --git a/chromium/chrome/browser/resources/history/other_devices.js b/chromium/chrome/browser/resources/history/other_devices.js
index 3ac878ef774..270f75623a7 100644
--- a/chromium/chrome/browser/resources/history/other_devices.js
+++ b/chromium/chrome/browser/resources/history/other_devices.js
@@ -14,7 +14,6 @@
/** @const */ var NB_ENTRIES_OTHER_ROWS_COLUMN = 0;
// Histogram buckets for UMA tracking of menu usage.
-// Using the same values as the Other Devices button in the NTP.
/** @const */ var HISTOGRAM_EVENT = {
INITIALIZED: 0,
SHOW_MENU: 1,
@@ -43,10 +42,6 @@ function recordUmaEvent_(eventId) {
/**
* Controller for the context menu for device names in the list of sessions.
- * This class is designed to be used as a singleton. Also copied from existing
- * other devices button in NTP.
- * TODO(mad): Should we extract/reuse/share with ntp4/other_sessions.js?
- *
* @constructor
*/
function DeviceContextMenuController() {
@@ -540,15 +535,10 @@ function setForeignSessions(sessionList, isTabSyncEnabled) {
}
/**
- * Called when this element is initialized, and from the new tab page when
- * the user's signed in state changes,
- * @param {string} header The first line of text (unused here).
- * @param {string} subHeader The second line of text (unused here).
- * @param {string} iconURL The url for the login status icon. If this is null
- then the login status icon is hidden (unused here).
+ * Called when initialized or the user's signed in state changes,
* @param {boolean} isUserSignedIn Is the user currently signed in?
*/
-function updateLogin(header, subHeader, iconURL, isUserSignedIn) {
+function updateSignInState(isUserSignedIn) {
if (devicesView)
devicesView.updateSignInState(isUserSignedIn);
}
@@ -562,15 +552,6 @@ function load() {
if (!loadTimeData.getBoolean('isInstantExtendedApiEnabled'))
return;
- // We must use this namespace to reuse the handler code for foreign session
- // and login.
- cr.define('ntp', function() {
- return {
- setForeignSessions: setForeignSessions,
- updateLogin: updateLogin
- };
- });
-
devicesView = new DevicesView();
// Create the context menu that appears when the user right clicks
@@ -582,6 +563,8 @@ function load() {
};
$('search-field').addEventListener('search', doSearch);
$('search-button').addEventListener('click', doSearch);
+
+ chrome.send('otherDevicesInitialized');
}
// Add handlers to HTML elements.
diff --git a/chromium/chrome/browser/resources/hotword/OWNERS b/chromium/chrome/browser/resources/hotword/OWNERS
index 54795f04db8..5abccee2268 100644
--- a/chromium/chrome/browser/resources/hotword/OWNERS
+++ b/chromium/chrome/browser/resources/hotword/OWNERS
@@ -1,3 +1,3 @@
amistry@chromium.org
kcarattini@chromium.org
-rlp@chromium.org
+mgiuca@chromium.org
diff --git a/chromium/chrome/browser/resources/hotword/manifest.json b/chromium/chrome/browser/resources/hotword/manifest.json
index f3c17681cce..e22ff936ddb 100644
--- a/chromium/chrome/browser/resources/hotword/manifest.json
+++ b/chromium/chrome/browser/resources/hotword/manifest.json
@@ -83,6 +83,6 @@
}
],
- "content_security_policy": "object-src 'none'; script-src chrome://resources 'self'",
+ "content_security_policy": "object-src 'none'; script-src chrome://resources 'self' blob: filesystem:",
"minimum_chrome_version": "38"
}
diff --git a/chromium/chrome/browser/resources/hotword/nacl_manager.js b/chromium/chrome/browser/resources/hotword/nacl_manager.js
index fef432d409b..96da06fbd77 100644
--- a/chromium/chrome/browser/resources/hotword/nacl_manager.js
+++ b/chromium/chrome/browser/resources/hotword/nacl_manager.js
@@ -292,6 +292,7 @@ NaClManager.prototype.initialize = function(naclArch, stream) {
assert(this.recognizerState_ == ManagerState_.UNINITIALIZED,
'Recognizer not in uninitialized state. State: ' +
this.recognizerState_);
+ assert(this.plugin_ == null);
var langs = this.getPossibleLanguages_();
var i, j;
// For country-lang variations. For example, when combined with path it will
@@ -308,12 +309,12 @@ NaClManager.prototype.initialize = function(naclArch, stream) {
}
var plugin = this.createPlugin_(pluginSrc);
- this.plugin_ = plugin;
- if (!this.plugin_ || !this.plugin_.postMessage) {
- document.body.removeChild(this.plugin_);
+ if (!plugin || !plugin.postMessage) {
+ document.body.removeChild(plugin);
this.recognizerState_ = ManagerState_.ERROR;
return false;
}
+ this.plugin_ = plugin;
this.modelUrl_ = chrome.extension.getURL(dataSrc);
this.stream_ = stream;
this.recognizerState_ = ManagerState_.LOADING;
diff --git a/chromium/chrome/browser/resources/hotword/state_manager.js b/chromium/chrome/browser/resources/hotword/state_manager.js
index 782939a6ea8..a7939b16321 100644
--- a/chromium/chrome/browser/resources/hotword/state_manager.js
+++ b/chromium/chrome/browser/resources/hotword/state_manager.js
@@ -628,7 +628,8 @@ cr.define('hotword', function() {
* @private
*/
handleStartup_: function() {
- updateStatus();
+ // Nothing specific needs to be done here. This function exists solely to
+ // be registered on the startup event.
}
};
diff --git a/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-1x.png b/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-1x.png
index 2bab2be21f5..1071613cb1b 100644
--- a/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-1x.png
+++ b/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-1x.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-2x.png b/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-2x.png
index a73190c2abf..e93d6e18eb9 100644
--- a/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-2x.png
+++ b/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-check-gray-2x.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-1x.png b/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-1x.png
index 462bd332f1f..23d17c9c322 100644
--- a/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-1x.png
+++ b/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-1x.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-2x.png b/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-2x.png
index ed0dd03f270..63cf9729d34 100644
--- a/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-2x.png
+++ b/chromium/chrome/browser/resources/hotword_audio_verification/images/ic-x-white-2x.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-128.png b/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-128.png
index 6f6343b55be..d3a010c5376 100644
--- a/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-128.png
+++ b/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-128.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-16.png b/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-16.png
index b1f28873a23..3a7caeb0c2f 100644
--- a/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-16.png
+++ b/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-16.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-48.png b/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-48.png
index de75078f507..1f48e48098e 100644
--- a/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-48.png
+++ b/chromium/chrome/browser/resources/hotword_audio_verification/images/icon-48.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/hotword_audio_verification/manifest.json b/chromium/chrome/browser/resources/hotword_audio_verification/manifest.json
index 134180d13fd..a6e4091e39c 100644
--- a/chromium/chrome/browser/resources/hotword_audio_verification/manifest.json
+++ b/chromium/chrome/browser/resources/hotword_audio_verification/manifest.json
@@ -14,7 +14,7 @@
"scripts": ["event_page.js"],
"persistent": false
},
- "content_security_policy": "default-src 'self'; script-src 'self' chrome://resources chrome://settings; style-src 'self' chrome://resources"
+ "content_security_policy": "default-src 'self' blob: filesystem:; script-src 'self' blob: filesystem: chrome://resources chrome://settings; style-src 'self' blob: filesystem: chrome://resources"
},
"permissions": [
"chrome://resources/",
diff --git a/chromium/chrome/browser/resources/identity_scope_approval_dialog/manifest.json b/chromium/chrome/browser/resources/identity_scope_approval_dialog/manifest.json
index d6992041915..c3fd8390c96 100644
--- a/chromium/chrome/browser/resources/identity_scope_approval_dialog/manifest.json
+++ b/chromium/chrome/browser/resources/identity_scope_approval_dialog/manifest.json
@@ -18,7 +18,7 @@
"background.js"
]
},
- "content_security_policy": "default-src 'none'; script-src 'self'; style-src 'self'; img-src chrome://theme; object-src 'self'"
+ "content_security_policy": "default-src 'none'; script-src 'self' blob: filesystem:; style-src 'self' blob: filesystem:; img-src chrome://theme; object-src 'self' blob: filesystem:"
},
"display_in_launcher": false,
"display_in_new_tab_page": false
diff --git a/chromium/chrome/browser/resources/local_discovery/device.png b/chromium/chrome/browser/resources/local_discovery/device.png
index c03fb1f19e0..b10781f8920 100644
--- a/chromium/chrome/browser/resources/local_discovery/device.png
+++ b/chromium/chrome/browser/resources/local_discovery/device.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/local_ntp/local_ntp.css b/chromium/chrome/browser/resources/local_ntp/local_ntp.css
index 2ee882513a7..630009ffabe 100644
--- a/chromium/chrome/browser/resources/local_ntp/local_ntp.css
+++ b/chromium/chrome/browser/resources/local_ntp/local_ntp.css
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium Authors. All rights reserved.
+/* Copyright 2015 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
@@ -56,7 +56,6 @@ body.alternate-logo #logo {
}
#fakebox {
- /* Use GPU compositing if available. */
-webkit-transform: translate3d(0, 0, 0);
-webkit-transition: -webkit-transform 100ms linear, border-color 100ms linear;
background-color: #fff;
@@ -164,12 +163,8 @@ body.fakebox-focused #cursor {
#most-visited {
-webkit-user-select: none;
- text-align: -webkit-center;
-}
-
-/* For Google page, add space from Fakebox. */
-.thumb-ntp #most-visited {
margin-top: 64px;
+ text-align: -webkit-center;
}
.icon-ntp #most-visited {
@@ -184,23 +179,19 @@ body.fakebox-focused #cursor {
#mv-tiles {
margin: 0;
position: relative;
- text-align: left;
-}
-
-html[dir=rtl] #mv-tiles {
- text-align: right;
+ text-align: -webkit-auto;
}
.thumb-ntp #mv-tiles {
- height: calc(2 * 146px);
- line-height: 146px;
+ /* we need a 16px margin and the tiles have 130px height. */
+ height: calc(2*130px + 16px);
+ line-height: calc(130px + 16px);
}
.icon-ntp #mv-tiles {
background: rgba(255,255,255,0.2);
border-radius: 4px;
height: calc(2 * 112px);
- line-height: 112px;
padding: calc(36px - 18px) calc(36px - 18px - 12px);
}
@@ -212,396 +203,34 @@ html[dir=rtl] #mv-tiles {
background: none;
}
-.mv-tile {
- display: inline-block;
- position: relative;
- vertical-align: top;
-}
-
-.mv-page-ready {
- cursor: pointer;
- outline: none;
-}
-
-.thumb-ntp .mv-tile {
- background: rgb(242,242,242);
- border-radius: 2px;
- height: 130px;
- margin-left: 8px;
- margin-right: 8px;
- width: 156px;
-}
-
-.icon-ntp .mv-tile {
- border-radius: 2px;
- height: calc(102px + 18px - 12px);
- margin: 0 12px 4px 12px;
- width: calc(48px + 2 * 18px);
-}
-
-.mv-page-ready {
- -webkit-transition-duration: 200ms;
- -webkit-transition-property: -webkit-transform, margin, opacity, width;
-}
-
-.thumb-ntp.dark .mv-tile {
- background: rgb(51,51,51);
-}
-
-.mv-tile-inner {
- visibility: hidden;
-}
-
-.mv-page-ready .mv-tile-inner {
- visibility: visible;
-}
-
-/* Class applied to tiles to trigger the blacklist animation. */
-.mv-tile.mv-blacklist {
- opacity: 0;
-}
-
-.mv-tile.mv-blacklist {
- -webkit-transform: scale(0);
- margin-left: 0;
- margin-right: 0;
- width: 0;
-}
-
-.thumb-ntp .mv-tile.mv-blacklist {
- -webkit-transform-origin: 0 65px;
-}
-
-.icon-ntp .mv-tile.mv-blacklist {
- -webkit-transform-origin: 0 41px;
-}
-
-/* .mv-mask is used to alter tile appearance, including borders, shadows, */
-/* and backgrounds. */
-.mv-mask {
- background: transparent;
- border-style: solid;
- border-width: 1px;
- cursor: pointer;
- pointer-events: none;
- position: absolute;
-}
-
-.thumb-ntp .mv-mask {
- border-color: transparent;
- border-radius: 2px;
- height: calc(100% - 2px);
- width: calc(100% - 2px);
-}
-
-.icon-ntp .mv-mask {
- border: none !important;
- border-radius: 0;
- height: 100%;
- width: 100%;
- z-index: 5;
-}
-
-/* Styling border. */
-.default-theme.thumb-ntp.dark .mv-page-ready:hover .mv-mask,
-.default-theme.thumb-ntp.dark .mv-page-ready .mv-focused ~ .mv-mask {
- border-color: #888;
-}
-
-/* Styling shadow. */
-.default-theme.thumb-ntp .mv-page-ready .mv-mask {
- -webkit-transition: box-shadow 200ms, border 200ms;
-}
-
-.default-theme.thumb-ntp .mv-page-ready:hover .mv-mask,
-.default-theme.thumb-ntp .mv-page-ready .mv-focused ~ .mv-mask {
- box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 4px 8px 0 rgba(0,0,0,0.2);
-}
-
-.default-theme.thumb-ntp.dark .mv-page-ready:hover .mv-mask {
- box-shadow: none;
-}
-
-/* Styling background. */
-.thumb-ntp .mv-page:not(:hover) .mv-focused ~ .mv-mask {
- /*-webkit-filter: brightness(75%);*/
- -webkit-transition: box-shadow 200ms, border 200ms,
- background-color 100ms ease-in-out;
- background: rgba(0, 0, 0, 0.25);
-}
-
-.icon-ntp .mv-page .mv-focused ~ .mv-mask {
- -webkit-transition: none;
- background: rgba(0,0,0,0.2);
- border-radius: 2px;
- box-shadow: none;
-}
-
-.icon-ntp.dark .mv-page .mv-focused ~ .mv-mask {
- background: rgba(255,255,255,0.2);
-}
-
-.mv-title {
- border: none;
- position: absolute;
-}
-
-.thumb-ntp .mv-title {
- bottom: auto;
- height: 15px;
- left: 32px;
- top: 9px;
- width: calc(156px - 32px - 4px);
-}
-
-html[dir=rtl] .thumb-ntp .mv-title[style*='direction: rtl'] {
- -webkit-mask-image:
- linear-gradient(to left, black, black, 100px, transparent);
- right: 31px;
- text-align: right;
-}
-
-html[dir=rtl] .thumb-ntp .mv-title {
- left: auto;
- right: 32px;
-}
-
-.icon-ntp .mv-title {
- bottom: auto;
- height: 28px;
- left: auto;
- right: auto;
- top: 76px;
- width: 100%;
- z-index: 10;
-}
-
-.mv-thumb {
- border: none;
- cursor: pointer;
- position: absolute;
-}
-
-.thumb-ntp .mv-thumb,
-.thumb-ntp .mv-thumb-fallback {
- border-radius: 0;
- height: 94px;
- left: 4px;
- top: 32px;
- width: 148px;
-}
-
-.icon-ntp .mv-thumb,
-.icon-ntp .mv-thumb-fallback {
- height: 48px;
- left: 50%;
- margin-left: -24px;
- top: 18px;
- width: 48px;
- z-index: 10;
-}
-
-html[dir=rtl] .thumb-ntp .mv-thumb,
-html[dir=rtl] .thumb-ntp .mv-thumb-fallback {
- left: auto;
- right: 4px;
-}
-
-.thumb-ntp .mv-thumb-fallback {
- background-color: #fff;
- position: absolute;
-}
-
-.thumb-ntp.dark .mv-thumb-fallback {
- background-color: #555;
-}
-
-.thumb-ntp .mv-thumb-fallback .dot {
- background-color: #f2f2f2;
- border-radius: 8px;
- display: block;
- height: 16px;
- left: 50%;
- margin-left: -8px;
- margin-top: -8px;
- position: absolute;
- top: 50%;
- width: 16px;
-}
-
-.thumb-ntp.dark .mv-thumb-fallback .dot {
- background-color: #333;
-}
-
-.mv-x-hide .mv-x {
- display: none;
-}
-
-/* An X button to blacklist a tile or hide the notification. */
-.mv-x {
- background-color: transparent;
- border: none;
- cursor: pointer;
-}
-
-.mv-page .mv-x {
- -webkit-transition: opacity 150ms;
- opacity: 0;
- position: absolute;
-}
-
#mv-notice-x {
- -webkit-transform: translate(0,-8px);
- display: inline-block;
- position: relative;
-}
-
-.thumb-ntp .mv-x,
-.icon-ntp #mv-notice-x.mv-x {
- border-radius: 2px;
- height: 32px;
- width: 32px;
-}
-
-.icon-ntp .mv-page .mv-x {
- border-radius: 0;
- height: 16px;
- width: 16px;
- z-index: 15;
-}
-
-.icon-ntp .mv-page .mv-x .mv-x-inner {
- display: none;
-}
-
-.mv-x .mv-x-inner {
-webkit-mask-image: -webkit-image-set(
- url(images/close_3_mask.png) 1x,
- url(images/close_3_mask.png@2x) 2x);
+ url(chrome-search://local-ntp/images/close_3_mask.png) 1x,
+ url(chrome-search://local-ntp/images/close_3_mask.png@2x) 2x);
+ -webkit-mask-position: 3px 3px;
-webkit-mask-repeat: no-repeat;
-webkit-mask-size: 10px 10px;
background-color: rgba(90,90,90,0.7);
- height: 10px;
- left: 50%;
- margin-left: -5px;
- margin-top: -5px;
- position: absolute;
- top: 50%;
- width: 10px;
-}
-
-.dark .mv-x .mv-x-inner {
- background-color: rgba(255,255,255,0.7);
-}
-
-.mv-x:hover .mv-x-inner,
-#mv-notice-x:focus .mv-x-inner {
- background-color: rgb(90,90,90);
-}
-
-.dark .mv-x:hover .mv-x-inner,
-.dark #mv-notice-x:focus .mv-x-inner {
- background-color: rgb(255,255,255);
-}
-
-.mv-x:active .mv-x-inner,
-#mv-notice-x:active .mv-x-inner {
- background-color: rgb(66,133,244);
-}
-
-.dark .mv-x:active .mv-x-inner,
-.dark #mv-notice-x:active .mv-x-inner {
- background-color: rgba(255,255,255,0.5);
-}
-
-.thumb-ntp .mv-page .mv-x {
- /* background color needs to match .thumb-ntp .mv-tile */
- background: linear-gradient(to right, transparent, rgb(242,242,242) 10%);
- right: 0;
- top: 0;
-}
-
-html[dir=rtl] .thumb-ntp .mv-page .mv-x {
- /* background color needs to match .thumb-ntp .mv-tile */
- background: linear-gradient(to left, transparent, rgb(242,242,242) 10%);
- left: 0;
- right: auto;
-}
-
-.thumb-ntp.dark .mv-page .mv-x {
- /* background color needs to match .thumb-ntp.dark .mv-tile */
- background: linear-gradient(to right, transparent, rgba(51,51,51,0.9) 30%);
-}
-
-html[dir=rtl] .thumb-ntp.dark .mv-page .mv-x {
- /* background color needs to match .thumb-ntp.dark .mv-tile */
- background: linear-gradient(to left, transparent, rgba(51,51,51,0.9) 30%);
-}
-
-.icon-ntp .mv-page .mv-x,
-.icon-ntp.dark .mv-page .mv-x,
-html[dir=rtl] .icon-ntp .mv-page .mv-x,
-html[dir=rtl] .icon-ntp.dark .mv-page .mv-x {
- background-color: none;
- background-image: -webkit-image-set(
- url(images/close_4_button.png) 1x,
- url(images/close_4_button.png@2x) 2x);
- top: 10px;
-}
-
-.icon-ntp .mv-page .mv-x {
- right: 10px;
-}
-
-html[dir=rtl] .icon-ntp .mv-page .mv-x {
- left: 10px;
- right: auto;
-}
-
-.mv-page-ready:hover .mv-x {
- -webkit-transition-delay: 500ms;
- opacity: 1;
-}
-
-.icon-ntp .mv-page-ready:hover .mv-x {
- -webkit-transition-delay: 800ms;
-}
-
-.mv-page-ready .mv-x:hover {
- -webkit-transition: none;
-}
-
-.mv-favicon {
- background-size: 16px;
+ cursor: pointer;
+ display: inline-block;
height: 16px;
- line-height: 16px;
- pointer-events: none;
- position: absolute;
+ margin-left: 20px;
+ outline: none;
+ vertical-align: middle;
width: 16px;
}
-.thumb-ntp .mv-favicon {
- left: 8px;
- top: 8px;
-}
-
-html[dir=rtl] .thumb-ntp .mv-favicon {
- left: auto;
- right: 8px;
- top: 8px;
+html[dir=rtl] #mv-notice-x {
+ margin-left: 0;
+ margin-right: 20px;
}
-.thumb-ntp .mv-favicon-fallback {
- background-image: -webkit-image-set(
- url(images/ntp_default_favicon.png) 1x,
- url(images/ntp_default_favicon.png@2x) 2x);
- background-repeat: no-repeat;
- background-size: 16px 16px;
+#mv-notice-x:hover {
+ background-color: rgba(90,90,90,1.0);
}
-.mv-favicon img {
- height: 100%;
- width: 100%;
+#mv-notice-x:active {
+ background-color: rgb(66,133,244);
}
/* The notification shown when a tile is blacklisted. */
@@ -647,12 +276,6 @@ html[dir=rtl] .thumb-ntp .mv-favicon {
color: #fff;
}
-#mv-notice-links .mv-x {
- -webkit-margin-start: 8px;
- outline: none;
- vertical-align: top;
-}
-
#mv-notice.mv-notice-delayed-hide {
-webkit-transition-delay: 10s;
-webkit-transition-property: opacity;
@@ -700,3 +323,9 @@ html[dir=rtl] #recent-tabs {
left: 8px;
right: auto;
}
+
+#mv-single {
+ border: none;
+ height: 100%;
+ width: 100%;
+}
diff --git a/chromium/chrome/browser/resources/local_ntp/local_ntp.html b/chromium/chrome/browser/resources/local_ntp/local_ntp.html
index 3655bd391d8..2b3e1e4f7a3 100644
--- a/chromium/chrome/browser/resources/local_ntp/local_ntp.html
+++ b/chromium/chrome/browser/resources/local_ntp/local_ntp.html
@@ -1,6 +1,6 @@
<!doctype html>
<html>
-<!-- Copyright 2013 The Chromium Authors. All rights reserved.
+<!-- Copyright 2015 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<head>
@@ -11,7 +11,7 @@
<meta name="google" value="notranslate">
</head>
<body>
- <div id="ntp-contents" class="des-mat">
+ <div id="ntp-contents">
<div id="most-visited">
<div id="mv-tiles"></div>
<!-- Notification shown when a tile is blacklisted. -->
@@ -21,7 +21,7 @@
<span id="mv-notice-links">
<span id="mv-undo" tabIndex="1"></span>
<span id="mv-restore" tabIndex="1"></span>
- <div id="mv-notice-x" tabIndex="1" class="mv-x"></div>
+ <div id="mv-notice-x" tabIndex="1"></div>
</span>
</div>
</div>
diff --git a/chromium/chrome/browser/resources/local_ntp/local_ntp.js b/chromium/chrome/browser/resources/local_ntp/local_ntp.js
index 4bf0dd2e707..2f55f034c9a 100644
--- a/chromium/chrome/browser/resources/local_ntp/local_ntp.js
+++ b/chromium/chrome/browser/resources/local_ntp/local_ntp.js
@@ -1,4 +1,4 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
+// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -13,10 +13,95 @@
* @return {Object} A limited interface for testing the local NTP.
*/
function LocalNTP() {
-<include src="../../../../ui/webui/resources/js/assert.js">
-<include src="local_ntp_design.js">
-<include src="local_ntp_util.js">
-<include src="window_disposition_util.js">
+'use strict';
+
+
+/**
+ * Alias for document.getElementById.
+ * @param {string} id The ID of the element to find.
+ * @return {HTMLElement} The found element or null if not found.
+ */
+function $(id) {
+ return document.getElementById(id);
+}
+
+
+/**
+ * Specifications for an NTP design (not comprehensive).
+ *
+ * fakeboxWingSize: Extra distance for fakebox to extend beyond beyond the list
+ * of tiles.
+ * fontFamily: Font family to use for title and thumbnail iframes.
+ * fontSize: Font size to use for the iframes, in px.
+ * mainClass: Class applied to #ntp-contents to control CSS.
+ * numTitleLines: Number of lines to display in titles.
+ * showFavicon: Whether to show favicon.
+ * thumbnailTextColor: The 4-component color that thumbnail iframe may use to
+ * display text message in place of missing thumbnail.
+ * thumbnailFallback: (Optional) A value in THUMBNAIL_FALLBACK to specify the
+ * thumbnail fallback strategy. If unassigned, then the thumbnail.html
+ * iframe would handle the fallback.
+ * tileWidth: The width of each suggestion tile, in px.
+ * tileMargin: Spacing between successive tiles, in px.
+ * titleColor: The 4-component color of title text.
+ * titleColorAgainstDark: The 4-component color of title text against a dark
+ * theme.
+ * titleTextAlign: (Optional) The alignment of title text. If unspecified, the
+ * default value is 'center'.
+ * titleTextFade: (Optional) The number of pixels beyond which title
+ * text begins to fade. This overrides the default ellipsis style.
+ *
+ * @type {{
+ * fakeboxWingSize: number,
+ * fontFamily: string,
+ * fontSize: number,
+ * mainClass: string,
+ * numTitleLines: number,
+ * showFavicon: boolean,
+ * thumbnailTextColor: string,
+ * thumbnailFallback: string|null|undefined,
+ * tileWidth: number,
+ * tileMargin: number,
+ * titleColor: string,
+ * titleColorAgainstDark: string,
+ * titleTextAlign: string|null|undefined,
+ * titleTextFade: number|null|undefined
+ * }}
+ */
+var NTP_DESIGN = {
+ fakeboxWingSize: 0,
+ fontFamily: 'arial, sans-serif',
+ fontSize: 12,
+ mainClass: 'thumb-ntp',
+ numTitleLines: 1,
+ showFavicon: true,
+ thumbnailTextColor: [50, 50, 50, 255],
+ thumbnailFallback: 'dot', // Draw single dot.
+ tileWidth: 154,
+ tileMargin: 16,
+ titleColor: [50, 50, 50, 255],
+ titleColorAgainstDark: [210, 210, 210, 255],
+ titleTextAlign: 'inherit',
+ titleTextFade: 122 - 36 // 112px wide title with 32 pixel fade at end.
+};
+
+
+/**
+ * Modifies NTP_DESIGN parameters for icon NTP.
+ */
+function modifyNtpDesignForIcons() {
+ NTP_DESIGN.fakeboxWingSize = 132;
+ NTP_DESIGN.mainClass = 'icon-ntp';
+ NTP_DESIGN.numTitleLines = 2;
+ NTP_DESIGN.showFavicon = false;
+ NTP_DESIGN.thumbnailFallback = null;
+ NTP_DESIGN.tileWidth = 48 + 2 * 18;
+ NTP_DESIGN.tileMargin = 60 - 18 * 2;
+ NTP_DESIGN.titleColor = [120, 120, 120, 255];
+ NTP_DESIGN.titleColorAgainstDark = [210, 210, 210, 255];
+ NTP_DESIGN.titleTextAlign = 'center';
+ delete NTP_DESIGN.titleTextFade;
+}
/**
@@ -26,34 +111,18 @@ function LocalNTP() {
*/
var CLASSES = {
ALTERNATE_LOGO: 'alternate-logo', // Shows white logo if required by theme
- BLACKLIST: 'mv-blacklist', // triggers tile blacklist animation
- BLACKLIST_BUTTON: 'mv-x',
- BLACKLIST_BUTTON_INNER: 'mv-x-inner',
DARK: 'dark',
DEFAULT_THEME: 'default-theme',
DELAYED_HIDE_NOTIFICATION: 'mv-notice-delayed-hide',
- DOT: 'dot',
FAKEBOX_DISABLE: 'fakebox-disable', // Makes fakebox non-interactive
FAKEBOX_FOCUS: 'fakebox-focused', // Applies focus styles to the fakebox
// Applies drag focus style to the fakebox
FAKEBOX_DRAG_FOCUS: 'fakebox-drag-focused',
- FAVICON: 'mv-favicon',
- FAVICON_FALLBACK: 'mv-favicon-fallback',
- FOCUSED: 'mv-focused',
- HIDE_BLACKLIST_BUTTON: 'mv-x-hide', // hides blacklist button during animation
HIDE_FAKEBOX_AND_LOGO: 'hide-fakebox-logo',
HIDE_NOTIFICATION: 'mv-notice-hide',
// Vertically centers the most visited section for a non-Google provided page.
NON_GOOGLE_PAGE: 'non-google-page',
- PAGE: 'mv-page', // page tiles
- PAGE_READY: 'mv-page-ready', // page tile when ready
- RTL: 'rtl', // Right-to-left language text.
- THUMBNAIL: 'mv-thumb',
- THUMBNAIL_FALLBACK: 'mv-thumb-fallback',
- THUMBNAIL_MASK: 'mv-mask',
- TILE: 'mv-tile',
- TILE_INNER: 'mv-tile-inner',
- TITLE: 'mv-title'
+ RTL: 'rtl' // Right-to-left language text.
};
@@ -103,21 +172,6 @@ var NTP_DISPOSE_STATE = {
/**
- * The JavaScript button event value for a middle click.
- * @type {number}
- * @const
- */
-var MIDDLE_MOUSE_BUTTON = 1;
-
-
-/**
- * The container for the tile elements.
- * @type {Element}
- */
-var tilesContainer;
-
-
-/**
* The notification displayed when a page is blacklisted.
* @type {Element}
*/
@@ -147,35 +201,14 @@ var ntpContents;
/**
- * The array of rendered tiles, ordered by appearance.
- * @type {!Array<Tile>}
- */
-var tiles = [];
-
-
-/**
- * The last blacklisted tile if any, which by definition should not be filler.
- * @type {?Tile}
+ * The last blacklisted tile rid if any, which by definition should not be
+ * filler.
+ * @type {?number}
*/
var lastBlacklistedTile = null;
/**
- * The iframe element which is currently keyboard focused, or null.
- * @type {?Element}
- */
-var focusedIframe = null;
-
-
-/**
- * True if a page has been blacklisted and we're waiting on the
- * onmostvisitedchange callback. See renderAllTiles() for how this is used.
- * @type {boolean}
- */
-var isBlacklisting = false;
-
-
-/**
* Current number of tiles columns shown based on the window width, including
* those that just contain filler.
* @type {number}
@@ -184,14 +217,6 @@ var numColumnsShown = 0;
/**
- * A flag to indicate Most Visited changed caused by user action. If true, then
- * in renderAllTiles() tiles remain visible so no flickering occurs.
- * @type {boolean}
- */
-var userInitiatedMostVisitedChange = false;
-
-
-/**
* The browser embeddedSearch.newTabPage object.
* @type {Object}
*/
@@ -245,67 +270,6 @@ var MIN_TOTAL_HORIZONTAL_PADDING = 200;
/**
- * The filename for a most visited iframe src which shows a page title.
- * @type {string}
- * @const
- */
-var MOST_VISITED_TITLE_IFRAME = 'title.html';
-
-
-/**
- * The filename for a most visited iframe src which shows a thumbnail image.
- * @type {string}
- * @const
- */
-var MOST_VISITED_THUMBNAIL_IFRAME = 'thumbnail.html';
-
-
-/**
- * The color of the title in RRGGBBAA format.
- * @type {?string}
- */
-var titleColor = null;
-
-
-/**
- * Hide most visited tiles for at most this many milliseconds while painting.
- * @type {number}
- * @const
- */
-var MOST_VISITED_PAINT_TIMEOUT_MSEC = 500;
-
-
-/**
- * A Tile is either a rendering of a Most Visited page or "filler" used to
- * pad out the section when not enough pages exist.
- *
- * @param {Element} elem The element for rendering the tile.
- * @param {Element=} opt_innerElem The element for contents of tile.
- * @param {Element=} opt_titleElem The element for rendering the title.
- * @param {Element=} opt_thumbnailElem The element for rendering the thumbnail.
- * @param {number=} opt_rid The RID for the corresponding Most Visited page.
- * Should only be left unspecified when creating a filler tile.
- * @constructor
- */
-function Tile(elem, opt_innerElem, opt_titleElem, opt_thumbnailElem, opt_rid) {
- /** @type {Element} */
- this.elem = elem;
-
- /** @type {Element|undefined} */
- this.innerElem = opt_innerElem;
-
- /** @type {Element|undefined} */
- this.titleElem = opt_titleElem;
-
- /** @type {Element|undefined} */
- this.thumbnailElem = opt_thumbnailElem;
-
- /** @type {number|undefined} */
- this.rid = opt_rid;
-}
-
-
-/**
* Heuristic to determine whether a theme should be considered to be dark, so
* the colors of various UI elements can be adjusted.
* @param {ThemeBackgroundInfo|undefined} info Theme background information.
@@ -340,17 +304,9 @@ function renderTheme() {
var isThemeDark = getIsThemeDark(info);
ntpContents.classList.toggle(CLASSES.DARK, isThemeDark);
if (!info) {
- titleColor = convertToRRGGBBAAColor(NTP_DESIGN.titleColor);
return;
}
- if (!info.usingDefaultTheme && info.textColorRgba) {
- titleColor = convertToRRGGBBAAColor(info.textColorRgba);
- } else {
- titleColor = convertToRRGGBBAAColor(isThemeDark ?
- NTP_DESIGN.titleColorAgainstDark : NTP_DESIGN.titleColor);
- }
-
var background = [convertToRGBAColor(info.backgroundColorRgba),
info.imageUrl,
info.imageTiling,
@@ -361,6 +317,23 @@ function renderTheme() {
document.body.classList.toggle(CLASSES.ALTERNATE_LOGO, info.alternateLogo);
updateThemeAttribution(info.attributionUrl);
setCustomThemeStyle(info);
+
+ var themeinfo = {cmd: 'updateTheme'};
+ if (!info.usingDefaultTheme) {
+ themeinfo.tileBorderColor = convertToRGBAColor(info.sectionBorderColorRgba);
+ themeinfo.tileHoverBorderColor = convertToRGBAColor(info.headerColorRgba);
+ }
+ themeinfo.isThemeDark = isThemeDark;
+
+ var titleColor = NTP_DESIGN.titleColor;
+ if (!info.usingDefaultTheme && info.textColorRgba) {
+ titleColor = info.textColorRgba;
+ } else if (isThemeDark) {
+ titleColor = NTP_DESIGN.titleColorAgainstDark;
+ }
+ themeinfo.tileTitleColor = convertToRGBAColor(titleColor);
+
+ $('mv-single').contentWindow.postMessage(themeinfo, '*');
}
@@ -370,8 +343,6 @@ function renderTheme() {
*/
function onThemeChange() {
renderTheme();
- tilesContainer.innerHTML = '';
- renderAllTiles();
}
@@ -489,320 +460,22 @@ function convertToRGBAColor(color) {
* Called when page data change.
*/
function onMostVisitedChange() {
- renderAllTiles();
-}
-
-
-/**
- * Rerenders all tiles based on Most Visited page data.
- */
-function renderAllTiles() {
- if (isBlacklisting) {
- // Trigger the blacklist animation, which then triggers reloadAllTiles().
- var lastBlacklistedTileElem = lastBlacklistedTile.elem;
- lastBlacklistedTileElem.addEventListener(
- 'webkitTransitionEnd', blacklistAnimationDone);
- lastBlacklistedTileElem.classList.add(CLASSES.BLACKLIST);
- } else {
- reloadAllTiles();
- }
-}
-
-
-/**
- * Handles the end of the blacklist animation by showing the notification and
- * re-rendering the new set of tiles.
- * @param {Event} e The associated event.
- */
-function blacklistAnimationDone(e) {
- if (e.propertyName != 'width') {
- return;
- }
- showNotification();
- isBlacklisting = false;
- tilesContainer.classList.remove(CLASSES.HIDE_BLACKLIST_BUTTON);
- lastBlacklistedTile.elem.removeEventListener(
- 'webkitTransitionEnd', blacklistAnimationDone);
- // Need to call explicitly to re-render the tiles, since the initial
- // renderAllTiles() issued by the blacklist function only triggered the
- // animation.
- reloadAllTiles();
+ reloadTiles();
}
/**
* Fetches new data, creates, and renders tiles.
*/
-function reloadAllTiles() {
+function reloadTiles() {
var pages = ntpApiHandle.mostVisited;
-
- tiles = [];
- for (var i = 0; i < MAX_NUM_TILES_TO_SHOW; ++i)
- tiles.push(createTile(pages[i], i));
-
- tilesContainer.innerHTML = '';
- renderAndShowTiles();
-}
-
-
-/**
- * Binds onload events for a tile's internal iframe elements.
- * @param {Tile} tile The main tile to bind events to.
- * @param {Barrier} tileVisibilityBarrier A barrier to make all tiles visible
- * the moment all tiles are loaded.
- */
-function bindTileOnloadEvents(tile, tileVisibilityBarrier) {
- if (tile.titleElem) {
- tileVisibilityBarrier.add();
- tile.titleElem.onload = function() {
- tileVisibilityBarrier.remove();
- };
- }
- if (tile.thumbnailElem) {
- tileVisibilityBarrier.add();
- tile.thumbnailElem.onload = function() {
- tile.elem.classList.add(CLASSES.PAGE_READY);
- tileVisibilityBarrier.remove();
- };
- }
-}
-
-
-/**
- * Renders the current list of visible tiles to DOM, and hides tiles that are
- * already in the DOM but should not be seen.
- */
-function renderAndShowTiles() {
- var numExisting = tilesContainer.querySelectorAll('.' + CLASSES.TILE).length;
- // Only add visible tiles to the DOM, to avoid creating invisible tiles that
- // produce meaningless impression metrics. However, if a tile becomes
- // invisible then we leave it in DOM to prevent reload if it's shown again.
- var numDesired = Math.min(tiles.length, numColumnsShown * NUM_ROWS);
-
- // If we need to render new tiles, manage the visibility to hide intermediate
- // load states of the iframes.
- if (numExisting < numDesired) {
- var showAll = function() {
- for (var i = 0; i < numDesired; ++i) {
- if (tiles[i].titleElem || tiles[i].thumbnailElem)
- tiles[i].elem.classList.add(CLASSES.PAGE_READY);
- }
- };
- var tileVisibilityBarrier = new Barrier(showAll);
-
- if (!userInitiatedMostVisitedChange) {
- // Make titleContainer invisible, but still taking up space.
- // titleContainer becomes visible again (1) on timeout, or (2) when all
- // tiles finish loading (using tileVisibilityBarrier).
- window.setTimeout(function() {
- tileVisibilityBarrier.cancel();
- showAll();
- }, MOST_VISITED_PAINT_TIMEOUT_MSEC);
- }
- userInitiatedMostVisitedChange = false;
-
- for (var i = numExisting; i < numDesired; ++i) {
- bindTileOnloadEvents(tiles[i], tileVisibilityBarrier);
- tilesContainer.appendChild(tiles[i].elem);
- }
+ var cmds = [];
+ for (var i = 0; i < Math.min(MAX_NUM_TILES_TO_SHOW, pages.length); ++i) {
+ cmds.push({cmd: 'tile', rid: pages[i].rid});
}
+ cmds.push({cmd: 'show', maxVisible: numColumnsShown * NUM_ROWS});
- // Show only the desired tiles. Note that .hidden does not work for
- // inline-block elements like tiles[i].elem.
- for (var i = 0; i < numDesired; ++i)
- tiles[i].elem.style.display = 'inline-block';
- // If |numDesired| < |numExisting| then hide extra tiles (e.g., this occurs
- // when window is downsized).
- for (; i < numExisting; ++i)
- tiles[i].elem.style.display = 'none';
-}
-
-
-/**
- * Builds a URL to display a most visited tile title in an iframe.
- * @param {number} rid The restricted ID.
- * @param {number} position The position of the iframe in the UI.
- * @return {string} An URL to display the most visited title in an iframe.
- */
-function getMostVisitedTitleIframeUrl(rid, position) {
- var url = 'chrome-search://most-visited/' +
- encodeURIComponent(MOST_VISITED_TITLE_IFRAME);
- var params = [
- 'rid=' + encodeURIComponent(rid),
- 'f=' + encodeURIComponent(NTP_DESIGN.fontFamily),
- 'fs=' + encodeURIComponent(NTP_DESIGN.fontSize),
- 'c=' + encodeURIComponent(titleColor),
- 'pos=' + encodeURIComponent(position)];
- if (NTP_DESIGN.titleTextAlign)
- params.push('ta=' + encodeURIComponent(NTP_DESIGN.titleTextAlign));
- if (NTP_DESIGN.titleTextFade)
- params.push('tf=' + encodeURIComponent(NTP_DESIGN.titleTextFade));
- if (NTP_DESIGN.numTitleLines > 1)
- params.push('ntl=' + NTP_DESIGN.numTitleLines);
- return url + '?' + params.join('&');
-}
-
-
-/**
- * Builds a URL to display a most visited tile thumbnail in an iframe.
- * @param {number} rid The restricted ID.
- * @param {number} position The position of the iframe in the UI.
- * @return {string} An URL to display the most visited thumbnail in an iframe.
- */
-function getMostVisitedThumbnailIframeUrl(rid, position) {
- var url = 'chrome-search://most-visited/' +
- encodeURIComponent(MOST_VISITED_THUMBNAIL_IFRAME);
- var colorString = convertToRRGGBBAAColor(NTP_DESIGN.thumbnailTextColor);
- var params = [
- 'rid=' + encodeURIComponent(rid),
- 'f=' + encodeURIComponent(NTP_DESIGN.fontFamily),
- 'fs=' + encodeURIComponent(NTP_DESIGN.fontSize),
- 'c=' + encodeURIComponent(colorString),
- 'pos=' + encodeURIComponent(position)];
- if (NTP_DESIGN.thumbnailFallback)
- params.push('etfb=1');
- if (configData.useIcons)
- params.push('icons=1');
- return url + '?' + params.join('&');
-}
-
-
-/**
- * Creates a Tile with the specified page data. If no data is provided, a
- * filler Tile is created.
- * @param {?Object} page The page data.
- * @param {number} position The position of the tile.
- * @return {Tile} The new Tile.
- */
-function createTile(page, position) {
- var tileElem = document.createElement('div');
- tileElem.classList.add(CLASSES.TILE);
- // Prevent tile from being selected (and highlighted) when areas outside the
- // iframes are clicked.
- tileElem.addEventListener('mousedown', function(e) {
- e.preventDefault();
- });
-
- if (!page) {
- return new Tile(tileElem);
- }
-
- var rid = page.rid;
- tileElem.classList.add(CLASSES.PAGE);
-
- var navigateFunction = function(e) {
- e.preventDefault();
- ntpApiHandle.navigateContentWindow(rid, getDispositionFromEvent(e));
- };
-
- // The click handler for navigating to the page identified by the RID.
- tileElem.addEventListener('click', navigateFunction);
-
- // Container of tile contents.
- var innerElem = createAndAppendElement(tileElem, 'div', CLASSES.TILE_INNER);
-
- // The iframe which renders the page title.
- var titleElem = document.createElement('iframe');
- // Enable tab navigation on the iframe, which will move the selection to the
- // link element (which also has a tabindex).
- titleElem.tabIndex = '0';
-
- // Make the iframe presentational for accessibility so screen readers perceive
- // the iframe content as just part of the same page.
- titleElem.setAttribute('role', 'presentation');
-
- // Why iframes have IDs:
- //
- // On navigating back to the NTP we see several onmostvisitedchange() events
- // in series with incrementing RIDs. After the first event, a set of iframes
- // begins loading RIDs n, n+1, ..., n+k-1; after the second event, these get
- // destroyed and a new set begins loading RIDs n+k, n+k+1, ..., n+2k-1.
- // Now due to crbug.com/68841, Chrome incorrectly loads the content for the
- // first set of iframes into the most recent set of iframes.
- //
- // Giving iframes distinct ids seems to cause some invalidation and prevent
- // associating the incorrect data.
- //
- // TODO(jered): Find and fix the root (probably Blink) bug.
-
- // Keep this ID here. See comment above.
- titleElem.id = 'title-' + rid;
- titleElem.className = CLASSES.TITLE;
- titleElem.src = getMostVisitedTitleIframeUrl(rid, position);
- innerElem.appendChild(titleElem);
-
- // A fallback element for missing thumbnails.
- if (NTP_DESIGN.thumbnailFallback) {
- var fallbackElem = createAndAppendElement(
- innerElem, 'div', CLASSES.THUMBNAIL_FALLBACK);
- if (NTP_DESIGN.thumbnailFallback === THUMBNAIL_FALLBACK.DOT)
- createAndAppendElement(fallbackElem, 'div', CLASSES.DOT);
- }
-
- // The iframe which renders either a thumbnail or domain element.
- var thumbnailElem = document.createElement('iframe');
- thumbnailElem.tabIndex = '-1';
- thumbnailElem.setAttribute('aria-hidden', 'true');
- // Keep this ID here. See comment above.
- thumbnailElem.id = 'thumb-' + rid;
- thumbnailElem.className = CLASSES.THUMBNAIL;
- thumbnailElem.src = getMostVisitedThumbnailIframeUrl(rid, position);
- innerElem.appendChild(thumbnailElem);
-
- // The button used to blacklist this page.
- var blacklistButton = createAndAppendElement(
- innerElem, 'div', CLASSES.BLACKLIST_BUTTON);
- createAndAppendElement(
- blacklistButton, 'div', CLASSES.BLACKLIST_BUTTON_INNER);
- var blacklistFunction = generateBlacklistFunction(rid);
- blacklistButton.addEventListener('click', blacklistFunction);
- blacklistButton.title = configData.translatedStrings.removeThumbnailTooltip;
-
- // A helper mask on top of the tile that is used to create hover border
- // and/or to darken the thumbnail on focus.
- var maskElement = createAndAppendElement(
- innerElem, 'div', CLASSES.THUMBNAIL_MASK);
-
- // The page favicon, or a fallback.
- if (NTP_DESIGN.showFavicon) {
- var favicon = createAndAppendElement(innerElem, 'div', CLASSES.FAVICON);
- if (page.faviconUrl) {
- var fi = document.createElement('img');
- fi.src = page.faviconUrl;
- // Set the title to empty so screen readers won't say the image name.
- fi.title = '';
- fi.addEventListener('error', function(ev) {
- favicon.removeChild(fi);
- favicon.classList.add(CLASSES.FAVICON_FALLBACK);
- });
- favicon.appendChild(fi);
- } else {
- favicon.classList.add(CLASSES.FAVICON_FALLBACK);
- }
- }
- return new Tile(tileElem, innerElem, titleElem, thumbnailElem, rid);
-}
-
-
-/**
- * Generates a function to be called when the page with the corresponding RID
- * is blacklisted.
- * @param {number} rid The RID of the page being blacklisted.
- * @return {function(Event=)} A function which handles the blacklisting of the
- * page by updating state variables and notifying Chrome.
- */
-function generateBlacklistFunction(rid) {
- return function(e) {
- // Prevent navigation when the page is being blacklisted.
- if (e)
- e.stopPropagation();
-
- userInitiatedMostVisitedChange = true;
- isBlacklisting = true;
- tilesContainer.classList.add(CLASSES.HIDE_BLACKLIST_BUTTON);
- lastBlacklistedTile = getTileByRid(rid);
- ntpApiHandle.deleteMostVisitedItem(rid);
- };
+ $('mv-single').contentWindow.postMessage(cmds, '*');
}
@@ -831,11 +504,10 @@ function hideNotification() {
* informing Chrome.
*/
function onUndo() {
- userInitiatedMostVisitedChange = true;
hideNotification();
- var lastBlacklistedRID = lastBlacklistedTile.rid;
- if (typeof lastBlacklistedRID != 'undefined')
- ntpApiHandle.undoMostVisitedDeletion(lastBlacklistedRID);
+ if (lastBlacklistedTile != null) {
+ ntpApiHandle.undoMostVisitedDeletion(lastBlacklistedTile);
+ }
}
@@ -844,7 +516,6 @@ function onUndo() {
* notification and informing Chrome.
*/
function onRestoreAll() {
- userInitiatedMostVisitedChange = true;
hideNotification();
ntpApiHandle.undoAllMostVisitedDeletions();
}
@@ -874,8 +545,10 @@ function updateContentWidth() {
return false;
numColumnsShown = newNumColumns;
- var tilesContainerWidth = numColumnsShown * tileRequiredWidth;
- tilesContainer.style.width = tilesContainerWidth + 'px';
+ // We add an extra pixel because rounding errors on different zooms can
+ // make the width shorter than it should be.
+ var tilesContainerWidth = Math.ceil(numColumnsShown * tileRequiredWidth) + 1;
+ $(IDS.TILES).style.width = tilesContainerWidth + 'px';
if (fakebox) {
// -2 to account for border.
var fakeboxWidth = (tilesContainerWidth - NTP_DESIGN.tileMargin - 2);
@@ -892,25 +565,9 @@ function updateContentWidth() {
* new width of the page.
*/
function onResize() {
- if (updateContentWidth()) {
- // Render without clearing tiles.
- renderAndShowTiles();
- }
-}
-
-
-/**
- * Returns the tile corresponding to the specified page RID.
- * @param {number} rid The page RID being looked up.
- * @return {Tile} The corresponding tile.
- */
-function getTileByRid(rid) {
- for (var i = 0, length = tiles.length; i < length; ++i) {
- var tile = tiles[i];
- if (tile.rid == rid)
- return tile;
- }
- return null;
+ updateContentWidth();
+ $('mv-single').contentWindow.postMessage(
+ {cmd: 'tilesVisible', maxVisible: numColumnsShown * NUM_ROWS}, '*');
}
@@ -1028,15 +685,6 @@ function createAndAppendElement(parent, name, opt_class) {
/**
- * Removes a node from its parent.
- * @param {Node} node The node to remove.
- */
-function removeNode(node) {
- node.parentNode.removeChild(node);
-}
-
-
-/**
* @param {!Element} element The element to register the handler for.
* @param {number} keycode The keycode of the key to register.
* @param {!Function} handler The key handler to register.
@@ -1067,23 +715,13 @@ function getEmbeddedSearchApiHandle() {
* @param {Event} event Event received.
*/
function handlePostMessage(event) {
- if (event.origin !== 'chrome-search://most-visited')
- return;
+ var cmd = event.data.cmd;
+ var args = event.data;
+ if (cmd == 'tileBlacklisted') {
+ showNotification();
+ lastBlacklistedTile = args.tid;
- if (event.data === 'linkFocused') {
- var activeElement = document.activeElement;
- if (activeElement.classList.contains(CLASSES.TITLE)) {
- activeElement.classList.add(CLASSES.FOCUSED);
- focusedIframe = activeElement;
- }
- } else if (event.data === 'linkBlurred') {
- if (focusedIframe)
- focusedIframe.classList.remove(CLASSES.FOCUSED);
- focusedIframe = null;
- } else if (event.data.indexOf('tileBlacklisted') === 0) {
- var tilePosition = event.data.split(',')[1];
- if (tilePosition)
- generateBlacklistFunction(tiles[parseInt(tilePosition, 10)].rid)();
+ ntpApiHandle.deleteMostVisitedItem(args.tid);
}
}
@@ -1094,7 +732,6 @@ function handlePostMessage(event) {
* Google-provided page.
*/
function init() {
- tilesContainer = $(IDS.TILES);
notification = $(IDS.NOTIFICATION);
attribution = $(IDS.ATTRIBUTION);
ntpContents = $(IDS.NTP_CONTENTS);
@@ -1165,9 +802,6 @@ function init() {
if (ntpApiHandle.isInputInProgress)
onInputStart();
- renderTheme();
- renderAllTiles();
-
searchboxApiHandle = topLevelHandle.searchBox;
if (fakebox) {
@@ -1216,9 +850,33 @@ function init() {
document.documentElement.setAttribute('dir', 'rtl');
// Add class for setting alignments based on language directionality.
document.documentElement.classList.add(CLASSES.RTL);
- $(IDS.TILES).dir = 'rtl';
}
+ var iframe = document.createElement('iframe');
+ // Change the order of tabbing the page to start with NTP tiles.
+ iframe.setAttribute('tabindex', '1');
+ iframe.id = 'mv-single';
+
+ var args = [];
+
+ if (searchboxApiHandle.rtl)
+ args.push('rtl=1');
+ if (window.configData.useIcons)
+ args.push('icons=1');
+ if (NTP_DESIGN.numTitleLines > 1)
+ args.push('ntl=' + NTP_DESIGN.numTitleLines);
+
+ args.push('removeTooltip=' +
+ encodeURIComponent(configData.translatedStrings.removeThumbnailTooltip));
+
+ iframe.src = '//most-visited/single.html?' + args.join('&');
+ $(IDS.TILES).appendChild(iframe);
+
+ iframe.onload = function() {
+ reloadTiles();
+ renderTheme();
+ };
+
window.addEventListener('message', handlePostMessage);
}
diff --git a/chromium/chrome/browser/resources/local_ntp/local_ntp_design.js b/chromium/chrome/browser/resources/local_ntp/local_ntp_design.js
deleted file mode 100644
index 5c0bb021a13..00000000000
--- a/chromium/chrome/browser/resources/local_ntp/local_ntp_design.js
+++ /dev/null
@@ -1,90 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-
-/**
- * @fileoverview Specifications for NTP design.
- */
-
- var THUMBNAIL_FALLBACK = {
- DOT: 'dot' // Draw single dot.
- };
-
-
-/**
- * Specifications for an NTP design (not comprehensive).
- *
- * fakeboxWingSize: Extra distance for fakebox to extend beyond beyond the list
- * of tiles.
- * fontFamily: Font family to use for title and thumbnail iframes.
- * fontSize: Font size to use for the iframes, in px.
- * mainClass: Class applied to #ntp-contents to control CSS.
- * numTitleLines: Number of lines to display in titles.
- * showFavicon: Whether to show favicon.
- * thumbnailTextColor: The 4-component color that thumbnail iframe may use to
- * display text message in place of missing thumbnail.
- * thumbnailFallback: (Optional) A value in THUMBNAIL_FALLBACK to specify the
- * thumbnail fallback strategy. If unassigned, then the thumbnail.html
- * iframe would handle the fallback.
- * tileWidth: The width of each suggestion tile, in px.
- * tileMargin: Spacing between successive tiles, in px.
- * titleColor: The 4-component color of title text.
- * titleColorAgainstDark: The 4-component color of title text against a dark
- * theme.
- * titleTextAlign: (Optional) The alignment of title text. If unspecified, the
- * default value is 'center'.
- * titleTextFade: (Optional) The number of pixels beyond which title
- * text begins to fade. This overrides the default ellipsis style.
- *
- * @const {{
- * fakeboxWingSize: number,
- * fontFamily: string,
- * fontSize: number,
- * mainClass: string,
- * numTitleLines: number,
- * showFavicon: boolean,
- * thumbnailTextColor: string,
- * thumbnailFallback: string|null|undefined,
- * tileWidth: number,
- * tileMargin: number,
- * titleColor: string,
- * titleColorAgainstDark: string,
- * titleTextAlign: string|null|undefined,
- * titleTextFade: number|null|undefined
- * }}
- */
-var NTP_DESIGN = {
- fakeboxWingSize: 0,
- fontFamily: 'arial, sans-serif',
- fontSize: 12,
- mainClass: 'thumb-ntp',
- numTitleLines: 1,
- showFavicon: true,
- thumbnailTextColor: [50, 50, 50, 255],
- thumbnailFallback: THUMBNAIL_FALLBACK.DOT,
- tileWidth: 156,
- tileMargin: 16,
- titleColor: [50, 50, 50, 255],
- titleColorAgainstDark: [210, 210, 210, 255],
- titleTextAlign: 'inherit',
- titleTextFade: 122 - 36 // 112px wide title with 32 pixel fade at end.
-};
-
-
-/**
- * Modifies NTP_DESIGN parameters for icon NTP.
- */
-function modifyNtpDesignForIcons() {
- NTP_DESIGN.fakeboxWingSize = 132;
- NTP_DESIGN.mainClass = 'icon-ntp';
- NTP_DESIGN.numTitleLines = 2;
- NTP_DESIGN.showFavicon = false;
- NTP_DESIGN.thumbnailFallback = null;
- NTP_DESIGN.tileWidth = 48 + 2 * 18;
- NTP_DESIGN.tileMargin = 60 - 18 * 2;
- NTP_DESIGN.titleColor = [120, 120, 120, 255];
- NTP_DESIGN.titleColorAgainstDark = [210, 210, 210, 255];
- NTP_DESIGN.titleTextAlign = 'center';
- delete NTP_DESIGN.titleTextFade;
-}
diff --git a/chromium/chrome/browser/resources/local_ntp/local_ntp_fast.css b/chromium/chrome/browser/resources/local_ntp/local_ntp_fast.css
deleted file mode 100644
index 5026e218ae9..00000000000
--- a/chromium/chrome/browser/resources/local_ntp/local_ntp_fast.css
+++ /dev/null
@@ -1,330 +0,0 @@
-/* Copyright 2015 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file. */
-
-/* TODO: Need to discuss with NTP folks before we remove font-family from the
- * body tag. */
-body {
- background-attachment: fixed !important;
- background-color: white;
- cursor: default;
- font-family: arial, sans-serif;
- font-size: small;
- margin: 0;
- overflow-x: hidden;
-}
-
-#ntp-contents {
- text-align: -webkit-center;
-}
-
-.non-google-page #ntp-contents {
- position: absolute;
- top: calc(50% - 155px);
- width: 100%;
-}
-
-body.hide-fakebox-logo #logo,
-body.hide-fakebox-logo #fakebox {
- visibility: hidden;
-}
-
-body.fakebox-disable #fakebox {
- border-color: rgb(238, 238, 238);
- cursor: default;
-}
-
-body.fakebox-disable #fakebox > input {
- cursor: default;
-}
-
-#logo {
- background-image: url(images/google_logo.png@2x);
- background-repeat: no-repeat;
- background-size: 269px 95px;
- height: 95px;
- margin-bottom: 24px;
- margin-top: 157px;
- width: 269px;
-}
-
-body.alternate-logo #logo {
- -webkit-mask-image: url(images/google_logo.png@2x);
- -webkit-mask-repeat: no-repeat;
- -webkit-mask-size: 100%;
- background: #eee;
-}
-
-#fakebox {
- -webkit-transform: translate3d(0, 0, 0);
- -webkit-transition: -webkit-transform 100ms linear, border-color 100ms linear;
- background-color: #fff;
- border: 1px solid rgb(185, 185, 185);
- border-radius: 1px;
- border-top-color: rgb(160, 160, 160);
- cursor: text;
- font-size: 18px;
- height: 36px;
- line-height: 36px;
- max-width: 672px;
- position: relative;
- /* #fakebox width (here and below) should be 2px less than #mv-tiles
- to account for its border. */
- width: 298px;
-}
-
-#fakebox:hover {
- border: 1px solid rgb(169, 169, 169);
- border-top-color: rgb(144, 144, 144);
-}
-
-body.fakebox-focused #fakebox {
- border: 1px solid rgb(77, 144, 254);
-}
-
-#fakebox > input {
- bottom: 0;
- box-sizing: border-box;
- left: 0;
- margin: 0;
- opacity: 0;
- padding-left: 8px;
- position: absolute;
- top: 0;
- width: 100%;
-}
-
-html[dir=rtl] #fakebox > input {
- padding-left: 0;
- padding-right: 8px;
- right: 0;
-}
-
-#fakebox-text {
- bottom: 0;
- color: #bbb;
- font-family: arial, sans-serif;
- font-size: 16px;
- left: 9px;
- margin-top: 1px;
- overflow: hidden;
- position: absolute;
- right: 9px;
- text-align: initial;
- text-overflow: ellipsis;
- top: 0;
- vertical-align: middle;
- visibility: inherit;
- white-space: nowrap;
-}
-
-html[dir=rtl] #fakebox-text {
- left: auto;
- right: 9px;
-}
-
-#cursor {
- background: #333;
- bottom: 5px;
- left: 9px;
- position: absolute;
- top: 5px;
- visibility: hidden;
- width: 1px;
-}
-
-html[dir=rtl] #cursor {
- left: auto;
- right: 9px;
-}
-
-@-webkit-keyframes blink {
- 0% {
- opacity: 1;
- }
- 61.55% {
- opacity: 0;
- }
-}
-
-body.fakebox-drag-focused #fakebox-text,
-body.fakebox-focused #fakebox-text {
- visibility: hidden;
-}
-
-body.fakebox-drag-focused #cursor {
- visibility: inherit;
-}
-
-body.fakebox-focused #cursor {
- -webkit-animation: blink 1.3s step-end infinite;
- visibility: inherit;
-}
-
-#most-visited {
- -webkit-user-select: none;
- margin-top: 64px;
- text-align: -webkit-center;
-}
-
-.icon-ntp #most-visited {
- margin-top: calc(100px - 36px);
-}
-
-/* Non-Google pages have no Fakebox, so don't need top margin. */
-.non-google-page #most-visited {
- margin-top: 0;
-}
-
-#mv-tiles {
- margin: 0;
- position: relative;
- text-align: -webkit-auto;
-}
-
-.thumb-ntp #mv-tiles {
- height: calc(2 * 146px);
- line-height: 146px;
-}
-
-.icon-ntp #mv-tiles {
- background: rgba(255,255,255,0.2);
- border-radius: 4px;
- height: calc(2 * 112px);
- padding: calc(36px - 18px) calc(36px - 18px - 12px);
-}
-
-.icon-ntp.dark #mv-tiles {
- background: rgba(0,0,0,0.4);
-}
-
-.default-theme.icon-ntp #mv-tiles {
- background: none;
-}
-
-#mv-notice-x {
- -webkit-mask-image: -webkit-image-set(
- url(chrome-search://local-ntp/images/close_3_mask.png) 1x,
- url(chrome-search://local-ntp/images/close_3_mask.png@2x) 2x);
- -webkit-mask-position: 3px 3px;
- -webkit-mask-repeat: no-repeat;
- -webkit-mask-size: 10px 10px;
- background-color: rgba(90,90,90,0.7);
- cursor: pointer;
- display: inline-block;
- height: 16px;
- margin-left: 20px;
- outline: none;
- vertical-align: middle;
- width: 16px;
-}
-
-html[dir=rtl] #mv-notice-x {
- margin-left: 0;
- margin-right: 20px;
-}
-
-#mv-notice-x:hover {
- background-color: rgba(90,90,90,1.0);
-}
-
-#mv-notice-x:active {
- background-color: rgb(66,133,244);
-}
-
-/* The notification shown when a tile is blacklisted. */
-#mv-notice {
- font-size: 12px;
- font-weight: bold;
- opacity: 1;
- padding: 10px 0;
-}
-
-.icon-ntp #mv-notice {
- margin-top: 30px;
-}
-
-#mv-notice span {
- cursor: default;
- display: inline-block;
- height: 16px;
- line-height: 16px;
- vertical-align: top;
-}
-
-/* Links in the notification. */
-#mv-notice-links span {
- -webkit-margin-start: 6px;
- color: rgb(17, 85, 204);
- cursor: pointer;
- outline: none;
- padding: 0 4px;
-}
-
-#mv-notice-links span:hover,
-#mv-notice-links span:focus,
-#recent-tabs:hover {
- text-decoration: underline;
-}
-
-.default-theme.dark #mv-msg {
- color: #fff;
-}
-
-.default-theme.dark #mv-notice-links span {
- color: #fff;
-}
-
-#mv-notice.mv-notice-delayed-hide {
- -webkit-transition-delay: 10s;
- -webkit-transition-property: opacity;
- opacity: 0;
-}
-
-#mv-notice.mv-notice-hide {
- display: none;
-}
-
-#attribution {
- -webkit-user-select: none;
- bottom: 0;
- color: #fff;
- cursor: default;
- display: inline-block;
- font-size: 13px;
- position: fixed;
- right: 8px;
- text-align: left;
- z-index: -1;
-}
-
-html[dir=rtl] #attribution {
- text-align: right;
-}
-
-#recent-tabs {
- background: #fff;
- border: 1px solid #c0c0c0;
- border-radius: 2px;
- bottom: 0;
- color: rgb(17, 85, 204);
- cursor: pointer;
- font-family: Arial;
- font-size: 14px;
- opacity: 0.9;
- padding: 3px;
- position: fixed;
- right: 8px;
-}
-
-html[dir=rtl] #attribution,
-html[dir=rtl] #recent-tabs {
- left: 8px;
- right: auto;
-}
-
-#mv-single {
- border: none;
- height: 100%;
- width: 100%;
-}
diff --git a/chromium/chrome/browser/resources/local_ntp/local_ntp_fast.html b/chromium/chrome/browser/resources/local_ntp/local_ntp_fast.html
deleted file mode 100644
index 2b3e1e4f7a3..00000000000
--- a/chromium/chrome/browser/resources/local_ntp/local_ntp_fast.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!doctype html>
-<html>
-<!-- Copyright 2015 The Chromium Authors. All rights reserved.
- Use of this source code is governed by a BSD-style license that can be
- found in the LICENSE file. -->
-<head>
- <script src="chrome-search://local-ntp/config.js"></script>
- <script src="chrome-search://local-ntp/local-ntp.js"></script>
- <link rel="stylesheet" href="chrome-search://local-ntp/local-ntp.css"></link>
- <meta charset="utf-8">
- <meta name="google" value="notranslate">
-</head>
-<body>
- <div id="ntp-contents">
- <div id="most-visited">
- <div id="mv-tiles"></div>
- <!-- Notification shown when a tile is blacklisted. -->
- <div id="mv-notice" class="mv-notice-hide">
- <span id="mv-msg"></span>
- <!-- Links in the notification. -->
- <span id="mv-notice-links">
- <span id="mv-undo" tabIndex="1"></span>
- <span id="mv-restore" tabIndex="1"></span>
- <div id="mv-notice-x" tabIndex="1"></div>
- </span>
- </div>
- </div>
- <div id="attribution"><div id="attribution-text"></div></div>
- </div>
-</body>
-</html>
diff --git a/chromium/chrome/browser/resources/local_ntp/local_ntp_fast.js b/chromium/chrome/browser/resources/local_ntp/local_ntp_fast.js
deleted file mode 100644
index 42c646d84a5..00000000000
--- a/chromium/chrome/browser/resources/local_ntp/local_ntp_fast.js
+++ /dev/null
@@ -1,808 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-
-/**
- * @fileoverview The local InstantExtended NTP.
- */
-
-
-/**
- * Controls rendering the new tab page for InstantExtended.
- * @return {Object} A limited interface for testing the local NTP.
- */
-function LocalNTP() {
- 'use strict';
-
-<include src="../../../../ui/webui/resources/js/util.js">
-<include src="local_ntp_design.js">
-
-/**
- * Enum for classnames.
- * @enum {string}
- * @const
- */
-var CLASSES = {
- ALTERNATE_LOGO: 'alternate-logo', // Shows white logo if required by theme
- DARK: 'dark',
- DEFAULT_THEME: 'default-theme',
- DELAYED_HIDE_NOTIFICATION: 'mv-notice-delayed-hide',
- FAKEBOX_DISABLE: 'fakebox-disable', // Makes fakebox non-interactive
- FAKEBOX_FOCUS: 'fakebox-focused', // Applies focus styles to the fakebox
- // Applies drag focus style to the fakebox
- FAKEBOX_DRAG_FOCUS: 'fakebox-drag-focused',
- HIDE_FAKEBOX_AND_LOGO: 'hide-fakebox-logo',
- HIDE_NOTIFICATION: 'mv-notice-hide',
- // Vertically centers the most visited section for a non-Google provided page.
- NON_GOOGLE_PAGE: 'non-google-page',
- RTL: 'rtl' // Right-to-left language text.
-};
-
-
-/**
- * Enum for HTML element ids.
- * @enum {string}
- * @const
- */
-var IDS = {
- ATTRIBUTION: 'attribution',
- ATTRIBUTION_TEXT: 'attribution-text',
- CUSTOM_THEME_STYLE: 'ct-style',
- FAKEBOX: 'fakebox',
- FAKEBOX_INPUT: 'fakebox-input',
- FAKEBOX_TEXT: 'fakebox-text',
- LOGO: 'logo',
- NOTIFICATION: 'mv-notice',
- NOTIFICATION_CLOSE_BUTTON: 'mv-notice-x',
- NOTIFICATION_MESSAGE: 'mv-msg',
- NTP_CONTENTS: 'ntp-contents',
- RESTORE_ALL_LINK: 'mv-restore',
- TILES: 'mv-tiles',
- UNDO_LINK: 'mv-undo'
-};
-
-
-/**
- * Enum for keycodes.
- * @enum {number}
- * @const
- */
-var KEYCODE = {
- ENTER: 13
-};
-
-
-/**
- * Enum for the state of the NTP when it is disposed.
- * @enum {number}
- * @const
- */
-var NTP_DISPOSE_STATE = {
- NONE: 0, // Preserve the NTP appearance and functionality
- DISABLE_FAKEBOX: 1,
- HIDE_FAKEBOX_AND_LOGO: 2
-};
-
-
-/**
- * The notification displayed when a page is blacklisted.
- * @type {Element}
- */
-var notification;
-
-
-/**
- * The container for the theme attribution.
- * @type {Element}
- */
-var attribution;
-
-
-/**
- * The "fakebox" - an input field that looks like a regular searchbox. When it
- * is focused, any text the user types goes directly into the omnibox.
- * @type {Element}
- */
-var fakebox;
-
-
-/**
- * The container for NTP elements.
- * @type {Element}
- */
-var ntpContents;
-
-
-/**
- * The last blacklisted tile rid if any, which by definition should not be
- * filler.
- * @type {?number}
- */
-var lastBlacklistedTile = null;
-
-
-/**
- * Current number of tiles columns shown based on the window width, including
- * those that just contain filler.
- * @type {number}
- */
-var numColumnsShown = 0;
-
-
-/**
- * The browser embeddedSearch.newTabPage object.
- * @type {Object}
- */
-var ntpApiHandle;
-
-
-/**
- * The browser embeddedSearch.searchBox object.
- * @type {Object}
- */
-var searchboxApiHandle;
-
-
-/**
- * The state of the NTP when a query is entered into the Omnibox.
- * @type {NTP_DISPOSE_STATE}
- */
-var omniboxInputBehavior = NTP_DISPOSE_STATE.NONE;
-
-
-/**
- * The state of the NTP when a query is entered into the Fakebox.
- * @type {NTP_DISPOSE_STATE}
- */
-var fakeboxInputBehavior = NTP_DISPOSE_STATE.HIDE_FAKEBOX_AND_LOGO;
-
-
-/** @type {number} @const */
-var MAX_NUM_TILES_TO_SHOW = 8;
-
-
-/** @type {number} @const */
-var MIN_NUM_COLUMNS = 2;
-
-
-/** @type {number} @const */
-var MAX_NUM_COLUMNS = 4;
-
-
-/** @type {number} @const */
-var NUM_ROWS = 2;
-
-
-/**
- * Minimum total padding to give to the left and right of the most visited
- * section. Used to determine how many tiles to show.
- * @type {number}
- * @const
- */
-var MIN_TOTAL_HORIZONTAL_PADDING = 200;
-
-
-/**
- * Heuristic to determine whether a theme should be considered to be dark, so
- * the colors of various UI elements can be adjusted.
- * @param {ThemeBackgroundInfo|undefined} info Theme background information.
- * @return {boolean} Whether the theme is dark.
- * @private
- */
-function getIsThemeDark(info) {
- if (!info)
- return false;
- // Heuristic: light text implies dark theme.
- var rgba = info.textColorRgba;
- var luminance = 0.3 * rgba[0] + 0.59 * rgba[1] + 0.11 * rgba[2];
- return luminance >= 128;
-}
-
-
-/**
- * Updates the NTP based on the current theme.
- * @private
- */
-function renderTheme() {
- var fakeboxText = $(IDS.FAKEBOX_TEXT);
- if (fakeboxText) {
- fakeboxText.innerHTML = '';
- if (configData.translatedStrings.searchboxPlaceholder) {
- fakeboxText.textContent =
- configData.translatedStrings.searchboxPlaceholder;
- }
- }
-
- var info = ntpApiHandle.themeBackgroundInfo;
- var isThemeDark = getIsThemeDark(info);
- ntpContents.classList.toggle(CLASSES.DARK, isThemeDark);
- if (!info) {
- return;
- }
-
- var background = [convertToRGBAColor(info.backgroundColorRgba),
- info.imageUrl,
- info.imageTiling,
- info.imageHorizontalAlignment,
- info.imageVerticalAlignment].join(' ').trim();
-
- document.body.style.background = background;
- document.body.classList.toggle(CLASSES.ALTERNATE_LOGO, info.alternateLogo);
- updateThemeAttribution(info.attributionUrl);
- setCustomThemeStyle(info);
-
- var themeinfo = {cmd: 'updateTheme'};
- if (!info.usingDefaultTheme) {
- themeinfo.tileBorderColor = convertToRGBAColor(info.sectionBorderColorRgba);
- themeinfo.tileHoverBorderColor = convertToRGBAColor(info.headerColorRgba);
- }
- themeinfo.isThemeDark = isThemeDark;
-
- var titleColor = NTP_DESIGN.titleColor;
- if (!info.usingDefaultTheme && info.textColorRgba) {
- titleColor = info.textColorRgba;
- } else if (isThemeDark) {
- titleColor = NTP_DESIGN.titleColorAgainstDark;
- }
- themeinfo.tileTitleColor = convertToRGBAColor(titleColor);
-
- $('mv-single').contentWindow.postMessage(themeinfo, '*');
-}
-
-
-/**
- * Updates the NTP based on the current theme, then rerenders all tiles.
- * @private
- */
-function onThemeChange() {
- renderTheme();
-}
-
-
-/**
- * Updates the NTP style according to theme.
- * @param {Object=} opt_themeInfo The information about the theme. If it is
- * omitted the style will be reverted to the default.
- * @private
- */
-function setCustomThemeStyle(opt_themeInfo) {
- var customStyleElement = $(IDS.CUSTOM_THEME_STYLE);
- var head = document.head;
- if (opt_themeInfo && !opt_themeInfo.usingDefaultTheme) {
- ntpContents.classList.remove(CLASSES.DEFAULT_THEME);
- var themeStyle =
- '#attribution {' +
- ' color: ' + convertToRGBAColor(opt_themeInfo.textColorLightRgba) + ';' +
- '}' +
- '#mv-msg {' +
- ' color: ' + convertToRGBAColor(opt_themeInfo.textColorRgba) + ';' +
- '}' +
- '#mv-notice-links span {' +
- ' color: ' + convertToRGBAColor(opt_themeInfo.textColorLightRgba) + ';' +
- '}' +
- '#mv-notice-x {' +
- ' -webkit-filter: drop-shadow(0 0 0 ' +
- convertToRGBAColor(opt_themeInfo.textColorRgba) + ');' +
- '}' +
- '.mv-page-ready .mv-mask {' +
- ' border: 1px solid ' +
- convertToRGBAColor(opt_themeInfo.sectionBorderColorRgba) + ';' +
- '}' +
- '.mv-page-ready:hover .mv-mask, .mv-page-ready .mv-focused ~ .mv-mask {' +
- ' border-color: ' +
- convertToRGBAColor(opt_themeInfo.headerColorRgba) + ';' +
- '}';
-
- if (customStyleElement) {
- customStyleElement.textContent = themeStyle;
- } else {
- customStyleElement = document.createElement('style');
- customStyleElement.type = 'text/css';
- customStyleElement.id = IDS.CUSTOM_THEME_STYLE;
- customStyleElement.textContent = themeStyle;
- head.appendChild(customStyleElement);
- }
-
- } else {
- ntpContents.classList.add(CLASSES.DEFAULT_THEME);
- if (customStyleElement)
- head.removeChild(customStyleElement);
- }
-}
-
-
-/**
- * Renders the attribution if the URL is present, otherwise hides it.
- * @param {string} url The URL of the attribution image, if any.
- * @private
- */
-function updateThemeAttribution(url) {
- if (!url) {
- setAttributionVisibility_(false);
- return;
- }
-
- var attributionImage = attribution.querySelector('img');
- if (!attributionImage) {
- attributionImage = new Image();
- attribution.appendChild(attributionImage);
- }
- attributionImage.style.content = url;
- setAttributionVisibility_(true);
-}
-
-
-/**
- * Sets the visibility of the theme attribution.
- * @param {boolean} show True to show the attribution.
- * @private
- */
-function setAttributionVisibility_(show) {
- if (attribution) {
- attribution.style.display = show ? '' : 'none';
- }
-}
-
-
- /**
- * Converts an Array of color components into RRGGBBAA format.
- * @param {Array<number>} color Array of rgba color components.
- * @return {string} Color string in RRGGBBAA format.
- * @private
- */
-function convertToRRGGBBAAColor(color) {
- return color.map(function(t) {
- return ('0' + t.toString(16)).slice(-2); // To 2-digit, 0-padded hex.
- }).join('');
-}
-
-
- /**
- * Converts an Array of color components into RGBA format "rgba(R,G,B,A)".
- * @param {Array<number>} color Array of rgba color components.
- * @return {string} CSS color in RGBA format.
- * @private
- */
-function convertToRGBAColor(color) {
- return 'rgba(' + color[0] + ',' + color[1] + ',' + color[2] + ',' +
- color[3] / 255 + ')';
-}
-
-
-/**
- * Called when page data change.
- */
-function onMostVisitedChange() {
- reloadTiles();
-}
-
-
-/**
- * Fetches new data, creates, and renders tiles.
- */
-function reloadTiles() {
- var pages = ntpApiHandle.mostVisited;
- var cmds = [];
- for (var i = 0; i < Math.min(MAX_NUM_TILES_TO_SHOW, pages.length); ++i) {
- cmds.push({cmd: 'tile', rid: pages[i].rid});
- }
- cmds.push({cmd: 'show', maxVisible: numColumnsShown * NUM_ROWS});
-
- $('mv-single').contentWindow.postMessage(cmds, '*');
-}
-
-
-/**
- * Shows the blacklist notification and triggers a delay to hide it.
- */
-function showNotification() {
- notification.classList.remove(CLASSES.HIDE_NOTIFICATION);
- notification.classList.remove(CLASSES.DELAYED_HIDE_NOTIFICATION);
- notification.scrollTop;
- notification.classList.add(CLASSES.DELAYED_HIDE_NOTIFICATION);
-}
-
-
-/**
- * Hides the blacklist notification.
- */
-function hideNotification() {
- notification.classList.add(CLASSES.HIDE_NOTIFICATION);
- notification.classList.remove(CLASSES.DELAYED_HIDE_NOTIFICATION);
-}
-
-
-/**
- * Handles a click on the notification undo link by hiding the notification and
- * informing Chrome.
- */
-function onUndo() {
- hideNotification();
- if (lastBlacklistedTile != null) {
- ntpApiHandle.undoMostVisitedDeletion(lastBlacklistedTile);
- }
-}
-
-
-/**
- * Handles a click on the restore all notification link by hiding the
- * notification and informing Chrome.
- */
-function onRestoreAll() {
- hideNotification();
- ntpApiHandle.undoAllMostVisitedDeletions();
-}
-
-
-/**
- * Recomputes the number of tile columns, and width of various contents based
- * on the width of the window.
- * @return {boolean} Whether the number of tile columns has changed.
- */
-function updateContentWidth() {
- var tileRequiredWidth = NTP_DESIGN.tileWidth + NTP_DESIGN.tileMargin;
- // If innerWidth is zero, then use the maximum snap size.
- var maxSnapSize = MAX_NUM_COLUMNS * tileRequiredWidth -
- NTP_DESIGN.tileMargin + MIN_TOTAL_HORIZONTAL_PADDING;
- var innerWidth = window.innerWidth || maxSnapSize;
- // Each tile has left and right margins that sum to NTP_DESIGN.tileMargin.
- var availableWidth = innerWidth + NTP_DESIGN.tileMargin -
- NTP_DESIGN.fakeboxWingSize * 2 - MIN_TOTAL_HORIZONTAL_PADDING;
- var newNumColumns = Math.floor(availableWidth / tileRequiredWidth);
- if (newNumColumns < MIN_NUM_COLUMNS)
- newNumColumns = MIN_NUM_COLUMNS;
- else if (newNumColumns > MAX_NUM_COLUMNS)
- newNumColumns = MAX_NUM_COLUMNS;
-
- if (numColumnsShown === newNumColumns)
- return false;
-
- numColumnsShown = newNumColumns;
- var tilesContainerWidth = numColumnsShown * tileRequiredWidth;
- $(IDS.TILES).style.width = tilesContainerWidth + 'px';
- if (fakebox) {
- // -2 to account for border.
- var fakeboxWidth = (tilesContainerWidth - NTP_DESIGN.tileMargin - 2);
- fakeboxWidth += NTP_DESIGN.fakeboxWingSize * 2;
- fakebox.style.width = fakeboxWidth + 'px';
- }
- return true;
-}
-
-
-/**
- * Resizes elements because the number of tile columns may need to change in
- * response to resizing. Also shows or hides extra tiles tiles according to the
- * new width of the page.
- */
-function onResize() {
- updateContentWidth();
- $('mv-single').contentWindow.postMessage(
- {cmd: 'tilesVisible', maxVisible: numColumnsShown * NUM_ROWS}, '*');
-}
-
-
-/**
- * Handles new input by disposing the NTP, according to where the input was
- * entered.
- */
-function onInputStart() {
- if (fakebox && isFakeboxFocused()) {
- setFakeboxFocus(false);
- setFakeboxDragFocus(false);
- disposeNtp(true);
- } else if (!isFakeboxFocused()) {
- disposeNtp(false);
- }
-}
-
-
-/**
- * Disposes the NTP, according to where the input was entered.
- * @param {boolean} wasFakeboxInput True if the input was in the fakebox.
- */
-function disposeNtp(wasFakeboxInput) {
- var behavior = wasFakeboxInput ? fakeboxInputBehavior : omniboxInputBehavior;
- if (behavior == NTP_DISPOSE_STATE.DISABLE_FAKEBOX)
- setFakeboxActive(false);
- else if (behavior == NTP_DISPOSE_STATE.HIDE_FAKEBOX_AND_LOGO)
- setFakeboxAndLogoVisibility(false);
-}
-
-
-/**
- * Restores the NTP (re-enables the fakebox and unhides the logo.)
- */
-function restoreNtp() {
- setFakeboxActive(true);
- setFakeboxAndLogoVisibility(true);
-}
-
-
-/**
- * @param {boolean} focus True to focus the fakebox.
- */
-function setFakeboxFocus(focus) {
- document.body.classList.toggle(CLASSES.FAKEBOX_FOCUS, focus);
-}
-
-/**
- * @param {boolean} focus True to show a dragging focus to the fakebox.
- */
-function setFakeboxDragFocus(focus) {
- document.body.classList.toggle(CLASSES.FAKEBOX_DRAG_FOCUS, focus);
-}
-
-/**
- * @return {boolean} True if the fakebox has focus.
- */
-function isFakeboxFocused() {
- return document.body.classList.contains(CLASSES.FAKEBOX_FOCUS) ||
- document.body.classList.contains(CLASSES.FAKEBOX_DRAG_FOCUS);
-}
-
-
-/**
- * @param {boolean} enable True to enable the fakebox.
- */
-function setFakeboxActive(enable) {
- document.body.classList.toggle(CLASSES.FAKEBOX_DISABLE, !enable);
-}
-
-
-/**
- * @param {!Event} event The click event.
- * @return {boolean} True if the click occurred in an enabled fakebox.
- */
-function isFakeboxClick(event) {
- return fakebox.contains(event.target) &&
- !document.body.classList.contains(CLASSES.FAKEBOX_DISABLE);
-}
-
-
-/**
- * @param {boolean} show True to show the fakebox and logo.
- */
-function setFakeboxAndLogoVisibility(show) {
- document.body.classList.toggle(CLASSES.HIDE_FAKEBOX_AND_LOGO, !show);
-}
-
-
-/**
- * Shortcut for document.getElementById.
- * @param {string} id of the element.
- * @return {HTMLElement} with the id.
- */
-function $(id) {
- return document.getElementById(id);
-}
-
-
-/**
- * Utility function which creates an element with an optional classname and
- * appends it to the specified parent.
- * @param {Element} parent The parent to append the new element.
- * @param {string} name The name of the new element.
- * @param {string=} opt_class The optional classname of the new element.
- * @return {Element} The new element.
- */
-function createAndAppendElement(parent, name, opt_class) {
- var child = document.createElement(name);
- if (opt_class)
- child.classList.add(opt_class);
- parent.appendChild(child);
- return child;
-}
-
-
-/**
- * @param {!Element} element The element to register the handler for.
- * @param {number} keycode The keycode of the key to register.
- * @param {!Function} handler The key handler to register.
- */
-function registerKeyHandler(element, keycode, handler) {
- element.addEventListener('keydown', function(event) {
- if (event.keyCode == keycode)
- handler(event);
- });
-}
-
-
-/**
- * @return {Object} the handle to the embeddedSearch API.
- */
-function getEmbeddedSearchApiHandle() {
- if (window.cideb)
- return window.cideb;
- if (window.chrome && window.chrome.embeddedSearch)
- return window.chrome.embeddedSearch;
- return null;
-}
-
-
-/**
- * Event handler for the focus changed and blacklist messages on link elements.
- * Used to toggle visual treatment on the tiles (depending on the message).
- * @param {Event} event Event received.
- */
-function handlePostMessage(event) {
- var cmd = event.data.cmd;
- var args = event.data;
- if (cmd == 'tileBlacklisted') {
- showNotification();
- lastBlacklistedTile = args.tid;
-
- ntpApiHandle.deleteMostVisitedItem(args.tid);
- }
-}
-
-
-/**
- * Prepares the New Tab Page by adding listeners, rendering the current
- * theme, the most visited pages section, and Google-specific elements for a
- * Google-provided page.
- */
-function init() {
- notification = $(IDS.NOTIFICATION);
- attribution = $(IDS.ATTRIBUTION);
- ntpContents = $(IDS.NTP_CONTENTS);
-
- if (configData.isGooglePage) {
- var logo = document.createElement('div');
- logo.id = IDS.LOGO;
- logo.title = 'Google';
-
- fakebox = document.createElement('div');
- fakebox.id = IDS.FAKEBOX;
- var fakeboxHtml = [];
- fakeboxHtml.push('<div id="' + IDS.FAKEBOX_TEXT + '"></div>');
- fakeboxHtml.push('<input id="' + IDS.FAKEBOX_INPUT +
- '" autocomplete="off" tabindex="-1" type="url" aria-hidden="true">');
- fakeboxHtml.push('<div id="cursor"></div>');
- fakebox.innerHTML = fakeboxHtml.join('');
-
- ntpContents.insertBefore(fakebox, ntpContents.firstChild);
- ntpContents.insertBefore(logo, ntpContents.firstChild);
- } else {
- document.body.classList.add(CLASSES.NON_GOOGLE_PAGE);
- }
-
- // Modify design for experimental icon NTP, if specified.
- if (configData.useIcons)
- modifyNtpDesignForIcons();
- document.querySelector('#ntp-contents').classList.add(NTP_DESIGN.mainClass);
-
- // Hide notifications after fade out, so we can't focus on links via keyboard.
- notification.addEventListener('webkitTransitionEnd', hideNotification);
-
- var notificationMessage = $(IDS.NOTIFICATION_MESSAGE);
- notificationMessage.textContent =
- configData.translatedStrings.thumbnailRemovedNotification;
-
- var undoLink = $(IDS.UNDO_LINK);
- undoLink.addEventListener('click', onUndo);
- registerKeyHandler(undoLink, KEYCODE.ENTER, onUndo);
- undoLink.textContent = configData.translatedStrings.undoThumbnailRemove;
-
- var restoreAllLink = $(IDS.RESTORE_ALL_LINK);
- restoreAllLink.addEventListener('click', onRestoreAll);
- registerKeyHandler(restoreAllLink, KEYCODE.ENTER, onUndo);
- restoreAllLink.textContent =
- configData.translatedStrings.restoreThumbnailsShort;
-
- $(IDS.ATTRIBUTION_TEXT).textContent =
- configData.translatedStrings.attributionIntro;
-
- var notificationCloseButton = $(IDS.NOTIFICATION_CLOSE_BUTTON);
- createAndAppendElement(
- notificationCloseButton, 'div', CLASSES.BLACKLIST_BUTTON_INNER);
- notificationCloseButton.addEventListener('click', hideNotification);
-
- window.addEventListener('resize', onResize);
- updateContentWidth();
-
- var topLevelHandle = getEmbeddedSearchApiHandle();
-
- ntpApiHandle = topLevelHandle.newTabPage;
- ntpApiHandle.onthemechange = onThemeChange;
- ntpApiHandle.onmostvisitedchange = onMostVisitedChange;
-
- ntpApiHandle.oninputstart = onInputStart;
- ntpApiHandle.oninputcancel = restoreNtp;
-
- if (ntpApiHandle.isInputInProgress)
- onInputStart();
-
- searchboxApiHandle = topLevelHandle.searchBox;
-
- if (fakebox) {
- // Listener for updating the key capture state.
- document.body.onmousedown = function(event) {
- if (isFakeboxClick(event))
- searchboxApiHandle.startCapturingKeyStrokes();
- else if (isFakeboxFocused())
- searchboxApiHandle.stopCapturingKeyStrokes();
- };
- searchboxApiHandle.onkeycapturechange = function() {
- setFakeboxFocus(searchboxApiHandle.isKeyCaptureEnabled);
- };
- var inputbox = $(IDS.FAKEBOX_INPUT);
- if (inputbox) {
- inputbox.onpaste = function(event) {
- event.preventDefault();
- // Send pasted text to Omnibox.
- var text = event.clipboardData.getData('text/plain');
- if (text)
- searchboxApiHandle.paste(text);
- };
- inputbox.ondrop = function(event) {
- event.preventDefault();
- var text = event.dataTransfer.getData('text/plain');
- if (text) {
- searchboxApiHandle.paste(text);
- }
- setFakeboxDragFocus(false);
- };
- inputbox.ondragenter = function() {
- setFakeboxDragFocus(true);
- };
- inputbox.ondragleave = function() {
- setFakeboxDragFocus(false);
- };
- }
-
- // Update the fakebox style to match the current key capturing state.
- setFakeboxFocus(searchboxApiHandle.isKeyCaptureEnabled);
- }
-
- if (searchboxApiHandle.rtl) {
- $(IDS.NOTIFICATION).dir = 'rtl';
- // Grabbing the root HTML element.
- document.documentElement.setAttribute('dir', 'rtl');
- // Add class for setting alignments based on language directionality.
- document.documentElement.classList.add(CLASSES.RTL);
- }
-
- var iframe = document.createElement('iframe');
- iframe.id = 'mv-single';
- var args = [];
-
- if (searchboxApiHandle.rtl)
- args.push('rtl=1');
- if (window.configData.useIcons)
- args.push('icons=1');
- if (NTP_DESIGN.numTitleLines > 1)
- args.push('ntl=' + NTP_DESIGN.numTitleLines);
-
- args.push('removeTooltip=' +
- encodeURIComponent(configData.translatedStrings.removeThumbnailTooltip));
-
- iframe.src = '//most-visited/single.html?' + args.join('&');
- $(IDS.TILES).appendChild(iframe);
-
- iframe.onload = function() {
- reloadTiles();
- renderTheme();
- };
-
- window.addEventListener('message', handlePostMessage);
-}
-
-
-/**
- * Binds event listeners.
- */
-function listen() {
- document.addEventListener('DOMContentLoaded', init);
-}
-
-return {
- init: init,
- listen: listen
-};
-}
-
-if (!window.localNTPUnitTest) {
- LocalNTP().listen();
-}
diff --git a/chromium/chrome/browser/resources/local_ntp/most_visited_single.css b/chromium/chrome/browser/resources/local_ntp/most_visited_single.css
index 96f6f6d581a..8aa9842da31 100644
--- a/chromium/chrome/browser/resources/local_ntp/most_visited_single.css
+++ b/chromium/chrome/browser/resources/local_ntp/most_visited_single.css
@@ -43,7 +43,7 @@ a:visited {
.thumb-ntp #mv-tiles,
.thumb-ntp .mv-tiles-old {
- height: calc(2 * 146px);
+ height: calc(146px + 130px);
line-height: 146px;
}
@@ -56,6 +56,7 @@ a:visited {
.mv-tile,
.mv-empty-tile {
+ box-sizing: border-box;
display: inline-block;
font-family: arial, sans-serif;
font-size: 12px;
diff --git a/chromium/chrome/browser/resources/local_ntp/most_visited_single.js b/chromium/chrome/browser/resources/local_ntp/most_visited_single.js
index 46d2897eb3a..f55b533a5a8 100644
--- a/chromium/chrome/browser/resources/local_ntp/most_visited_single.js
+++ b/chromium/chrome/browser/resources/local_ntp/most_visited_single.js
@@ -125,7 +125,7 @@ var countLoad = function() {
/**
* Handles postMessages coming from the host page to the iframe.
* Mostly, it dispatches every command to handleCommand.
- **/
+ */
var handlePostMessage = function(event) {
if (event.data instanceof Array) {
for (var i = 0; i < event.data.length; ++i) {
@@ -141,7 +141,7 @@ var handlePostMessage = function(event) {
* Handles a single command coming from the host page to the iframe.
* We try to keep the logic here to a minimum and just dispatch to the relevant
* functions.
- **/
+ */
var handleCommand = function(data) {
var cmd = data.cmd;
@@ -338,16 +338,85 @@ var renderTile = function(data) {
tile.href = data.url;
tile.title = data.title;
+ if (data.pingUrl) {
+ tile.addEventListener('click', function(ev) {
+ if (navigator.sendBeacon) {
+ navigator.sendBeacon(data.pingUrl);
+ } else {
+ // if sendBeacon is not enabled, we fallback to "a ping".
+ var a = document.createElement('a');
+ a.href = '#';
+ a.ping = data.pingUrl;
+ a.click();
+ }
+ });
+ }
tile.addEventListener('keydown', function(event) {
if (event.keyCode == 46 /* DELETE */ ||
event.keyCode == 8 /* BACKSPACE */) {
event.preventDefault();
event.stopPropagation();
- blacklistTile(tile);
+ blacklistTile(this);
} else if (event.keyCode == 13 /* ENTER */ ||
event.keyCode == 32 /* SPACE */) {
event.preventDefault();
- tile.click();
+ this.click();
+ } else if (event.keyCode >= 37 && event.keyCode <= 40 /* ARROWS */) {
+ var tiles = document.querySelectorAll('#mv-tiles .mv-tile');
+ var nextTile = null;
+ // Use the location of the tile to find the next one in the
+ // appropriate direction.
+ // For LEFT and UP we keep iterating until we find the last element
+ // that fulfills the conditions.
+ // For RIGHT and DOWN we accept the first element that works.
+ if (event.keyCode == 37 /* LEFT */) {
+ for (var i = 0; i < tiles.length; i++) {
+ var tile = tiles[i];
+ if (tile.offsetTop == this.offsetTop &&
+ tile.offsetLeft < this.offsetLeft) {
+ if (!nextTile || tile.offsetLeft > nextTile.offsetLeft) {
+ nextTile = tile;
+ }
+ }
+ }
+ }
+ if (event.keyCode == 38 /* UP */) {
+ for (var i = 0; i < tiles.length; i++) {
+ var tile = tiles[i];
+ if (tile.offsetTop < this.offsetTop &&
+ tile.offsetLeft == this.offsetLeft) {
+ if (!nextTile || tile.offsetTop > nextTile.offsetTop) {
+ nextTile = tile;
+ }
+ }
+ }
+ }
+ if (event.keyCode == 39 /* RIGHT */) {
+ for (var i = 0; i < tiles.length; i++) {
+ var tile = tiles[i];
+ if (tile.offsetTop == this.offsetTop &&
+ tile.offsetLeft > this.offsetLeft) {
+ if (!nextTile || tile.offsetLeft < nextTile.offsetLeft) {
+ nextTile = tile;
+ }
+ }
+ }
+ }
+ if (event.keyCode == 40 /* DOWN */) {
+ for (var i = 0; i < tiles.length; i++) {
+ var tile = tiles[i];
+ if (tile.offsetTop > this.offsetTop &&
+ tile.offsetLeft == this.offsetLeft) {
+ if (!nextTile || tile.offsetTop < nextTile.offsetTop) {
+ nextTile = tile;
+ }
+ }
+ }
+ }
+
+ if (nextTile) {
+ nextTile.focus();
+ }
}
});
// TODO(fserb): remove this or at least change to mouseenter.
diff --git a/chromium/chrome/browser/resources/local_ntp/most_visited_util.js b/chromium/chrome/browser/resources/local_ntp/most_visited_util.js
index dfa9c235def..9c00c58ae14 100644
--- a/chromium/chrome/browser/resources/local_ntp/most_visited_util.js
+++ b/chromium/chrome/browser/resources/local_ntp/most_visited_util.js
@@ -194,7 +194,7 @@ function createMostVisitedLink(params, href, title, text, direction, provider) {
/**
* Returns the color to display string with, depending on whether title is
* displayed, the current theme, and URL parameters.
- * @param {Object<string, string>} params URL parameters specifying style.
+ * @param {Object<string>} params URL parameters specifying style.
* @param {boolean} isTitle if the style is for the Most Visited Title.
* @return {string} The color to use, in "rgba(#,#,#,#)" format.
*/
@@ -231,7 +231,7 @@ function getTextColor(params, isTitle) {
* - ta: text-align property, as a string.
* - tf: text fade starting position, in pixels.
* - ntl: number of lines in the title.
- * @param {Object<string, string>} params URL parameters specifying style.
+ * @param {Object<string>} params URL parameters specifying style.
* @param {boolean} isTitle if the style is for the Most Visited Title.
* @return {Object} Styles suitable for CSS interpolation.
*/
diff --git a/chromium/chrome/browser/resources/md_downloads/compiled_resources.gyp b/chromium/chrome/browser/resources/md_downloads/compiled_resources.gyp
new file mode 100644
index 00000000000..75e200f2e81
--- /dev/null
+++ b/chromium/chrome/browser/resources/md_downloads/compiled_resources.gyp
@@ -0,0 +1,29 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+{
+ 'targets': [
+ {
+ 'target_name': 'manager',
+ 'variables': {
+ 'depends': [
+ '../../../../ui/webui/resources/js/action_link.js',
+ '../../../../ui/webui/resources/js/assert.js',
+ '../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data',
+ '../../../../ui/webui/resources/js/cr.js',
+ '../../../../ui/webui/resources/js/cr/ui.js',
+ '../../../../ui/webui/resources/js/cr/ui/command.js',
+ '../../../../ui/webui/resources/js/util.js',
+ '../downloads/constants.js',
+ '../downloads/throttled_icon_loader.js',
+ 'item_view.js',
+ ],
+ 'externs': [
+ '<(EXTERNS_DIR)/chrome_send.js',
+ '../downloads/externs.js',
+ ],
+ },
+ 'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
+ }
+ ],
+}
diff --git a/chromium/chrome/browser/resources/md_downloads/compiled_resources2.gyp b/chromium/chrome/browser/resources/md_downloads/compiled_resources2.gyp
new file mode 100644
index 00000000000..7b4afb7e7ba
--- /dev/null
+++ b/chromium/chrome/browser/resources/md_downloads/compiled_resources2.gyp
@@ -0,0 +1,32 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+{
+ 'targets': [
+ {
+ 'target_name': 'item_view',
+ 'dependencies': [
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:load_time_data',
+ '../downloads/compiled_resources2.gyp:constants',
+ '../downloads/compiled_resources2.gyp:throttled_icon_loader',
+ '../downloads/compiled_resources2.gyp:externs',
+ ],
+ 'includes': ['../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ {
+ 'target_name': 'manager',
+ 'dependencies': [
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:load_time_data',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:util',
+ '<(DEPTH)/ui/webui/resources/js/cr/compiled_resources2.gyp:ui',
+ '<(DEPTH)/ui/webui/resources/js/cr/ui/compiled_resources2.gyp:command',
+ 'item_view',
+ '<(EXTERNS_GYP):chrome_send',
+ '../downloads/compiled_resources2.gyp:externs',
+ ],
+ 'includes': ['../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ ],
+}
diff --git a/chromium/chrome/browser/resources/md_downloads/downloads.css b/chromium/chrome/browser/resources/md_downloads/downloads.css
new file mode 100644
index 00000000000..367845d6f31
--- /dev/null
+++ b/chromium/chrome/browser/resources/md_downloads/downloads.css
@@ -0,0 +1,29 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+body {
+ font-family: Roboto;
+}
+
+#downloads-toolbar {
+ background: rgb(63, 85, 102);
+ color: white;
+}
+
+#search-term label {
+ color: rgba(255, 255, 255, .5);
+}
+
+#search-term .label-is-highlighted label,
+#search-term input {
+ color: white;
+}
+
+#search-term .unfocused-line {
+ background-color: rgba(255, 255, 255, .5);
+}
+
+#search-term .focused-line {
+ background-color: white;
+}
diff --git a/chromium/chrome/browser/resources/md_downloads/downloads.html b/chromium/chrome/browser/resources/md_downloads/downloads.html
new file mode 100644
index 00000000000..e7ba6a01b4f
--- /dev/null
+++ b/chromium/chrome/browser/resources/md_downloads/downloads.html
@@ -0,0 +1,58 @@
+<!doctype html>
+<html i18n-values="dir:textdirection;lang:language">
+<head>
+ <meta charset="utf-8">
+ <title i18n-content="title"></title>
+
+ <link rel="import" href="chrome://resources/html/action_link.html">
+ <link rel="import" href="chrome://resources/html/polymer_config.html">
+ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+ <link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+ <link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+ <link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html">
+ <link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html">
+ <link rel="import" href="chrome://resources/polymer/v1_0/paper-toolbar/paper-toolbar.html">
+
+ <link rel="import" href="chrome://downloads/manager.html">
+
+ <link rel="stylesheet" href="chrome://resources/css/roboto.css">
+ <link rel="stylesheet" href="chrome://downloads/downloads.css">
+</head>
+<body class="fullbleed">
+
+ <paper-toolbar id="downloads-toolbar">
+ <h1 class="flex-auto" i18n-content="title"></h1>
+ <paper-icon-button icon="search" id="search-button"></paper-icon-button>
+ <paper-input id="search-term" class="flex-none"
+ i18n-values="label:searchButton" no-label-float hidden></paper-input>
+ <paper-icon-button icon="clear" id="clear-search"
+ hidden></paper-icon-button>
+ </paper-toolbar>
+
+ <div class="main">
+ <div class="summary" id="downloads-summary">
+ <span id="downloads-summary-text"></span>
+ <span id="downloads-actions">
+ <a is="action-link" id="open-downloads-folder"
+ i18n-content="openDownloadsFolder"></a>
+ <a is="action-link" id="clear-all" i18n-content="clearAll" hidden></a>
+ </span>
+ </div>
+ <div id="downloads-display"></div>
+ <div id="no-downloads-or-results"></div>
+ </div>
+
+ <command id="clear-all-command" shortcut="Alt-U+0043"><!-- Alt+C -->
+<if expr="is_macosx">
+ <command id="undo-command" shortcut="Meta-U+005A"><!-- Command+Z -->
+</if>
+<if expr="not is_macosx">
+ <command id="undo-command" shortcut="Ctrl-U+005A"><!-- Ctrl+Z -->
+</if>
+
+ <link rel="import" href="chrome://resources/html/load_time_data.html">
+ <link rel="import" href="chrome://downloads/strings.html">
+ <link rel="import" href="chrome://resources/html/i18n_template.html"></script>
+
+</body>
+</html>
diff --git a/chromium/chrome/browser/resources/md_downloads/item_view.html b/chromium/chrome/browser/resources/md_downloads/item_view.html
new file mode 100644
index 00000000000..d65c72d8b44
--- /dev/null
+++ b/chromium/chrome/browser/resources/md_downloads/item_view.html
@@ -0,0 +1,59 @@
+<dom-module id="item-view">
+ <template>
+ <div id="date-container" hidden$="{{hideDate}}">
+ <div id="since"></div>
+ <div id="date"></div>
+ </div>
+
+ <div id="safe" hidden$="{{isDangerous}}">
+ <img id="safe-icon" alt="">
+ <div id="title-area">
+ <a is="action-link" id="file-link" column-type="name"></a>
+ <span id="name"></span>
+ <span id="status"></span>
+ </div>
+ <div>
+ <a id="src-url" target="_blank" column-type="url"></a>
+ </div>
+ <div>
+ <a is="action-link" id="show" column-type="show"
+ i18n-content="controlShowInFolder"></a>
+ <a id="retry" column-type="retry" i18n-content="controlRetry"
+ download></a>
+ <a is="action-link" id="pause" column-type="pause"
+ i18n-content="controlPause"></a>
+ <a is="action-link" id="resume" column-type="resume"
+ i18n-content="controlResume"></a>
+ <a is="action-link" id="safe-remove" column-type="remove"
+ i18n-content="controlRemoveFromList"></a>
+ <a is="action-link" id="cancel" column-type="cancel"
+ i18n-content="controlCancel"></a>
+ <span id="controlled-by"
+ i18n-values=".innerHTML:controlByExtension"></span>
+ </div>
+ <paper-progress id="progress"></paper-progress>
+ </div>
+
+ <div id="dangerous" hidden$="{{!isDangerous}}">
+ <img id="dangerous-icon" alt="">
+ <div id="description"></div>
+ <div id="malware-controls" hidden$="{{!isMalware}}">
+ <a is="action-link" id="restore" column-type="save"
+ i18n-content="dangerRestore"></a>
+ <a is="action-link" id="dangerous-remove" column-type="discard"
+ i18n-content="controlRemoveFromList"></a>
+ </div>
+ <button id="save" column-type="save" i18n-content="dangerSave"
+ hidden$="{{isMalware}}"></button>
+ <button id="discard" column-type="discard" i18n-content="dangerDiscard"
+ hidden$="{{isMalware}}"></button>
+ </div>
+ </template>
+ <link rel="import" href="chrome://resources/html/cr.html">
+ <link rel="import" href="chrome://resources/html/load_time_data.html">
+ <link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+ <link rel="import" href="chrome://resources/polymer/v1_0/paper-progress/paper-progress.html">
+ <link rel="import" href="chrome://downloads/constants.html">
+ <link rel="import" href="chrome://downloads/throttled_icon_loader.html">
+ <script src="chrome://downloads/item_view.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/md_downloads/item_view.js b/chromium/chrome/browser/resources/md_downloads/item_view.js
new file mode 100644
index 00000000000..f0b2263579f
--- /dev/null
+++ b/chromium/chrome/browser/resources/md_downloads/item_view.js
@@ -0,0 +1,249 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+cr.define('downloads', function() {
+ var ItemView = Polymer({
+ is: 'item-view',
+
+ /** @param {!downloads.ThrottledIconLoader} iconLoader */
+ factoryImpl: function(iconLoader) {
+ /** @private {!downloads.ThrottledIconLoader} */
+ this.iconLoader_ = iconLoader;
+ },
+
+ properties: {
+ hideDate: {type: Boolean, value: false},
+ isDangerous: {type: Boolean, value: false},
+ // Only use |isMalware| if |isDangerous| is true.
+ isMalware: Boolean,
+ },
+
+ ready: function() {
+ this.$.safe.ondragstart = this.onSafeDragstart_.bind(this);
+ this.$['file-link'].onclick = this.onFileLinkClick_.bind(this);
+ this.$.show.onclick = this.onShowClick_.bind(this);
+ this.$.pause.onclick = this.onPauseClick_.bind(this);
+ this.$.resume.onclick = this.onResumeClick_.bind(this);
+ this.$['safe-remove'].onclick = this.onSafeRemoveClick_.bind(this);
+ this.$.cancel.onclick = this.onCancelClick_.bind(this);
+ this.$.restore.onclick = this.onRestoreClick_.bind(this);
+ this.$.save.onclick = this.onSaveClick_.bind(this);
+ this.$['dangerous-remove'].onclick = this.onDangerRemoveClick_.bind(this);
+ this.$.discard.onclick = this.onDiscardClick_.bind(this);
+ },
+
+ /** @param {!downloads.Data} data */
+ update: function(data) {
+ assert(!this.id_ || data.id == this.id_);
+ this.id_ = data.id; // This is the only thing saved from |data|.
+
+ this.classList.toggle('otr', data.otr);
+
+ this.ensureTextIs_(this.$.since, data.since_string);
+ this.ensureTextIs_(this.$.date, data.date_string);
+
+ var dangerText = this.getDangerText_(data);
+ this.isDangerous = !!dangerText;
+
+ if (dangerText) {
+ this.ensureTextIs_(this.$.description, dangerText);
+
+ var dangerType = data.danger_type;
+ var dangerousFile = dangerType == downloads.DangerType.DANGEROUS_FILE;
+ this.$.description.classList.toggle('malware', !dangerousFile);
+
+ var idr = dangerousFile ? 'IDR_WARNING' : 'IDR_SAFEBROWSING_WARNING';
+ var iconUrl = 'chrome://theme/' + idr;
+ this.iconLoader_.loadScaledIcon(this.$['dangerous-icon'], iconUrl);
+
+ this.isMalware =
+ dangerType == downloads.DangerType.DANGEROUS_CONTENT ||
+ dangerType == downloads.DangerType.DANGEROUS_HOST ||
+ dangerType == downloads.DangerType.DANGEROUS_URL ||
+ dangerType == downloads.DangerType.POTENTIALLY_UNWANTED;
+ } else {
+ var iconUrl = 'chrome://fileicon/' + encodeURIComponent(data.file_path);
+ this.iconLoader_.loadScaledIcon(this.$['safe-icon'], iconUrl);
+
+ /** @const */ var isInProgress =
+ data.state == downloads.States.IN_PROGRESS;
+ this.classList.toggle('in-progress', isInProgress);
+
+ /** @const */ var completelyOnDisk =
+ data.state == downloads.States.COMPLETE &&
+ !data.file_externally_removed;
+
+ this.$['file-link'].href = data.url;
+ this.ensureTextIs_(this.$['file-link'], data.file_name);
+ this.$['file-link'].hidden = !completelyOnDisk;
+
+ /** @const */ var isInterrupted =
+ data.state == downloads.States.INTERRUPTED;
+ this.$.name.classList.toggle('interrupted', isInterrupted);
+ this.ensureTextIs_(this.$.name, data.file_name);
+ this.$.name.hidden = completelyOnDisk;
+
+ this.$.show.hidden = !completelyOnDisk;
+
+ this.$.retry.href = data.url;
+ this.$.retry.hidden = !data.retry;
+
+ this.$.pause.hidden = !isInProgress;
+
+ this.$.resume.hidden = !data.resume;
+
+ /** @const */ var isPaused = data.state == downloads.States.PAUSED;
+ /** @const */ var showCancel = isPaused || isInProgress;
+ this.$.cancel.hidden = !showCancel;
+
+ this.$['safe-remove'].hidden = showCancel ||
+ !loadTimeData.getBoolean('allowDeletingHistory');
+
+ /** @const */ var controlledByExtension = data.by_ext_id &&
+ data.by_ext_name;
+ this.$['controlled-by'].hidden = !controlledByExtension;
+ if (controlledByExtension) {
+ var link = this.$['controlled-by'].querySelector('a');
+ link.href = 'chrome://extensions#' + data.by_ext_id;
+ link.setAttribute('column-type', 'controlled-by');
+ link.textContent = data.by_ext_name;
+ }
+
+ this.ensureTextIs_(this.$['src-url'], data.url);
+ this.$['src-url'].href = data.url;
+ this.ensureTextIs_(this.$.status, this.getStatusText_(data));
+
+ this.$.progress.hidden = !isInProgress;
+
+ if (isInProgress)
+ this.$.progress.value = data.percent;
+ }
+ },
+
+ /**
+ * Overwrite |el|'s textContent if it differs from |text|.
+ * @param {!Element} el
+ * @param {string} text
+ * @private
+ */
+ ensureTextIs_: function(el, text) {
+ if (el.textContent != text)
+ el.textContent = text;
+ },
+
+ /**
+ * @param {!downloads.Data} data
+ * @return {string} Text describing the danger of a download. Empty if not
+ * dangerous.
+ */
+ getDangerText_: function(data) {
+ switch (data.danger_type) {
+ case downloads.DangerType.DANGEROUS_FILE:
+ return loadTimeData.getStringF('dangerFileDesc', data.file_name);
+ case downloads.DangerType.DANGEROUS_URL:
+ return loadTimeData.getString('dangerUrlDesc');
+ case downloads.DangerType.DANGEROUS_CONTENT: // Fall through.
+ case downloads.DangerType.DANGEROUS_HOST:
+ return loadTimeData.getStringF('dangerContentDesc', data.file_name);
+ case downloads.DangerType.UNCOMMON_CONTENT:
+ return loadTimeData.getStringF('dangerUncommonDesc', data.file_name);
+ case downloads.DangerType.POTENTIALLY_UNWANTED:
+ return loadTimeData.getStringF('dangerSettingsDesc', data.file_name);
+ default:
+ return '';
+ }
+ },
+
+ /**
+ * @param {!downloads.Data} data
+ * @return {string} User-visible status update text.
+ * @private
+ */
+ getStatusText_: function(data) {
+ switch (data.state) {
+ case downloads.States.IN_PROGRESS:
+ case downloads.States.PAUSED: // Fallthrough.
+ assert(typeof data.progress_status_text == 'string');
+ return data.progress_status_text;
+ case downloads.States.CANCELLED:
+ return loadTimeData.getString('statusCancelled');
+ case downloads.States.DANGEROUS:
+ break; // Intentionally hit assertNotReached(); at bottom.
+ case downloads.States.INTERRUPTED:
+ assert(typeof data.last_reason_text == 'string');
+ return data.last_reason_text;
+ case downloads.States.COMPLETE:
+ return data.file_externally_removed ?
+ loadTimeData.getString('statusRemoved') : '';
+ }
+ assertNotReached();
+ return '';
+ },
+
+ /**
+ * @private
+ * @param {Event} e
+ */
+ onSafeDragstart_: function(e) {
+ e.preventDefault();
+ chrome.send('drag', [this.id_]);
+ },
+
+ /**
+ * @param {Event} e
+ * @private
+ */
+ onFileLinkClick_: function(e) {
+ e.preventDefault();
+ chrome.send('openFile', [this.id_]);
+ },
+
+ /** @private */
+ onShowClick_: function() {
+ chrome.send('show', [this.id_]);
+ },
+
+ /** @private */
+ onPauseClick_: function() {
+ chrome.send('pause', [this.id_]);
+ },
+
+ /** @private */
+ onResumeClick_: function() {
+ chrome.send('resume', [this.id_]);
+ },
+
+ /** @private */
+ onSafeRemoveClick_: function() {
+ chrome.send('remove', [this.id_]);
+ },
+
+ /** @private */
+ onCancelClick_: function() {
+ chrome.send('cancel', [this.id_]);
+ },
+
+ /** @private */
+ onRestoreClick_: function() {
+ this.onSaveClick_();
+ },
+
+ /** @private */
+ onSaveClick_: function() {
+ chrome.send('saveDangerous', [this.id_]);
+ },
+
+ /** @private */
+ onDangerRemoveClick_: function() {
+ this.onDiscardClick_();
+ },
+
+ /** @private */
+ onDiscardClick_: function() {
+ chrome.send('discardDangerous', [this.id_]);
+ },
+ });
+
+ return {ItemView: ItemView};
+});
diff --git a/chromium/chrome/browser/resources/md_downloads/manager.html b/chromium/chrome/browser/resources/md_downloads/manager.html
new file mode 100644
index 00000000000..53b11d384b4
--- /dev/null
+++ b/chromium/chrome/browser/resources/md_downloads/manager.html
@@ -0,0 +1,8 @@
+<link rel="import" href="chrome://resources/html/cr.html">
+<link rel="import" href="chrome://resources/html/load_time_data.html">
+<link rel="import" href="chrome://resources/html/cr/ui.html">
+<link rel="import" href="chrome://resources/html/cr/ui/command.html">
+<link rel="import" href="chrome://resources/html/util.html">
+<link rel="import" href="chrome://downloads/constants.html">
+<link rel="import" href="chrome://downloads/item_view.html">
+<script src="chrome://downloads/manager.js"></script>
diff --git a/chromium/chrome/browser/resources/md_downloads/manager.js b/chromium/chrome/browser/resources/md_downloads/manager.js
new file mode 100644
index 00000000000..ebd003f47fc
--- /dev/null
+++ b/chromium/chrome/browser/resources/md_downloads/manager.js
@@ -0,0 +1,234 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+cr.define('downloads', function() {
+ /**
+ * Class to own and manage download items.
+ * @constructor
+ */
+ function Manager() {}
+
+ cr.addSingletonGetter(Manager);
+
+ Manager.prototype = {
+ /** @private {string} */
+ searchText_: '',
+
+ /**
+ * Sets the search text, updates related UIs, and tells the browser.
+ * @param {string} searchText Text we're searching for.
+ * @private
+ */
+ setSearchText_: function(searchText) {
+ this.searchText_ = searchText;
+
+ $('downloads-summary-text').textContent = this.searchText_ ?
+ loadTimeData.getStringF('searchResultsFor', this.searchText_) : '';
+
+ // Split quoted terms (e.g., 'The "lazy" dog' => ['The', 'lazy', 'dog']).
+ function trim(s) { return s.trim(); }
+ chrome.send('getDownloads', searchText.split(/"([^"]*)"/).map(trim));
+ },
+
+ /**
+ * @return {number} A guess at how many items could be visible at once.
+ * @private
+ */
+ guesstimateNumberOfVisibleItems_: function() {
+ var toolbarHeight = $('downloads-toolbar').offsetHeight;
+ var summaryHeight = $('downloads-summary').offsetHeight;
+ var nonItemSpace = toolbarHeight + summaryHeight;
+ return Math.floor((window.innerHeight - nonItemSpace) / 46) + 1;
+ },
+
+ /**
+ * Called when all items need to be updated.
+ * @param {!Array<!downloads.Data>} list A list of new download data.
+ * @private
+ */
+ updateAll_: function(list) {
+ var oldIdMap = this.idMap_ || {};
+
+ /** @private {!Object<!downloads.ItemView>} */
+ this.idMap_ = {};
+
+ /** @private {!Array<!downloads.ItemView>} */
+ this.items_ = [];
+
+ if (!this.iconLoader_) {
+ var guesstimate = Math.max(this.guesstimateNumberOfVisibleItems_(), 1);
+ /** @private {downloads.ThrottledIconLoader} */
+ this.iconLoader_ = new downloads.ThrottledIconLoader(guesstimate);
+ }
+
+ for (var i = 0; i < list.length; ++i) {
+ var data = list[i];
+ var id = data.id;
+
+ // Re-use old items when possible (saves work, preserves focus).
+ var item = oldIdMap[id] || new downloads.ItemView(this.iconLoader_);
+
+ this.idMap_[id] = item; // Associated by ID for fast lookup.
+ this.items_.push(item); // Add to sorted list for order.
+
+ // Render |item| but don't actually add to the DOM yet. |this.items_|
+ // must be fully created to be able to find the right spot to insert.
+ item.update(data);
+
+ // Collapse redundant dates.
+ var prev = list[i - 1];
+ item.hideDate = !!prev && prev.date_string == data.date_string;
+
+ delete oldIdMap[id];
+ }
+
+ // Remove stale, previously rendered items from the DOM.
+ for (var id in oldIdMap) {
+ if (oldIdMap[id].parentNode)
+ oldIdMap[id].parentNode.removeChild(oldIdMap[id]);
+ delete oldIdMap[id];
+ }
+
+ for (var i = 0; i < this.items_.length; ++i) {
+ var item = this.items_[i];
+ if (item.parentNode) // Already in the DOM; skip.
+ continue;
+
+ var before = null;
+ // Find the next rendered item after this one, and insert before it.
+ for (var j = i + 1; !before && j < this.items_.length; ++j) {
+ if (this.items_[j].parentNode)
+ before = this.items_[j];
+ }
+ // If |before| is null, |item| will just get added at the end.
+ this.node_.insertBefore(item, before);
+ }
+
+ var noDownloadsOrResults = $('no-downloads-or-results');
+ noDownloadsOrResults.textContent = loadTimeData.getString(
+ this.searchText_ ? 'noSearchResults' : 'noDownloads');
+
+ var hasDownloads = this.size_() > 0;
+ this.node_.hidden = !hasDownloads;
+ noDownloadsOrResults.hidden = hasDownloads;
+
+ if (loadTimeData.getBoolean('allowDeletingHistory'))
+ $('clear-all').hidden = !hasDownloads || this.searchText_.length > 0;
+ },
+
+ /**
+ * @param {!downloads.Data} data
+ * @private
+ */
+ updateItem_: function(data) {
+ this.idMap_[data.id].update(data);
+ },
+
+ /**
+ * @return {number} The number of downloads shown on the page.
+ * @private
+ */
+ size_: function() {
+ return this.items_.length;
+ },
+
+ /** @private */
+ clearAll_: function() {
+ if (loadTimeData.getBoolean('allowDeletingHistory')) {
+ chrome.send('clearAll');
+ this.setSearchText_('');
+ }
+ },
+
+ /** @private */
+ onLoad_: function() {
+ this.node_ = $('downloads-display');
+
+ $('clear-all').onclick = function() {
+ this.clearAll_();
+ }.bind(this);
+
+ $('open-downloads-folder').onclick = function() {
+ chrome.send('openDownloadsFolder');
+ };
+
+ $('search-button').onclick = function() {
+ if (!$('search-term').hidden)
+ return;
+ $('clear-search').hidden = false;
+ $('search-term').hidden = false;
+ };
+
+ $('clear-search').onclick = function() {
+ $('clear-search').hidden = true;
+ $('search-term').hidden = true;
+ $('search-term').value = '';
+ this.setSearchText_('');
+ }.bind(this);
+
+ // TODO(dbeam): this previously used onsearch, which batches keystrokes
+ // together. This should probably be re-instated eventually.
+ $('search-term').oninput = function(e) {
+ this.setSearchText_($('search-term').value);
+ }.bind(this);
+
+ cr.ui.decorate('command', cr.ui.Command);
+ document.addEventListener('canExecute', this.onCanExecute_.bind(this));
+ document.addEventListener('command', this.onCommand_.bind(this));
+
+ this.setSearchText_('');
+ },
+
+ /**
+ * @param {Event} e
+ * @private
+ */
+ onCanExecute_: function(e) {
+ e = /** @type {cr.ui.CanExecuteEvent} */(e);
+ switch (e.command.id) {
+ case 'undo-command':
+ e.canExecute = !$('search-term').contains(document.activeElement);
+ break;
+ case 'clear-all-command':
+ e.canExecute = true;
+ break;
+ }
+ },
+
+ /**
+ * @param {Event} e
+ * @private
+ */
+ onCommand_: function(e) {
+ if (e.command.id == 'undo-command')
+ chrome.send('undo');
+ else if (e.command.id == 'clear-all-command')
+ this.clearAll_();
+ },
+ };
+
+ Manager.updateAll = function(list) {
+ Manager.getInstance().updateAll_(list);
+ };
+
+ Manager.updateItem = function(item) {
+ Manager.getInstance().updateItem_(item);
+ };
+
+ Manager.setSearchText = function(searchText) {
+ Manager.getInstance().setSearchText_(searchText);
+ };
+
+ Manager.onLoad = function() {
+ Manager.getInstance().onLoad_();
+ };
+
+ Manager.size = function() {
+ return Manager.getInstance().size_();
+ };
+
+ return {Manager: Manager};
+});
+
+window.addEventListener('load', downloads.Manager.onLoad);
diff --git a/chromium/chrome/browser/resources/md_downloads/strings.html b/chromium/chrome/browser/resources/md_downloads/strings.html
new file mode 100644
index 00000000000..ecbe002923b
--- /dev/null
+++ b/chromium/chrome/browser/resources/md_downloads/strings.html
@@ -0,0 +1,2 @@
+<link rel="import" href="chrome://resources/html/load_time_data.html">
+<script src="chrome://downloads/strings.js"></script>
diff --git a/chromium/chrome/browser/resources/md_settings/md_settings.css b/chromium/chrome/browser/resources/md_settings/md_settings.css
index ebd05b25add..baa0bff39e8 100644
--- a/chromium/chrome/browser/resources/md_settings/md_settings.css
+++ b/chromium/chrome/browser/resources/md_settings/md_settings.css
@@ -2,14 +2,6 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
-@font-face {
- font-family: 'Roboto';
- font-style: normal;
- font-weight: 400;
- src: local('Roboto Regular'), local('Roboto-Regular'), url(chrome://resources/roboto/roboto.woff2) format('woff2');
- unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
-}
-
body {
font-family: Roboto;
}
diff --git a/chromium/chrome/browser/resources/md_settings/md_settings.html b/chromium/chrome/browser/resources/md_settings/md_settings.html
index d47aa97a3a5..04c23429228 100644
--- a/chromium/chrome/browser/resources/md_settings/md_settings.html
+++ b/chromium/chrome/browser/resources/md_settings/md_settings.html
@@ -3,10 +3,11 @@
<head>
<meta charset="utf-8">
<title>Settings</title>
- <script src="chrome://md-settings/polymer_config.js"></script>
+ <script src="chrome://resources/js/polymer_config.js"></script>
<script src="chrome://resources/js/load_time_data.js"></script>
<script src="chrome://md-settings/strings.js"></script>
<link rel="import" href="chrome://md-settings/settings.html">
+ <link rel="stylesheet" href="chrome://resources/css/roboto.css">
<link rel="stylesheet" href="md_settings.css">
</head>
<body>
diff --git a/chromium/chrome/browser/resources/media_router/OWNERS b/chromium/chrome/browser/resources/media_router/OWNERS
index febfa7e3c3a..a138b5aae63 100644
--- a/chromium/chrome/browser/resources/media_router/OWNERS
+++ b/chromium/chrome/browser/resources/media_router/OWNERS
@@ -1,4 +1,5 @@
# Owners with committer privileges
+kmarshall@chromium.org
mfoltz@chromium.org
wez@chromium.org
@@ -6,4 +7,3 @@ wez@chromium.org
apacible@chromium.org
haibinlu@chromium.org
imcheng@chromium.org
-kmarshall@chromium.org
diff --git a/chromium/chrome/browser/resources/media_router/elements/icon/sad-face.png b/chromium/chrome/browser/resources/media_router/elements/icon/sad-face.png
index bb71fbe41c0..fb607504151 100644
--- a/chromium/chrome/browser/resources/media_router/elements/icon/sad-face.png
+++ b/chromium/chrome/browser/resources/media_router/elements/icon/sad-face.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/media_router/elements/icon/sad-face2x.png b/chromium/chrome/browser/resources/media_router/elements/icon/sad-face2x.png
index 972b7f0c2cd..3b22fd293cb 100644
--- a/chromium/chrome/browser/resources/media_router/elements/icon/sad-face2x.png
+++ b/chromium/chrome/browser/resources/media_router/elements/icon/sad-face2x.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css b/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css
index 04ecb39adf5..dc52f3900ef 100644
--- a/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css
+++ b/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css
@@ -8,20 +8,24 @@
color: white;
}
-.blocking-issue-header {
+#blocking-issue-buttons {
+ display: flex;
+}
+
+#blocking-issue-header {
display: flex;
overflow: hidden;
padding-top: 10px;
}
-.blocking-issue-message {
+#blocking-issue-message {
-webkit-padding-start: 8px;
color: rgb(125, 125, 125);
line-height: 1.125em;
vertical-align: middle;
}
-.blocking-issue-title {
+#blocking-issue-title {
-webkit-padding-start: 8px;
font-weight: bold;
line-height: 1.125em;
@@ -34,11 +38,7 @@
text-decoration: underline;
}
-#issue-buttons {
- display: flex;
-}
-
-.non-blocking-issue {
+#non-blocking-issue {
-webkit-padding-start: 12px;
background-color: rgb(249, 236, 191);
line-height: 1.25em;
@@ -46,7 +46,7 @@
padding-top: 6px;
}
-.sad-face {
+#sad-face {
-webkit-margin-start: 20px;
background-image: -webkit-image-set(
url(../icon/sad-face.png) 1x,
diff --git a/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html b/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html
index 36b35af0c67..0e3f178a365 100644
--- a/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html
+++ b/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html
@@ -1,46 +1,40 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/paper-button/paper-button.html">
-<polymer-element name="issue-banner">
-<template>
- <link rel="stylesheet" href="../../media_router_common.css">
- <link rel="stylesheet" href="issue_banner.css">
- <template if="{{issue.isBlocking}}">
- <div class="blocking-issue-header">
- <div class="sad-face"></div>
- <div>
- <div class="blocking-issue-title">{{issue.title}}</div>
- <div class="blocking-issue-message">{{issue.message}}</div>
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<dom-module name="issue-banner">
+ <link rel="import" type="css" href="../../media_router_common.css">
+ <link rel="import" type="css" href="issue_banner.css">
+ <template>
+ <div id="blocking-issue"
+ hidden$="[[computeIsBlockingIssueHidden_(issue)]]">
+ <div id="blocking-issue-header">
+ <div id="sad-face"></div>
+ <div>
+ <div id="blocking-issue-title">[[issue.title]]</div>
+ <div id="blocking-issue-message">[[issue.message]]</div>
+ </div>
</div>
- </div>
- <div id="issue-buttons">
- <template if="{{issue.optActionText}}">
- <paper-button raised class="button" title="{{issue.optActionType}}"
- on-click="{{onClickAction}}">
- {{issue.optActionText}}
+ <div id="blocking-issue-buttons">
+ <paper-button raised id="blocking-opt" class="button"
+ on-click="onClickOptAction_"
+ hidden$="[[computeOptionalActionHidden_(issue)]]">
+ <span>[[secondaryActionButtonText_]]</span>
+ </paper-button>
+ <paper-button raised id="blocking-default"
+ class="button action"
+ on-click="onClickDefaultAction_">
+ <span>[[defaultActionButtonText_]]</span>
</paper-button>
- </template>
- <paper-button raised class="button action"
- title="{{issue.defaultActionType}}"
- on-click="{{onClickAction}}">
- {{issue.defaultActionText}}
- </paper-button>
+ </div>
</div>
- </template>
- <template if="{{!issue.isBlocking}}">
- <div class="non-blocking-issue">
- <div>{{issue.message}}</div>
- <template if="{{issue.optActionText}}">
- <span class="issue-action" title="{{issue.optActionType}}"
- on-click="{{onClickAction}}">
- {{issue.optActionText}}
- </span>
- </template>
- <span class="issue-action" title="{{issue.defaultActionType}}"
- on-click="{{onClickAction}}">
- {{issue.defaultActionText}}
- </span>
+ <div id="non-blocking-issue"
+ hidden$="[[computeIsNonBlockingIssueHidden_(issue)]]">
+ <div id="non-blocking-message">[[issue.message]]</div>
+ <span id="non-blocking-opt" on-click="onClickOptAction_"
+ hidden$="[[computeOptionalActionHidden_(issue)]]"
+ class="issue-action">[[secondaryActionButtonText_]]</span>
+ <span id="non-blocking-default" on-click="onClickDefaultAction_"
+ class="issue-action">[[defaultActionButtonText_]]</span>
</div>
</template>
-</template>
<script src="issue_banner.js"></script>
-</polymer-element> \ No newline at end of file
+</dom-module>
diff --git a/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.js b/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.js
index 145afac398c..7b0a7edfb9f 100644
--- a/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.js
+++ b/chromium/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.js
@@ -4,31 +4,137 @@
// This Polymer element is used to show information about issues related
// to casting.
-Polymer('issue-banner', {
- publish: {
+Polymer({
+ is: 'issue-banner',
+
+ properties: {
/**
* The issue to show.
- *
- * @attribute issue
- * @type {media_router.Issue}
- * @default null
+ * @type {?media_router.Issue}
+ */
+ issue: {
+ type: Object,
+ value: null,
+ observer: 'updateActionButtonText_',
+ },
+
+ /**
+ * Maps an issue action type to the resource identifier of the text shown
+ * in the action button.
+ * This is a property of issue-banner because it is used in tests.
+ * @type {!Array<string>}
*/
- issue: null,
+ issueActionTypeToButtonTextResource_: {
+ type: Array,
+ value: function() {
+ return ['okButton', 'cancelButton', 'dismissButton',
+ 'learnMoreButton'];
+ },
+ },
+
+ /**
+ * The text shown in the default action button.
+ * @private {string}
+ */
+ defaultActionButtonText_: {
+ type: String,
+ value: '',
+ },
+
+ /**
+ * The text shown in the secondary action button.
+ * @private {string}
+ */
+ secondaryActionButtonText_: {
+ type: String,
+ value: '',
+ },
+ },
+
+ /**
+ * @param {?media_router.Issue} issue
+ * @return {boolean} Whether or not to hide the blocking issue UI.
+ * @private
+ */
+ computeIsBlockingIssueHidden_: function(issue) {
+ return !issue || !issue.isBlocking;
},
/**
- * Fires an issue-action-click event. This is called when an issue action
- * is clicked.
+ * Returns true to hide the non-blocking issue UI, false to show it.
*
- * @param {!Event} event The event object.
- * @param {Object} detail The details of the event.
- * @param {!Element} sender Reference to clicked node.
+ * @param {?media_router.Issue} issue
+ * @private
*/
- onClickAction: function(event, detail, sender) {
+ computeIsNonBlockingIssueHidden_: function(issue) {
+ return !issue || issue.isBlocking;
+ },
+
+ /**
+ * @param {?media_router.Issue} issue
+ * @return {boolean} Whether or not to hide the non-blocking issue UI.
+ * @private
+ */
+ computeOptionalActionHidden_: function(issue) {
+ return !issue || !issue.secondaryActionType;
+ },
+
+ /**
+ * Fires an issue-action-click event.
+ *
+ * @param {number} actionType The type of issue action.
+ * @private
+ */
+ fireIssueActionClick_: function(actionType) {
this.fire('issue-action-click', {
id: this.issue.id,
- actionType: parseInt(sender.title),
- helpURL: this.issue.helpURL
+ actionType: actionType,
+ helpPageId: this.issue.helpPageId
});
},
+
+ /**
+ * Called when a default issue action is clicked.
+ *
+ * @param {!Event} event The event object.
+ * @private
+ */
+ onClickDefaultAction_: function(event) {
+ this.fireIssueActionClick_(this.issue.defaultActionType);
+ },
+
+ /**
+ * Called when an optional issue action is clicked.
+ *
+ * @param {!Event} event The event object.
+ * @private
+ */
+ onClickOptAction_: function(event) {
+ this.fireIssueActionClick_(this.issue.secondaryActionType);
+ },
+
+ /**
+ * Called when |issue| is updated. This updates the default and secondary
+ * action button text.
+ *
+ * @private
+ */
+ updateActionButtonText_: function() {
+ var defaultText = '';
+ var secondaryText = '';
+ if (this.issue) {
+ defaultText = loadTimeData.getString(
+ this.issueActionTypeToButtonTextResource_[
+ this.issue.defaultActionType]);
+
+ if (this.issue.secondaryActionType) {
+ secondaryText = loadTimeData.getString(
+ this.issueActionTypeToButtonTextResource_[
+ this.issue.secondaryActionType]);
+ }
+ }
+
+ this.defaultActionButtonText_ = defaultText;
+ this.secondaryActionButtonText_ = secondaryText;
+ },
});
diff --git a/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.css b/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.css
index edf4c1e96c0..1eaa302f03f 100644
--- a/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.css
+++ b/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.css
@@ -2,55 +2,86 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
-.cast-mode {
- -webkit-padding-start: 5px;
- cursor: pointer;
- font-size: 1.0em;
+.active-sink {
+ color: rgb(33, 150, 243);
}
-.cast-mode:hover {
- background-color: rgb(187, 206, 236);
- border: 0;
+#container-header.cast-mode {
+ /* TODO(kdresner): Update this when we get a real color. */
+ background-color: rgb(244, 67, 54);
}
-#cast-mode-list {
- -webkit-user-select: none;
- color: rgb(44, 44, 44);
- margin: 0;
+#container-header.filter {
+ background-color: rgb(57, 73, 171);
}
-#container-header {
- background-color: rgb(214, 214, 214);
+#container-header.route-details {
+ display: none;
}
-.route {
- color: rgb(119, 119, 119);
+#container-header.sink-list {
+ background-color: rgb(33, 150, 243);
+}
+
+#device-missing {
+ align-items: center;
+ color: rgb(33, 150, 243);
+ display: flex;
+ height: 150px;
+ justify-content: center;
}
#header-text {
- -webkit-padding-start: 20px;
+ -webkit-padding-start: 5px;
flex-grow: 1;
- font-size: 1.25em;
+ font-size: 1.4em;
margin: 0;
}
-.sink {
- -webkit-user-select: none;
+.route {
+ color: rgb(150, 150, 150);
+}
+
+paper-item {
cursor: pointer;
font-size: 1.0em;
+ line-height: 0;
+ min-height: 0;
+ padding: 14px 0;
}
-.sink:hover {
- background-color: rgb(187, 206, 236);
+paper-item:hover {
+ background-color: rgb(238, 238, 238);
border: 0;
}
-.sink-icon {
- -webkit-padding-end: 10px;
+paper-item iron-icon {
+ -webkit-padding-end: 16px;
+ -webkit-padding-start: 20px;
+ height: 16px;
+ width: 16px;
+}
+
+paper-menu {
+ -webkit-user-select: none;
+ color: rgb(0, 0, 0);
+ padding: 0;
+}
+
+.sink-content {
+ display: flex;
+ flex-direction: row;
}
#sink-list {
- margin: 0;
max-height: 275px;
overflow-y: scroll;
}
+
+.sink-text {
+ line-height: normal;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: 250px;
+} \ No newline at end of file
diff --git a/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html b/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html
index 5df70ff579b..e2df8608cc4 100644
--- a/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html
+++ b/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html
@@ -1,70 +1,89 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/core-icon/core-icon.html">
-<link rel="import" href="chrome://resources/polymer/core-icons/hardware-icons.html">
-<link rel="import" href="chrome://resources/polymer/core-menu/core-menu.html">
-<link rel="import" href="chrome://resources/polymer/core-toolbar/core-toolbar.html">
-<link rel="import" href="chrome://resources/polymer/paper-icon-button/paper-icon-button.html">
-<link rel="import" href="chrome://resources/polymer/paper-item/paper-item.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/hardware-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-item/paper-item.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-menu/paper-menu.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-toolbar/paper-toolbar.html">
<link rel="import" href="../issue_banner/issue_banner.html">
<link rel="import" href="../route_details/route_details.html">
-<polymer-element name="media-router-container">
-<template>
- <link rel="stylesheet" href="media_router_container.css">
- <core-toolbar id="container-header"
- hidden?="{{ {state: currentView_, castModeHidden: castModeHidden_} | isHeaderHidden}}">
- <div id="header-text">
- <span hidden?="{{ {state: currentView_, castModeHidden: castModeHidden_} | isSinkPickerHidden}}">
- {{headerText}}
- </span>
- <span i18n-content="selectCastModeHeader"
- hidden?="{{ {castModeHidden: castModeHidden_} | isCastModeHidden }}">
- </span>
- </div>
- <paper-icon-button on-click="{{toggleCastMode}}"
- icon="{{ {castModeHidden: castModeHidden_} | getDropDownIcon}}">
- </paper-icon-button>
- <paper-icon-button icon="close" on-click="{{closeButtonClicked}}">
- </paper-icon-button>
- </core-toolbar>
- <issue-banner id="issue-banner" issue="{{issue}}"
- hidden?="{{ {state: currentView_, issue: issue, castModeHidden: castModeHidden_ } | isIssueBannerHidden}}">
- </issue-banner>
- <!-- TODO(apacible): selectedAttribute here is a workaround for
- https://github.com/Polymer/polymer/issues/946. Remove here and elsewhere when
- core-menu is updated. -->
- <core-menu id="cast-mode-list" selectedAttribute=""
- hidden?="{{ {castModeHidden: castModeHidden_} | isCastModeHidden }}">
- <template repeat="{{mode in castModeList}}">
- <paper-item class="cast-mode" on-click="{{onCastModeSelected}}">
- {{mode.description}}
- </paper-item>
- </template>
- </core-menu>
- <route-details id="route-details"
- hidden?="{{ {state: currentView_} | isRouteDetailsHidden}}"
- route="{{currentRoute_}}" sink="{{sinkMap_[[currentRoute_.sinkId]]}}"
- on-back-click="{{showSinkPickerView}}"
- on-close-route-click="{{showSinkPickerView}}">
- </route-details>
- <core-menu id="sink-list" selectedAttribute=""
- hidden?="{{ {state: currentView_, castModeHidden: castModeHidden_} | isSinkPickerHidden}}">
- <template repeat="{{sink in sinkList}}">
- <paper-item class="sink" on-click="{{onSinkClick}}">
- <!-- TODO(apacible): Show device icon based on device type. -->
- <core-icon class="sink-icon" icon="hardware:chromecast"></core-icon>
- <div>
- {{sink.name}}
- <template bind="{{sinkToRouteMap_[sink.id] as route}}">
- <template if="{{route}}">
- <div class="route">
- {{route.title}}
+<dom-module id="media-router-container">
+ <link rel="import" type="css" href="media_router_container.css">
+ <template>
+ <paper-toolbar id="container-header"
+ class$="[[currentView_]]"
+ hidden$="[[computeHeaderHidden_(currentView_, issue)]]">
+ <div id="header-text">
+ <span
+ hidden$="[[computeSinkListViewHidden_(currentView_, issue)]]"
+ >[[headerText]]</span>
+ <span hidden$="[[computeCastModeHidden_(currentView_)]]"
+ >[[selectCastModeHeaderText_]]</span>
+ </div>
+ <paper-icon-button icon="[[computeArrowDropIcon_(currentView_)]]"
+ on-click="toggleCastModeHidden_">
+ </paper-icon-button>
+ <paper-icon-button icon="close" on-click="onCloseButtonClick_">
+ </paper-icon-button>
+ </paper-toolbar>
+ <issue-banner id="issue-banner" issue="[[issue]]"
+ hidden$="[[computeIssueBannerHidden_(currentView_, issue)]]">
+ </issue-banner>
+ <paper-menu id="cast-mode-list"
+ hidden$="[[computeCastModeHidden_(currentView_)]]">
+ <template is="dom-repeat" id="castModeList" items="[[castModeList]]">
+ <paper-item class="cast-mode" on-click="onCastModeClick_">
+ <!-- TODO(apacible): Show icon based on cast mode. -->
+ <iron-icon icon="tab"></iron-icon>
+ <div>
+ <span>[[item.description]]</span>
+ </div>
+ </paper-item>
+ </template>
+ </paper-menu>
+ <route-details id="route-details" route="[[currentRoute_]]"
+ sink="[[computeSinkForCurrentRoute_(currentRoute_)]]"
+ on-back-click="showSinkList_"
+ on-close-route-click="showSinkList_"
+ hidden$="[[computeRouteDetailsHidden_(currentView_, issue)]]">
+ </route-details>
+ <!-- TODO(kdresner): Don't show this until we've given a little
+ bit of time to actually discover devices. Maybe show a spinner
+ during this time. -->
+ <div hidden$="[[computeSinkListViewHidden_(currentView_, issue)]]">
+ <div id="device-missing"
+ hidden$="[[!computeSinkListHidden_(sinkList)]]">
+ <span>[[deviceMissingText_]]</span>
+ </div>
+ <paper-menu id="sink-list"
+ hidden$="[[computeSinkListHidden_(currentView_, issue)]]">
+ <template is="dom-repeat" id="sinkList" items="[[sinkList]]">
+ <paper-item class="sink" on-click="onSinkClick_">
+ <div class="sink-content">
+ <div>
+ <!-- TODO(apacible): Show device icon based on device type. -->
+ <iron-icon icon="hardware:tv"
+ class$="[[computeSinkIconClass_(item.id, sinkToRouteMap_)]]">
+ </iron-icon>
+ </div>
+ <div>
+ <div class="sink-text">
+ <span>[[item.name]]</span>
+ </div>
+ <div class="sink-text route"
+ hidden$="[[computeRouteInSinkListHidden_(item.id,
+ sinkToRouteMap_)]]">
+ <span>[[
+ computeRouteInSinkListValue_(item.id, sinkToRouteMap_)
+ ]]</span>
+ </div>
</div>
- </template>
- </template>
- </div>
- </paper-item>
- </template>
- </core-menu>
-</template>
-<script src="media_router_container.js"></script>
-</polymer-element>
+ </div>
+ </paper-item>
+ </template>
+ </paper-menu>
+ </div>
+ </template>
+ <script src="media_router_container.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js b/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js
index 7561a7c43ab..4020e723640 100644
--- a/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js
+++ b/chromium/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js
@@ -7,135 +7,158 @@
* The possible states of media-router-container. Used to determine which
* components of media-router-container to show.
*
- * @enum {number}
+ * @enum {string}
*/
var MediaRouterContainerView = {
- BLOCKING_ISSUE: 0,
- ROUTE_DETAILS: 1,
- SINK_PICKER: 2,
+ CAST_MODE_LIST: 'cast-mode-list',
+ FILTER: 'filter',
+ ROUTE_DETAILS: 'route-details',
+ SINK_LIST: 'sink-list',
};
// This Polymer element contains the entire media router interface. It handles
// hiding and showing specific components.
-Polymer('media-router-container', {
- publish: {
+Polymer({
+ is: 'media-router-container',
+
+ properties: {
/**
* The list of CastModes to show.
- *
- * @attribute castModeList
- * @type {?Array<!media_router.CastMode>}
- * @default null
+ * @type {!Array<!media_router.CastMode>}
*/
- castModeList: null,
+ castModeList: {
+ type: Array,
+ value: function() {
+ return [];
+ },
+ },
/**
- * The header text.
- *
- * @attribute headerText
- * @type {?string}
- * @default null
+ * The current route.
+ * @private {?media_router.Route}
*/
- headerText: null,
+ currentRoute_: {
+ type: Object,
+ value: null,
+ },
/**
- * The issue to show.
- *
- * @attribute issue
- * @type {?media_router.Issue}
- * @default null
+ * The current view to be shown.
+ * @private {!MediaRouterContainerView}
*/
- issue: null,
+ currentView_: {
+ type: String,
+ value: MediaRouterContainerView.SINK_LIST,
+ },
/**
- * List of current routes.
- *
- * @attribute routeList
- * @type {?Array<!media_router.Route>}
- * @default null
+ * The text for when there are no devices.
+ * @private {string}
*/
- routeList: null,
+ deviceMissingText_: {
+ type: String,
+ value: loadTimeData.getString('deviceMissing'),
+ },
/**
- * List of discovered sinks.
- *
- * @attribute sinkList
- * @type {?Array<!media_router.Sink>}
- * @default null
+ * The header text.
+ * @type {string}
*/
- sinkList: null,
- },
+ headerText: {
+ type: String,
+ value: '',
+ },
- observe: {
- routeList: 'rebuildRouteMaps',
- selectedCastModeValue_: 'hideCastMode',
- sinkList: 'rebuildSinkMap',
- },
-
- created: function() {
- this.castModeList = [];
- this.routeList = [];
- this.routeMap_ = {};
- this.sinkList = [];
- this.sinkMap_ = {};
- this.sinkToRouteMap_ = {};
- },
+ /**
+ * The issue to show.
+ * @type {?media_router.Issue}
+ */
+ issue: {
+ type: Object,
+ value: null,
+ },
- /**
- * Whether or not the cast-mode-picker is currently hidden.
- * @private {boolean}
- * @default true
- */
- castModeHidden_: true,
+ /**
+ * The list of current routes.
+ * @type {!Array<!media_router.Route>}
+ */
+ routeList: {
+ type: Array,
+ value: function() {
+ return [];
+ },
+ observer: 'rebuildRouteMaps_',
+ },
- /**
- * The current route.
- * @private {?media_router.Route}
- * @default null
- */
- currentRoute_: null,
+ /**
+ * Maps media_router.Route.id to corresponding media_router.Route.
+ * @private {!Object<!string, !media_router.Route>}
+ */
+ routeMap_: {
+ type: Object,
+ value: function() {
+ return {};
+ },
+ },
- /**
- * The current view to be shown.
- * @private {!MediaRouterContainerView}
- * @default MediaRouterContainerView.SINK_PICKER
- */
- currentView_: MediaRouterContainerView.SINK_PICKER,
+ /**
+ * The header text when the cast mode list is shown.
+ * @private {string}
+ */
+ selectCastModeHeaderText_: {
+ type: String,
+ value: loadTimeData.getString('selectCastModeHeader'),
+ },
- /**
- * The previous view that was shown.
- * @private {!MediaRouterContainerView}
- * @default MediaRouterContainerView.SINK_PICKER
- */
- previousView_: MediaRouterContainerView.SINK_PICKER,
+ /**
+ * The value of the selected cast mode in |castModeList|, or -1 if the
+ * user has not explicitly selected a cast mode.
+ * @private {number}
+ */
+ selectedCastModeValue_: {
+ type: Number,
+ value: -1,
+ observer: 'showSinkList_',
+ },
- /**
- * Maps media_router.Route.id to corresponding media_router.Route.
- * @private {?Object<!string, !media_router.Route>}
- * @default null
- */
- routeMap_: null,
+ /**
+ * The list of available sinks.
+ * @type {!Array<!media_router.Sink>}
+ */
+ sinkList: {
+ type: Array,
+ value: function() {
+ return [];
+ },
+ observer: 'rebuildSinkMap_',
+ },
- /**
- * The value of the selected cast mode in |castModeList|, or -1 if the
- * user has not explicitly selected a mode.
- * @private {number}
- * @default -1
- */
- selectedCastModeValue_: -1,
+ /**
+ * Maps media_router.Sink.id to corresponding media_router.Sink.
+ * @private {!Object<!string, !media_router.Sink>}
+ */
+ sinkMap_: {
+ type: Object,
+ value: function() {
+ return {};
+ },
+ },
- /**
- * Maps media_router.Sink.id to corresponding media_router.Sink.
- * @private {?Object<!string, !media_router.Sink>}
- * @default null
- */
- sinkMap_: null,
+ /**
+ * Maps media_router.Sink.id to corresponding media_router.Route.
+ * @private {!Object<!string, ?media_router.Route>}
+ */
+ sinkToRouteMap_: {
+ type: Object,
+ value: function() {
+ return {};
+ },
+ },
+ },
- /**
- * Maps media_router.Sink.id to corresponding media_router.Route.
- * @private {?Object<!string, ?media_router.Route>}
- * @default null
- */
- sinkToRouteMap_: null,
+ ready: function() {
+ this.addEventListener('close-route-click', this.removeRoute);
+ },
/**
* Adds |route| to |routeList|.
@@ -155,216 +178,241 @@ Polymer('media-router-container', {
},
/**
- * Filter that returns whether or not the cast modes should be hidden.
- *
- * @param {{castModeHidden: boolean}} value The parameters passed into this
- * filter.
- * Parameters in |value|:
- * castModeHidden - Whether or not the cast modes are currently hidden.
+ * @param {!MediaRouterContainerView} view The current view.
+ * @return {string} The current arrow-drop-* icon to use.
+ * @private
*/
- isCastModeHidden: function(value) {
- return value['castModeHidden'];
+ computeArrowDropIcon_: function(view) {
+ return view == MediaRouterContainerView.CAST_MODE_LIST ?
+ 'arrow-drop-up' : 'arrow-drop-down';
},
/**
- * Filter that returns whether or not the header should be hidden.
- *
- * @param {{state: !MediaRouterContainerView, castModeHidden: boolean}} value
- * The parameters passed into this filter.
- * Parameters in |value|:
- * state - The current state of media-router-container.
- * castModeHidden - Whether or not the cast modes are currently hidden.
+ * @param {!MediaRouterContainerView} view The current view.
+ * @return {boolean} Whether or not to hide the cast mode list.
+ * @private
*/
- isHeaderHidden: function(value) {
- return value['state'] != MediaRouterContainerView.SINK_PICKER &&
- value['castModeHidden'];
+ computeCastModeHidden_: function(view) {
+ return view != MediaRouterContainerView.CAST_MODE_LIST;
},
/**
- * Filter that returns whether or not the issue banner should be hidden.
- *
- * @param {{state: !MediaRouterContainerView,
- * issue: !media_router.Issue,
- * castModeHidden: boolean}}
- * value The parameters passed into this filter.
- * Parameters in |value|:
- * state - The current state of media-router-container.
- * issue - The current value of |issue|.
- * castModeHidden - Whether or not the cast modes are currently hidden.
+ * @param {!MediaRouterContainerView} view The current view.
+ * @param {?media_router.Issue} issue The current issue.
+ * @return {boolean} Whether or not to hide the header.
+ * @private
*/
- isIssueBannerHidden: function(value) {
- return (!value['issue'] &&
- value['state'] != MediaRouterContainerView.BLOCKING_ISSUE) ||
- !value['castModeHidden'];
+ computeHeaderHidden_: function(view, issue) {
+ return view == MediaRouterContainerView.ROUTE_DETAILS ||
+ (view == MediaRouterContainerView.SINK_LIST &&
+ issue && issue.isBlocking);
},
/**
- * Filter that returns whether or not the route details should be hidden.
- *
- * @param {{state: !MediaRouterContainerView}} value The parameters passed
- * into this filter.
- * Parameters in |value|:
- * state - The current state of media-router-container.
+ * @param {!MediaRouterContainerView} view The current view.
+ * @param {?media_router.Issue} issue The current issue.
+ * @return {boolean} Whether or not to hide the issue banner.
+ * @private
*/
- isRouteDetailsHidden: function(value) {
- return value['state'] != MediaRouterContainerView.ROUTE_DETAILS;
+ computeIssueBannerHidden_: function(view, issue) {
+ return !issue || view == MediaRouterContainerView.CAST_MODE_LIST;
},
/**
- * Filter that returns whether or not the sink picker should be hidden.
- *
- * @param {{state: !MediaRouterContainerView, castModeHidden: boolean}} value
- * The parameters passed into this filter.
- * Parameters in |value|:
- * state - The current state of media-router-container.
- * castModeHidden - Whether or not the cast modes are currently hidden.
+ * @param {!MediaRouterContainerView} view The current view.
+ * @param {?media_router.Issue} issue The current issue.
+ * @return {boolean} Whether or not to hide the route details.
+ * @private
*/
- isSinkPickerHidden: function(value) {
- return value['state'] != MediaRouterContainerView.SINK_PICKER ||
- !value['castModeHidden'];
+ computeRouteDetailsHidden_: function(view, issue) {
+ return view != MediaRouterContainerView.ROUTE_DETAILS ||
+ (issue && issue.isBlocking);
},
/**
- * Creates a new route if |route| is null.
- *
- * @param {!media_router.Sink} sink The sink to use.
- * @param {!media_router.Route} route The current route tied to |sink|.
+ * @param {!string} sinkId A sink ID.
+ * @return {boolean} Whether or not to hide the route info in the sink list
+ * that is associated with |sinkId|.
+ * @private
*/
- maybeCreateRoute: function(sink, route) {
- if (route) {
- this.showRouteDetailsView();
- } else {
- this.fire('create-route', {
- sinkId: sink.id,
- selectedCastModeValue: this.selectedCastModeValue_
- });
- }
+ computeRouteInSinkListHidden_: function(sinkId, sinkToRouteMap) {
+ return !sinkToRouteMap[sinkId];
},
/**
- * Filter that returns the arrow-drop-* icon to show.
- *
- * @param {{castModeHidden: boolean}} value The parameters passed into this
- * filter.
- * Parameters in |value|:
- * castModeHidden - Whether or not the cast mode is currently hidden.
+ * @param {!string} sinkId A sink ID.
+ * @return {string} The title value of the route associated with |sinkId|.
+ * @private
*/
- getDropDownIcon: function(value) {
- return value['castModeHidden'] ? 'arrow-drop-down' : 'arrow-drop-up';
+ computeRouteInSinkListValue_: function(sinkId, sinkToRouteMap) {
+ var route = sinkToRouteMap[sinkId];
+ return route ? route.title : '';
},
/**
- * Hides cast-mode-picker.
+ * @param {?media_router.Route} route The current route.
+ * @return {?media_router.Sink} The sink associated with |route|.
+ * @private
*/
- hideCastMode: function() {
- this.castModeHidden_ = true;
+ computeSinkForCurrentRoute_: function(route) {
+ return route ? this.sinkMap_[route.sinkId] : null;
},
/**
- * Called when |issue| has changed. Shows issue-banner if there exists an
- * issue to show. If |newValue| is null, then show the previous view.
- *
- * @param {?media_router.Issue} oldValue The previous value for |issue|.
- * @param {?media_router.Issue} newValue The new value for |issue|.
+ * @param {!string} sinkId A sink ID.
+ * @param {!Object<!string, ?media_router.Route>} sinkToRouteMap
+ * Maps media_router.Sink.id to corresponding media_router.Route.
+ * @return {string} The class for the sink icon.
+ * @private
*/
- issueChanged: function(oldValue, newValue) {
- if (newValue) {
- // Checks that |newValue| is blocking. Also checks that previous issue
- // either did not exist or was not a blocking issue.
- if (newValue.isBlocking && (!oldValue || !oldValue.isBlocking)) {
- this.previousView_ = this.currentView_;
- this.currentView_ = MediaRouterContainerView.BLOCKING_ISSUE;
- }
- } else {
- // Return to the previous view.
- this.currentView_ = this.previousView_;
- }
+ computeSinkIconClass_: function(sinkId, sinkToRouteMap) {
+ return sinkToRouteMap[sinkId] ? 'active-sink' : '';
},
/**
- * Fires a close-button-click event. Called when the close button is clicked.
+ * @param {!Array<!media_router.Sink>} The list of sinks.
+ * @return {boolean} Whether or not to hide the sink list.
+ * @private
*/
- closeButtonClicked: function() {
- this.fire('close-button-click');
+ computeSinkListHidden_: function(sinkList) {
+ return sinkList.length == 0;
},
/**
- * Updates |headerText| and |selectedCastModeValue_|. This is called when one
- * of the cast modes has been selected.
+ * @param {!MediaRouterContainerView} view The current view.
+ * @param {?media_router.Issue} issue The current issue.
+ * @return {boolean} Whether or not to hide entire the sink list view.
+ * @private
+ */
+ computeSinkListViewHidden_: function(view, issue) {
+ return view != MediaRouterContainerView.SINK_LIST ||
+ (issue && issue.isBlocking);
+ },
+
+ /**
+ * Creates a new route if |route| is null. Otherwise, shows the route
+ * details.
+ *
+ * @param {!media_router.Sink} sink The sink to use.
+ * @param {?media_router.Route} route The current route tied to |sink|.
+ * @private
+ */
+ showOrCreateRoute_: function(sink, route) {
+ if (route) {
+ this.showRouteDetails_();
+ } else {
+ this.fire('create-route', {
+ sinkId: sink.id,
+ selectedCastModeValue: this.selectedCastModeValue_
+ });
+ }
+ },
+
+ /**
+ * Handles a cast mode selection. Updates |headerText| and
+ * |selectedCastModeValue_|.
*
* @param {!Event} event The event object.
- * @param {!Object} detail The details of the event.
- * @param {!Element} sender Reference to clicked node.
+ * @private
*/
- onCastModeSelected: function(event, detail, sender) {
- var clickedMode = event.target.templateInstance.model.mode;
+ onCastModeClick_: function(event) {
+ var clickedMode = this.$.castModeList.itemForElement(event.target);
this.headerText = clickedMode.title;
this.selectedCastModeValue_ = clickedMode.type;
},
/**
+ * Handles a click on the close button by firing a close-button-click event.
+ *
+ * @private
+ */
+ onCloseButtonClick_: function() {
+ this.fire('close-button-click');
+ },
+
+ /**
* Called when a sink is clicked. Updates |currentRoute_|.
*
* @param {!Event} event The event object.
- * @param {Object} detail The details of the event.
- * @param {!Element} sender Reference to clicked node.
+ * @private
*/
- onSinkClick: function(event, detail, sender) {
- var clickedSink = event.target.templateInstance.model.sink;
+ onSinkClick_: function(event) {
+ var clickedSink = this.$.sinkList.itemForElement(event.target);
this.currentRoute_ = this.sinkToRouteMap_[clickedSink.id];
- this.maybeCreateRoute(clickedSink, this.currentRoute_);
+ this.showOrCreateRoute_(clickedSink, this.currentRoute_);
},
/**
* Called when |routeList| is updated. Rebuilds |routeMap_| and
* |sinkToRouteMap_|.
+ *
+ * @private
*/
- rebuildRouteMaps: function() {
- // Reset |routeMap_| and |sinkToRouteMap_|.
+ rebuildRouteMaps_: function() {
this.routeMap_ = {};
- this.sinkToRouteMap_ = {};
+ // Rebuild |sinkToRouteMap_| with a temporary map to avoid firing the
+ // computed functions prematurely.
+ var tempSinkToRouteMap = {};
- // Rebuild |routeMap_| and |sinkToRouteMap_|.
this.routeList.forEach(function(route) {
this.routeMap_[route.id] = route;
- this.sinkToRouteMap_[route.sinkId] = route;
+ tempSinkToRouteMap[route.sinkId] = route;
}, this);
+
+ this.sinkToRouteMap_ = tempSinkToRouteMap;
},
/**
* Called when |sinkList| is updated. Rebuilds |sinkMap_|.
+ *
+ * @private
*/
- rebuildSinkMap: function() {
- // Reset |sinkMap_|.
+ rebuildSinkMap_: function() {
this.sinkMap_ = {};
- // Rebuild |sinkMap_|.
this.sinkList.forEach(function(sink) {
this.sinkMap_[sink.id] = sink;
}, this);
},
/**
- * Updates |currentView_| to ROUTE_DETAILS.
+ * Shows the cast mode list.
+ *
+ * @private
+ */
+ showCastModeList_: function() {
+ this.currentView_ = MediaRouterContainerView.CAST_MODE_LIST;
+ },
+
+ /**
+ * Shows the route details.
+ *
+ * @private
*/
- showRouteDetailsView: function() {
- this.previousView_ = this.currentView_;
+ showRouteDetails_: function() {
this.currentView_ = MediaRouterContainerView.ROUTE_DETAILS;
},
/**
- * Updates |currentView_| to SINK_PICKER.
+ * Shows the sink list.
+ *
+ * @private
*/
- showSinkPickerView: function() {
- this.previousView_ = this.currentView_;
- this.currentView_ = MediaRouterContainerView.SINK_PICKER;
+ showSinkList_: function() {
+ this.currentView_ = MediaRouterContainerView.SINK_LIST;
},
/**
- * Toggles |castModeHidden_|.
+ * Toggles |currentView_| between CAST_MODE_LIST and SINK_LIST.
+ *
+ * @private
*/
- toggleCastMode: function() {
- this.castModeHidden_ = !this.castModeHidden_;
+ toggleCastModeHidden_: function() {
+ if (this.currentView_ == MediaRouterContainerView.CAST_MODE_LIST) {
+ this.showSinkList_();
+ } else {
+ this.showCastModeList_();
+ }
},
});
})();
diff --git a/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.css b/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.css
index d53c854e41d..436c5e3ec55 100644
--- a/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.css
+++ b/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.css
@@ -2,33 +2,29 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
-#back-to-devices {
- -webkit-padding-start: 10px;
- color: rgb(20, 86, 218);
- font-weight: bold;
- line-height: 2em;
-}
-
-#back-to-devices:hover {
- cursor: pointer;
- text-decoration: underline;
+#close-route-button {
+ background-color: white;
+ color: rgb(33, 150, 243);
+ text-align: -webkit-right;
}
-hr {
- margin: 0;
+#route-details-header {
+ background-color: rgb(33, 150, 243);
+ font-size: 1.4em;
}
-.route {
- -webkit-padding-start: 10px;
+#route-information {
+ -webkit-padding-start: 30px;
+ height: 75px;
line-height: 1.125em;
}
-.route-status {
+#route-status {
color: rgb(125, 125, 125);
margin: 8px 0;
}
-.route-title {
+#route-title {
font-weight: bold;
margin: 8px 0;
overflow: hidden;
diff --git a/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.html b/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.html
index 9c7baad7701..6f8fba9581d 100644
--- a/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.html
+++ b/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.html
@@ -1,28 +1,29 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/paper-button/paper-button.html">
-<polymer-element name="route-details">
-<template>
- <link rel="stylesheet" href="../../media_router_common.css">
- <link rel="stylesheet" href="route_details.css">
- <div>
- <div id="back-to-devices" on-click="{{back}}">
- <span i18n-content="backToSinkPicker"></span>
- </div>
- <hr>
- <div class="route">
- <div class="route-title">
- {{route.title}}
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-toolbar/paper-toolbar.html">
+<dom-module id="route-details">
+ <link rel="import" type="css" href="../../media_router_common.css">
+ <link rel="import" type="css" href="route_details.css">
+ <template>
+ <paper-toolbar id="route-details-header">
+ <paper-icon-button icon="arrow-back" id="back-button" on-click="back_">
+ </paper-icon-button>
+ <span id="sink-name">[[sink.name]]</span>
+ </paper-toolbar>
+ <div id="route-information">
+ <div id="route-title">
+ <span>[[route.title]]</span>
</div>
- <div class="route-status">
- {{activityStatus_}}
+ <div id="route-status">
+ <span>[[activityStatus_]]</span>
</div>
</div>
- </div>
- <div>
- <paper-button raised class="button" on-click="{{closeRoute}}"
- i18n-content="stopCastingButton">
+ <paper-button raised id="close-route-button" class="button"
+ on-click="closeRoute_">
+ <span>[[stopCastingButtonText_]]</span>
</paper-button>
- </div>
-</template>
+ </template>
<script src="route_details.js"></script>
-</polymer-element>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.js b/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.js
index 5454d0e211c..bc96928dff9 100644
--- a/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.js
+++ b/chromium/chrome/browser/resources/media_router/elements/route_details/route_details.js
@@ -4,57 +4,73 @@
// This Polymer element shows information from media that is currently cast
// to a device. It is assumed that |route| and |sink| correspond to each other.
-Polymer('route-details', {
- publish: {
+Polymer({
+ is: 'route-details',
+
+ properties: {
+ /**
+ * The text for the current casting activity status.
+ * @private {string}
+ */
+ activityStatus_: {
+ type: String,
+ value: '',
+ },
+
/**
* The route to show.
- *
- * @attribute route
- * @type {media_router.Route}
- * @default null
+ * @type {?media_router.Route}
*/
- route: null,
+ route: {
+ type: Object,
+ value: null,
+ },
/**
* The sink to show.
- *
- * @attribute sink
- * @type {media_router.Sink}
- * @default null
+ * @type {?media_router.Sink}
*/
- sink: null,
- },
+ sink: {
+ type: Object,
+ value: null,
+ observer: 'updateActivityStatus_',
+ },
- observe: {
- sink: 'updateActivityStatus',
+ /**
+ * The text for the stop casting button.
+ * @private {string}
+ */
+ stopCastingButtonText_: {
+ type: String,
+ value: loadTimeData.getString('stopCastingButton'),
+ },
},
/**
- * The current casting activity status.
- * @private {string}
- * @default ''
- */
- activityStatus_: '',
-
- /**
* Fires a back-click event. This is called when the back link is clicked.
+ *
+ * @private
*/
- back: function() {
+ back_: function() {
this.fire('back-click');
},
/**
* Fires a close-route-click event. This is called when the button to close
* the current route is clicked.
+ *
+ * @private
*/
- closeRoute: function() {
+ closeRoute_: function() {
this.fire('close-route-click', {route: this.route});
},
/**
* Updates |activityStatus_| with the name of |sink|.
+ *
+ * @private
*/
- updateActivityStatus: function() {
+ updateActivityStatus_: function() {
this.activityStatus_ = this.sink ?
loadTimeData.getStringF('castingActivityStatus', this.sink.name) : '';
}
diff --git a/chromium/chrome/browser/resources/media_router/media_router.html b/chromium/chrome/browser/resources/media_router/media_router.html
index bd31f3a7d81..267489a2f30 100644
--- a/chromium/chrome/browser/resources/media_router/media_router.html
+++ b/chromium/chrome/browser/resources/media_router/media_router.html
@@ -4,17 +4,18 @@
<meta charset="utf-8">
<title i18n-content="mediaRouterTitle"></title>
- <link rel="stylesheet" href="media_router.css">
- <link rel="import" href="chrome://media-router/elements/media_router_container/media_router_container.html">
-
+ <script src="chrome://resources/js/polymer_config.js"></script>
<script src="chrome://resources/js/cr.js"></script>
<script src="chrome://resources/js/load_time_data.js"></script>
<script src="chrome://resources/js/util.js"></script>
<script src="chrome://media-router/media_router.js"></script>
<script src="chrome://media-router/strings.js"></script>
+
+ <link rel="stylesheet" href="media_router.css">
+ <link rel="import" href="chrome://media-router/elements/media_router_container/media_router_container.html">
</head>
<body>
<media-router-container id="media-router-container"></media-router-container>
- <script src="chrome://resources/js/i18n_template_polymer.js"></script>
+ <script src="chrome://resources/js/i18n_template.js"></script>
</body>
</html>
diff --git a/chromium/chrome/browser/resources/media_router/media_router.js b/chromium/chrome/browser/resources/media_router/media_router.js
index 82cb1649e8c..4773a16d310 100644
--- a/chromium/chrome/browser/resources/media_router/media_router.js
+++ b/chromium/chrome/browser/resources/media_router/media_router.js
@@ -17,8 +17,7 @@ cr.define('media_router', function() {
* router content, such as the media sink and media route lists.
*/
function initialize() {
- // TODO(apacible): Add chrome.send call when browser WebUI message
- // handler is implemented.
+ media_router.browserApi.requestInitialData();
container = $('media-router-container');
media_router.ui.setContainer(container);
@@ -41,16 +40,17 @@ cr.define('media_router', function() {
* Acts on an issue and dismisses it from the UI.
* Called when the user performs an action on an issue.
*
- * @param {{detail: {id: string, actionType: number, helpURL: string}}} data
+ * @param {{detail: {id: string, actionType: number, helpPageId: number}}}
+ * data
* Parameters in |data|.detail:
* id - issue ID.
* actionType - type of action performed by the user.
- * helpURL - the help URL for the issue.
+ * helpPageId - the numeric help center ID.
*/
function onIssueActionClick(data) {
media_router.browserApi.actOnIssue(data.detail.id,
data.detail.actionType,
- data.detail.helpURL);
+ data.detail.helpPageId);
container.issue = null;
}
@@ -85,4 +85,4 @@ cr.define('media_router', function() {
};
});
-window.addEventListener('polymer-ready', media_router.initialize);
+window.addEventListener('load', media_router.initialize);
diff --git a/chromium/chrome/browser/resources/media_router/media_router_common.css b/chromium/chrome/browser/resources/media_router/media_router_common.css
index 47d72ae207c..e4b91a75a2f 100644
--- a/chromium/chrome/browser/resources/media_router/media_router_common.css
+++ b/chromium/chrome/browser/resources/media_router/media_router_common.css
@@ -9,7 +9,7 @@
cursor: pointer;
font-size: 1em;
font-weight: bold;
- overflow: hidden;
+ margin: 0;
text-align: center;
width: 100%;
}
diff --git a/chromium/chrome/browser/resources/media_router/media_router_data.js b/chromium/chrome/browser/resources/media_router/media_router_data.js
index 1cc6562fad2..4aca01726e9 100644
--- a/chromium/chrome/browser/resources/media_router/media_router_data.js
+++ b/chromium/chrome/browser/resources/media_router/media_router_data.js
@@ -41,21 +41,18 @@ cr.define('media_router', function() {
* @param {string} id The ID of this issue.
* @param {string} title The issue title.
* @param {string} message The issue message.
- * @param {string} defaultActionText The button text of default action.
* @param {number} defaultActionType The type of default action.
- * @param {?string} secondaryActionText The button text of optional action.
* @param {?number} secondaryActionType The type of optional action.
* @param {?string} mediaRouteId The route ID to which this issue
* pertains. If not set, this is a global issue.
* @param {boolean} isBlocking True if this issue blocks other UI.
- * @param {?string} helpURL The URL to be opened if learn more is clicked.
+ * @param {?number} helpPageId The numeric help center ID.
* @constructor
* @struct
*/
- var Issue = function(id, title, message, defaultActionText,
- defaultActionType, secondaryActionText,
+ var Issue = function(id, title, message, defaultActionType,
secondaryActionType, mediaRouteId, isBlocking,
- helpURL) {
+ helpPageId) {
/** @type {string} */
this.id = id;
@@ -65,15 +62,9 @@ cr.define('media_router', function() {
/** @type {string} */
this.message = message;
- /** @type {string} */
- this.defaultActionText = defaultActionText;
-
/** @type {number} */
this.defaultActionType = defaultActionType;
- /** @type {?string} */
- this.secondaryActionText = secondaryActionText;
-
/** @type {?number} */
this.secondaryActionType = secondaryActionType;
@@ -83,8 +74,8 @@ cr.define('media_router', function() {
/** @type {boolean} */
this.isBlocking = isBlocking;
- /** @type {?string} */
- this.helpURL = helpURL;
+ /** @type {?number} */
+ this.helpPageId = helpPageId;
};
@@ -124,7 +115,7 @@ cr.define('media_router', function() {
* @constructor
* @struct
*/
- var Sink = function(id, name, status) {
+ var Sink = function(id, name, status, castModes) {
/** @type {string} */
this.id = id;
diff --git a/chromium/chrome/browser/resources/media_router/media_router_ui_interface.js b/chromium/chrome/browser/resources/media_router/media_router_ui_interface.js
index 1ee4200e79f..f9437116826 100644
--- a/chromium/chrome/browser/resources/media_router/media_router_ui_interface.js
+++ b/chromium/chrome/browser/resources/media_router/media_router_ui_interface.js
@@ -38,9 +38,30 @@ cr.define('media_router.ui', function() {
}
/**
- * Sets the current issue.
+ * Populates the WebUI with data obtained from Media Router.
*
- * @param {!media_router.Issue} issue
+ * @param {headerText: string,
+ * sinks: !Array<!media_router.Sink>,
+ * routes: !Array<!media_router.Route>,
+ * castModes: !Array<!media_router.CastMode>} data
+ * Parameters in data:
+ * headerText - text to be displayed in the header of the WebUI.
+ * sinks - list of sinks to be displayed.
+ * routes - list of routes that are associated with the sinks.
+ * castModes - list of available cast modes.
+ */
+ function setInitialData(data) {
+ container.headerText = data['headerText'];
+ container.sinkList = data['sinks'];
+ container.routeList = data['routes'];
+ container.castModeList = data['castModes'];
+ }
+
+ /**
+ * Sets current issue to |issue|, or clears the current issue if |issue| is
+ * null.
+ *
+ * @param {?media_router.Issue} issue
*/
function setIssue(issue) {
container.issue = issue;
@@ -68,6 +89,7 @@ cr.define('media_router.ui', function() {
addRoute: addRoute,
setCastModeList: setCastModeList,
setContainer: setContainer,
+ setInitialData: setInitialData,
setIssue: setIssue,
setRouteList: setRouteList,
setSinkList: setSinkList,
@@ -83,10 +105,18 @@ cr.define('media_router.browserApi', function() {
*
* @param {string} issueId
* @param {number} actionType Type of action that the user clicked.
- * @param {?string} helpURL URL to open if the action is to learn more.
+ * @param {?number} helpPageId The numeric help center ID.
*/
- function actOnIssue(issueId, actionType, helpURL) {
- // TODO(imcheng): Implement.
+ function actOnIssue(issueId, actionType, helpPageId) {
+ chrome.send('actOnIssue', [{issueId: issueId, actionType: actionType,
+ helpPageId: helpPageId}]);
+ }
+
+ /**
+ * Closes the dialog.
+ */
+ function closeDialog() {
+ chrome.send('closeDialog');
}
/**
@@ -95,7 +125,15 @@ cr.define('media_router.browserApi', function() {
* @param {!media_router.Route} route
*/
function closeRoute(route) {
- // TODO(imcheng): Implement.
+ chrome.send('closeRoute', [{routeId: route.id}]);
+ }
+
+ /**
+ * Requests data to initialize the WebUI with.
+ * The data will be returned via media_router.ui.setInitialData.
+ */
+ function requestInitialData() {
+ chrome.send('requestInitialData');
}
/**
@@ -106,20 +144,15 @@ cr.define('media_router.browserApi', function() {
* selected, or -1 if the user has not explicitly selected a mode.
*/
function requestRoute(sinkId, selectedCastMode) {
- // TODO(imcheng): Implement.
- }
-
- /**
- * Closes the dialog.
- */
- function closeDialog() {
- chrome.send('closeDialog');
+ chrome.send('requestRoute',
+ [{sinkId: sinkId, selectedCastMode: selectedCastMode}]);
}
return {
actOnIssue: actOnIssue,
+ closeDialog: closeDialog,
closeRoute: closeRoute,
+ requestInitialData: requestInitialData,
requestRoute: requestRoute,
- closeDialog: closeDialog,
};
});
diff --git a/chromium/chrome/browser/resources/net_internals/browser_bridge.js b/chromium/chrome/browser/resources/net_internals/browser_bridge.js
index 2b976a4cd48..85e6bdc9dc5 100644
--- a/chromium/chrome/browser/resources/net_internals/browser_bridge.js
+++ b/chromium/chrome/browser/resources/net_internals/browser_bridge.js
@@ -211,10 +211,6 @@ var BrowserBridge = (function() {
this.send('getDataReductionProxyInfo');
},
- enableIPv6: function() {
- this.send('enableIPv6');
- },
-
setCaptureMode: function(captureMode) {
this.send('setCaptureMode', ['' + captureMode]);
},
diff --git a/chromium/chrome/browser/resources/net_internals/dns_view.html b/chromium/chrome/browser/resources/net_internals/dns_view.html
index 69b94f745ff..0786cad0a26 100644
--- a/chromium/chrome/browser/resources/net_internals/dns_view.html
+++ b/chromium/chrome/browser/resources/net_internals/dns_view.html
@@ -2,12 +2,6 @@
<div id=dns-view-tab-content class=content-box>
<ul style='margin-top: 0'>
<li><a href='#events&q=type:HOST_RESOLVER_IMPL_JOB%20is:active'>View pending lookups</a></li>
- <li>Default address family: <span id=dns-view-default-family></span>
- <span id=dns-view-ipv6-disabled class=warning-text style="display: none;">
- (IPv6 disabled)
- <input type=button value="Enable IPv6" id=dns-view-enable-ipv6 class="hide-when-not-capturing">
- </span>
- </li>
</ul>
<div>
diff --git a/chromium/chrome/browser/resources/net_internals/dns_view.js b/chromium/chrome/browser/resources/net_internals/dns_view.js
index ce507efa167..b431b74b439 100644
--- a/chromium/chrome/browser/resources/net_internals/dns_view.js
+++ b/chromium/chrome/browser/resources/net_internals/dns_view.js
@@ -6,7 +6,6 @@
* This view displays information on the host resolver:
*
* - Shows the default address family.
- * - Has a button to enable IPv6, if it is disabled.
* - Shows the current host cache contents.
* - Has a button to clear the host cache.
* - Shows the parameters used to construct the host cache (capacity, ttl).
@@ -32,8 +31,6 @@ var DnsView = (function() {
// Call superclass's constructor.
superClass.call(this, DnsView.MAIN_BOX_ID);
- $(DnsView.ENABLE_IPV6_BUTTON_ID).onclick =
- g_browser.enableIPv6.bind(g_browser);
$(DnsView.CLEAR_CACHE_BUTTON_ID).onclick =
g_browser.sendClearHostResolverCache.bind(g_browser);
@@ -47,9 +44,6 @@ var DnsView = (function() {
// IDs for special HTML elements in dns_view.html
DnsView.MAIN_BOX_ID = 'dns-view-tab-content';
- DnsView.DEFAULT_FAMILY_SPAN_ID = 'dns-view-default-family';
- DnsView.IPV6_DISABLED_SPAN_ID = 'dns-view-ipv6-disabled';
- DnsView.ENABLE_IPV6_BUTTON_ID = 'dns-view-enable-ipv6';
DnsView.INTERNAL_DNS_ENABLED_SPAN_ID = 'dns-view-internal-dns-enabled';
DnsView.INTERNAL_DNS_INVALID_CONFIG_SPAN_ID =
@@ -75,7 +69,6 @@ var DnsView = (function() {
onHostResolverInfoChanged: function(hostResolverInfo) {
// Clear the existing values.
- $(DnsView.DEFAULT_FAMILY_SPAN_ID).innerHTML = '';
$(DnsView.CAPACITY_SPAN_ID).innerHTML = '';
$(DnsView.CACHE_TBODY_ID).innerHTML = '';
$(DnsView.ACTIVE_SPAN_ID).innerHTML = '0';
@@ -88,13 +81,6 @@ var DnsView = (function() {
if (!hostResolverInfo || !hostResolverInfo.cache)
return false;
- var family = hostResolverInfo.default_address_family;
- addTextNode($(DnsView.DEFAULT_FAMILY_SPAN_ID),
- addressFamilyToString(family));
-
- var ipv6Disabled = (family == AddressFamily.ADDRESS_FAMILY_IPV4);
- setNodeDisplay($(DnsView.IPV6_DISABLED_SPAN_ID), ipv6Disabled);
-
// Fill in the basic cache information.
var hostResolverCache = hostResolverInfo.cache;
$(DnsView.CAPACITY_SPAN_ID).innerText = hostResolverCache.capacity;
diff --git a/chromium/chrome/browser/resources/net_internals/hsts_view.js b/chromium/chrome/browser/resources/net_internals/hsts_view.js
index 2310b9f7907..28b921ae7ca 100644
--- a/chromium/chrome/browser/resources/net_internals/hsts_view.js
+++ b/chromium/chrome/browser/resources/net_internals/hsts_view.js
@@ -169,7 +169,7 @@ var HSTSView = (function() {
function modeToString(m) {
// These numbers must match those in
- // TransportSecurityState::DomainState::UpgradeMode.
+ // TransportSecurityState::STSState::UpgradeMode.
if (m == 0) {
return 'STRICT';
} else if (m == 1) {
diff --git a/chromium/chrome/browser/resources/net_internals/log_view_painter.js b/chromium/chrome/browser/resources/net_internals/log_view_painter.js
index 05d85eb040f..4b29de3994d 100644
--- a/chromium/chrome/browser/resources/net_internals/log_view_painter.js
+++ b/chromium/chrome/browser/resources/net_internals/log_view_painter.js
@@ -116,10 +116,11 @@ function addRowWithTime(tablePrinter, eventTime, startTime) {
* the hexadecimal characters from |hexString| on the left, in groups of
* two, and their corresponding ASCII characters on the right.
*
- * |asciiCharsPerLine| specifies how many ASCII characters will be put on each
- * line of the output string.
+ * 16 bytes will be placed on each line of the output string, split into two
+ * columns of 8.
*/
-function writeHexString(hexString, asciiCharsPerLine, out) {
+function writeHexString(hexString, out) {
+ var asciiCharsPerLine = 16;
// Number of transferred bytes in a line of output. Length of a
// line is roughly 4 times larger.
var hexCharsPerLine = 2 * asciiCharsPerLine;
@@ -127,6 +128,9 @@ function writeHexString(hexString, asciiCharsPerLine, out) {
var hexLine = '';
var asciiLine = '';
for (var j = i; j < i + hexCharsPerLine && j < hexString.length; j += 2) {
+ // Split into two columns of 8 bytes each.
+ if (j == i + hexCharsPerLine / 2)
+ hexLine += ' ';
var hex = hexString.substr(j, 2);
hexLine += hex + ' ';
var charCode = parseInt(hex, 16);
@@ -144,7 +148,8 @@ function writeHexString(hexString, asciiCharsPerLine, out) {
// Make the ASCII text for the last line of output align with the previous
// lines.
- hexLine += makeRepeatedString(' ', 3 * asciiCharsPerLine - hexLine.length);
+ hexLine += makeRepeatedString(' ',
+ 3 * asciiCharsPerLine + 1 - hexLine.length);
out.writeLine(' ' + hexLine + ' ' + asciiLine);
}
}
@@ -304,7 +309,7 @@ function defaultWriteParameter(key, value, out) {
// For transferred bytes, display the bytes in hex and ASCII.
if (key == 'hex_encoded_bytes' && typeof value == 'string') {
out.writeArrowKey(key);
- writeHexString(value, 20, out);
+ writeHexString(value, out);
return;
}
diff --git a/chromium/chrome/browser/resources/net_internals/quic_view.html b/chromium/chrome/browser/resources/net_internals/quic_view.html
index d90ebee15ee..2b3f8000d9f 100644
--- a/chromium/chrome/browser/resources/net_internals/quic_view.html
+++ b/chromium/chrome/browser/resources/net_internals/quic_view.html
@@ -10,6 +10,7 @@
<li>Origin To Force QUIC On: <span jscontent="origin_to_force_quic_on"></span></li>
<li>QUIC connection options: <span jscontent="connection_options"></span></li>
<li>Consistent Port Selection Enabled: <span jscontent="!!enable_quic_port_selection"></span></li>
+ <li jsdisplay="$this.disabled_reason && disabled_reason.length > 0">QUIC dynamically disabled: <span jscontent="disabled_reason"></span></li>
</ul>
<h4>QUIC sessions</h4>
diff --git a/chromium/chrome/browser/resources/net_internals/sdch_view.html b/chromium/chrome/browser/resources/net_internals/sdch_view.html
index 2cbfca5292a..0288d968943 100644
--- a/chromium/chrome/browser/resources/net_internals/sdch_view.html
+++ b/chromium/chrome/browser/resources/net_internals/sdch_view.html
@@ -3,10 +3,6 @@
<li>SDCH Enabled:
<span jscontent="!!sdch_enabled" id=sdch-view-sdch-enabled></span>
</li>
- <li>Secure Scheme Support Enabled:
- <span jscontent="!!secure_scheme_support"
- id=sdch-view-secure-scheme-support></span>
- </li>
</ul>
<p>SDCH Errors:
diff --git a/chromium/chrome/browser/resources/net_internals/source_entry.js b/chromium/chrome/browser/resources/net_internals/source_entry.js
index bf4259d7049..e1e217b188f 100644
--- a/chromium/chrome/browser/resources/net_internals/source_entry.js
+++ b/chromium/chrome/browser/resources/net_internals/source_entry.js
@@ -82,7 +82,6 @@ var SourceEntry = (function() {
// TODO(ricea): Remove SOCKET_STREAM after M41 is released.
case EventSourceType.SOCKET_STREAM:
case EventSourceType.HTTP_STREAM_JOB:
- case EventSourceType.ASYNC_REVALIDATION:
this.description_ = e.params.url;
break;
case EventSourceType.CONNECT_JOB:
diff --git a/chromium/chrome/browser/resources/network_speech_synthesis/tts_extension.js b/chromium/chrome/browser/resources/network_speech_synthesis/tts_extension.js
index 905fbfe3d71..38f22010058 100644
--- a/chromium/chrome/browser/resources/network_speech_synthesis/tts_extension.js
+++ b/chromium/chrome/browser/resources/network_speech_synthesis/tts_extension.js
@@ -38,7 +38,7 @@ TtsExtension.prototype = {
* A mapping from language and gender to voice name, hardcoded for now
* until the speech synthesis server capabilities response provides this.
* The key of this map is of the form '<lang>-<gender>'.
- * @type {Object<string, string>}
+ * @type {Object<string>}
* @private
*/
LANG_AND_GENDER_TO_VOICE_NAME_: {
@@ -68,7 +68,7 @@ TtsExtension.prototype = {
* A mapping from voice name to language and gender, derived from the
* manifest file. This is used in case the speech synthesis request
* specifies a voice name but doesn't specify a language code or gender.
- * @type {Object<string, {lang: string, gender: string}>}
+ * @type {Object<{lang: string, gender: string}>}
* @private
*/
voiceNameToLangAndGender_: {},
diff --git a/chromium/chrome/browser/resources/ntp4/apps_page.js b/chromium/chrome/browser/resources/ntp4/apps_page.js
index bdbefcb66f4..751d9cea2eb 100644
--- a/chromium/chrome/browser/resources/ntp4/apps_page.js
+++ b/chromium/chrome/browser/resources/ntp4/apps_page.js
@@ -20,8 +20,8 @@ cr.define('ntp', function() {
var DRAG_SOURCE = {
SAME_APPS_PANE: 0,
OTHER_APPS_PANE: 1,
- MOST_VISITED_PANE: 2,
- BOOKMARKS_PANE: 3,
+ MOST_VISITED_PANE: 2, // Deprecated.
+ BOOKMARKS_PANE: 3, // Deprecated.
OUTSIDE_NTP: 4
};
var DRAG_SOURCE_LIMIT = DRAG_SOURCE.OUTSIDE_NTP + 1;
@@ -278,8 +278,11 @@ cr.define('ntp', function() {
this.appContents_.__defineGetter__('contextMenu', function() {
return self.contextMenu;
});
- this.appContents_.addEventListener('contextmenu',
- cr.ui.contextMenuHandler);
+
+ if (!this.appData_.kioskMode) {
+ this.appContents_.addEventListener('contextmenu',
+ cr.ui.contextMenuHandler);
+ }
this.addEventListener('mousedown', this.onMousedown_, true);
this.addEventListener('keydown', this.onKeydown_);
@@ -683,9 +686,6 @@ cr.define('ntp', function() {
originalPage.fireRemovedEvent(currentlyDraggingTile, index, true);
this.fireAddedEvent(currentlyDraggingTile, index, true);
}
- } else if (currentlyDraggingTile.querySelector('.most-visited')) {
- this.generateAppForLink(tileContents.data);
- sourceId = DRAG_SOURCE.MOST_VISITED_PANE;
}
} else {
this.addOutsideData_(dataTransfer);
diff --git a/chromium/chrome/browser/resources/ntp4/compiled_resources.gyp b/chromium/chrome/browser/resources/ntp4/compiled_resources.gyp
index ed029528de0..8b2b37c8e10 100644
--- a/chromium/chrome/browser/resources/ntp4/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/ntp4/compiled_resources.gyp
@@ -33,15 +33,13 @@
'logging.js',
'tile_page.js',
'dot_list.js',
- 'most_visited_page.js',
'trash.js',
'page_switcher.js',
'page_list_view.js',
'nav_dot.js',
- 'other_sessions.js',
'new_tab.js',
],
- 'externs': ['<(CLOSURE_DIR)/externs/chrome_send_externs.js'],
+ 'externs': ['<(EXTERNS_DIR)/chrome_send.js'],
},
'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
}
diff --git a/chromium/chrome/browser/resources/ntp4/images/2x/incognito_icon.png b/chromium/chrome/browser/resources/ntp4/images/2x/incognito_icon.png
index dc8be4ad484..630d2288fb0 100644
--- a/chromium/chrome/browser/resources/ntp4/images/2x/incognito_icon.png
+++ b/chromium/chrome/browser/resources/ntp4/images/2x/incognito_icon.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/ntp4/images/closed_window.png b/chromium/chrome/browser/resources/ntp4/images/closed_window.png
index eab8191e0ee..d92c9dda557 100644
--- a/chromium/chrome/browser/resources/ntp4/images/closed_window.png
+++ b/chromium/chrome/browser/resources/ntp4/images/closed_window.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/ntp4/images/disclosure_triangle_mask.png b/chromium/chrome/browser/resources/ntp4/images/disclosure_triangle_mask.png
index b034d578b6e..7b70a3e4c5b 100644
--- a/chromium/chrome/browser/resources/ntp4/images/disclosure_triangle_mask.png
+++ b/chromium/chrome/browser/resources/ntp4/images/disclosure_triangle_mask.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/ntp4/most_visited_page.css b/chromium/chrome/browser/resources/ntp4/most_visited_page.css
deleted file mode 100644
index 0bc0abce378..00000000000
--- a/chromium/chrome/browser/resources/ntp4/most_visited_page.css
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file. */
-
-.most-visited {
- position: absolute;
- z-index: 0;
-}
-
-.most-visited {
- -webkit-box-orient: vertical;
- display: -webkit-box;
- position: absolute;
- text-decoration: none;
-}
-
-.most-visited:focus {
- outline: none;
-}
-
-.fills-parent {
- bottom: 0;
- display: -webkit-box;
- left: 0;
- position: absolute;
- right: 0;
- top: 0;
-}
-
-/* filler mode: hide everything except the thumbnail --- leave a grey rectangle
- * in its place. */
-.filler * {
- visibility: hidden;
-}
-
-.filler {
- pointer-events: none;
-}
-
-.most-visited .close-button {
- -webkit-transition: opacity 150ms;
- opacity: 0;
- position: absolute;
- right: 0;
- top: 0;
- z-index: 5;
-}
-
-html[dir=rtl] .most-visited .close-button {
- left: 0;
- right: auto;
-}
-
-.most-visited:hover .close-button {
- -webkit-transition-delay: 500ms;
- opacity: 1;
-}
-
-.most-visited .close-button:hover {
- -webkit-transition: none;
-}
-
-.most-visited .favicon {
- -webkit-margin-start: 5px;
- background: no-repeat left 50%;
- background-size: 16px;
- bottom: 7px;
- box-sizing: border-box;
- display: block;
- height: 16px;
- position: absolute;
- width: 16px;
-}
-
-html[dir='rtl'] .most-visited .favicon {
- background-position-x: right;
-}
-
-.most-visited .color-stripe {
- border-bottom-left-radius: 3px 3px;
- border-bottom-right-radius: 3px 3px;
- /* Matches height of title. */
- bottom: 23px;
- height: 3px;
- /* Matches padding-top of the title. */
- margin-bottom: 8px;
- position: absolute;
- width: 100%;
- z-index: 10;
-}
-
-.most-visited .title {
- display: block;
- height: 23px;
- overflow: hidden;
- padding-top: 8px;
- text-align: center;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.thumbnail {
- -webkit-transition: opacity 150ms;
- background: no-repeat;
- /* This shows for missing thumbnails. */
- background-color: #eee;
- background-size: 100%;
- border-radius: 3px;
- /* These max dimensions are not necessary, as the sizing logic in the .js
- * should be sufficient, but they're here for extra insurance. We never want
- * to scale a thumbnail larger than this size. */
- max-height: 132px;
- max-width: 212px;
-}
-
-.filler .thumbnail {
- /* TODO(estade): there seems to be a webkit bug where this border is not
- * always removed when it should be. Investigate. */
- border: 1px solid;
- visibility: visible;
-}
-
-.thumbnail-shield {
- background: -webkit-linear-gradient(rgba(255, 255, 255, 0),
- rgba(255, 255, 255, 0) 50%,
- rgba(255, 255, 255, 0.9));
- border-radius: 3px;
-}
-
-/* TODO(dbeam): Remove this when printing of -webkit-linear-gradient() works. */
-@media print {
- .thumbnail-shield {
- background: none;
- }
-}
-
-.most-visited:focus .thumbnail,
-.most-visited:hover .thumbnail {
- opacity: 0.95;
-}
-
-.most-visited:focus .thumbnail-shield,
-.most-visited:hover .thumbnail-shield,
-.most-visited:active .thumbnail-shield {
- background: -webkit-linear-gradient(rgba(255, 255, 255, 0),
- rgba(255, 255, 255, 0) 80%,
- rgba(255, 255, 255, 0.9));
-}
-
-/* The thumbnail gets lighter when clicked, but not when the click is on the
- * close button. */
-.most-visited:active .close-button:not(:active) + .thumbnail {
- opacity: 0.9;
-}
-
-/* The thumbnail gets a shadow when clicked, but not when the click is on the
- * close button. */
-.most-visited:active .close-button:not(:active) + .thumbnail .thumbnail-shield {
- box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.2);
-}
-
-.thumbnail-wrapper {
- -webkit-box-flex: 1;
- -webkit-transition: background-color 150ms;
- border: 1px solid transparent;
- border-radius: 3px;
- display: block;
- position: relative;
- z-index: 5;
-}
-
-.filler .thumbnail-wrapper {
- visibility: visible;
-}
-
-/* 'finishing-drag' is the state we are in after dropping on the trash can.
- * Override opacity of the tile to 1, so that the new tile animation
- * occurs simultaneously with the trash animation. */
-.tile.dragging.finishing-drag {
- opacity: 1;
-}
-
-/* Don't display the new tile until there's something to show. */
-.blacklisted {
- opacity: 0;
-}
diff --git a/chromium/chrome/browser/resources/ntp4/most_visited_page.js b/chromium/chrome/browser/resources/ntp4/most_visited_page.js
deleted file mode 100644
index 4f6cbd17a38..00000000000
--- a/chromium/chrome/browser/resources/ntp4/most_visited_page.js
+++ /dev/null
@@ -1,495 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-cr.define('ntp', function() {
- 'use strict';
-
- var TilePage = ntp.TilePage;
-
- /**
- * A counter for generating unique tile IDs.
- */
- var tileID = 0;
-
- /**
- * Creates a new Most Visited object for tiling.
- * @constructor
- * @extends {HTMLAnchorElement}
- */
- function MostVisited() {
- var el = cr.doc.createElement('a');
- el.__proto__ = MostVisited.prototype;
- el.initialize();
-
- return el;
- }
-
- MostVisited.prototype = {
- __proto__: HTMLAnchorElement.prototype,
-
- initialize: function() {
- this.reset();
-
- this.addEventListener('click', this.handleClick_);
- this.addEventListener('keydown', this.handleKeyDown_);
- this.addEventListener('mouseover', this.handleMouseOver_);
- },
-
- get index() {
- assert(this.tile);
- return this.tile.index;
- },
-
- get data() {
- return this.data_;
- },
-
- /**
- * Clears the DOM hierarchy for this node, setting it back to the default
- * for a blank thumbnail.
- */
- reset: function() {
- this.className = 'most-visited filler real';
- this.innerHTML =
- '<span class="thumbnail-wrapper fills-parent">' +
- '<div class="close-button"></div>' +
- '<span class="thumbnail fills-parent">' +
- // thumbnail-shield provides a gradient fade effect.
- '<div class="thumbnail-shield fills-parent"></div>' +
- '</span>' +
- '<span class="favicon"></span>' +
- '</span>' +
- '<div class="color-stripe"></div>' +
- '<span class="title"></span>';
-
- this.querySelector('.close-button').title =
- loadTimeData.getString('removethumbnailtooltip');
-
- this.tabIndex = -1;
- this.data_ = null;
- this.removeAttribute('id');
- this.title = '';
- },
-
- /**
- * Update the appearance of this tile according to |data|.
- * @param {PageData} data A dictionary of relevant data for the page.
- */
- updateForData: function(data) {
- if (this.classList.contains('blacklisted') && data) {
- // Animate appearance of new tile.
- this.classList.add('new-tile-contents');
- }
- this.classList.remove('blacklisted');
-
- if (!data || data.filler) {
- if (this.data_)
- this.reset();
- return;
- }
-
- var id = tileID++;
- this.id = 'most-visited-tile-' + id;
- this.data_ = data;
- this.classList.add('focusable');
-
- var faviconDiv = this.querySelector('.favicon');
- faviconDiv.style.backgroundImage = getFaviconImageSet(data.url);
-
- // The favicon should have the same dominant color regardless of the
- // device pixel ratio the favicon is requested for.
- chrome.send('getFaviconDominantColor',
- [getFaviconUrlForCurrentDevicePixelRatio(data.url), this.id]);
-
- var title = this.querySelector('.title');
- title.textContent = data.title;
- title.dir = data.direction;
-
- // Sets the tooltip.
- this.title = data.title;
-
- var thumbnailUrl = 'chrome://thumb/' + data.url;
- this.querySelector('.thumbnail').style.backgroundImage =
- url(thumbnailUrl);
-
- this.href = data.url;
-
- this.classList.remove('filler');
- },
-
- /**
- * Sets the color of the favicon dominant color bar.
- * @param {string} color The css-parsable value for the color.
- */
- set stripeColor(color) {
- this.querySelector('.color-stripe').style.backgroundColor = color;
- },
-
- /**
- * Handles a click on the tile.
- * @param {Event} e The click event.
- */
- handleClick_: function(e) {
- if (e.target.classList.contains('close-button')) {
- this.blacklist_();
- e.preventDefault();
- } else {
- ntp.logTimeToClick('MostVisited');
- // Records an app launch from the most visited page (Chrome will decide
- // whether the url is an app). TODO(estade): this only works for clicks;
- // other actions like "open in new tab" from the context menu won't be
- // recorded. Can this be fixed?
- chrome.send('recordAppLaunchByURL',
- [encodeURIComponent(this.href),
- ntp.APP_LAUNCH.NTP_MOST_VISITED]);
- // Records the index of this tile.
- chrome.send('metricsHandler:recordInHistogram',
- ['NewTabPage.MostVisited', this.index, 8]);
- // Records the action. This will be available as a time-stamped stream
- // server-side and can be used to compute time-to-long-dwell.
- chrome.send('metricsHandler:recordAction', ['MostVisited_Clicked']);
- chrome.send('mostVisitedAction',
- [ntp.NtpFollowAction.CLICKED_TILE]);
- }
- },
-
- /**
- * Allow blacklisting most visited site using the keyboard.
- */
- handleKeyDown_: function(e) {
- if (!cr.isMac && e.keyCode == 46 || // Del
- cr.isMac && e.metaKey && e.keyCode == 8) { // Cmd + Backspace
- this.blacklist_();
- }
- },
-
- /**
- * The mouse has entered a Most Visited tile div. Only log the first
- * mouseover event. By doing this we solve the issue with the mouseover
- * event listener that bubbles up to the parent, which would cause it to
- * fire multiple times even if the mouse stays within one tile.
- */
- handleMouseOver_: function(e) {
- var self = this;
- var ancestor = findAncestor(e.relatedTarget, function(node) {
- return node == self;
- });
- // If ancestor is null, mouse is entering the parent element.
- if (ancestor == null)
- chrome.send('metricsHandler:logMouseover');
- },
-
- /**
- * Permanently removes a page from Most Visited.
- */
- blacklist_: function() {
- this.showUndoNotification_();
- chrome.send('blacklistURLFromMostVisited', [this.data_.url]);
- this.reset();
- chrome.send('getMostVisited');
- this.classList.add('blacklisted');
- },
-
- showUndoNotification_: function() {
- var data = this.data_;
- var self = this;
- var doUndo = function() {
- chrome.send('removeURLsFromMostVisitedBlacklist', [data.url]);
- self.updateForData(data);
- };
-
- var undo = {
- action: doUndo,
- text: loadTimeData.getString('undothumbnailremove'),
- };
-
- var undoAll = {
- action: function() {
- chrome.send('clearMostVisitedURLsBlacklist');
- },
- text: loadTimeData.getString('restoreThumbnailsShort'),
- };
-
- ntp.showNotification(
- loadTimeData.getString('thumbnailremovednotification'),
- [undo, undoAll]);
- },
-
- /**
- * Set the size and position of the most visited tile.
- * @param {number} size The total size of |this|.
- * @param {number} x The x-position.
- * @param {number} y The y-position.
- * animate.
- */
- setBounds: function(size, x, y) {
- this.style.width = toCssPx(size);
- this.style.height = toCssPx(heightForWidth(size));
-
- this.style.left = toCssPx(x);
- this.style.right = toCssPx(x);
- this.style.top = toCssPx(y);
- },
-
- /**
- * Returns whether this element can be 'removed' from chrome (i.e. whether
- * the user can drag it onto the trash and expect something to happen).
- * @return {boolean} True, since most visited pages can always be
- * blacklisted.
- */
- canBeRemoved: function() {
- return true;
- },
-
- /**
- * Removes this element from chrome, i.e. blacklists it.
- */
- removeFromChrome: function() {
- this.blacklist_();
- this.parentNode.classList.add('finishing-drag');
- },
-
- /**
- * Called when a drag of this tile has ended (after all animations have
- * finished).
- */
- finalizeDrag: function() {
- this.parentNode.classList.remove('finishing-drag');
- },
-
- /**
- * Called when a drag is starting on the tile. Updates dataTransfer with
- * data for this tile (for dragging outside of the NTP).
- */
- setDragData: function(dataTransfer) {
- dataTransfer.setData('Text', this.data_.title);
- dataTransfer.setData('URL', this.data_.url);
- },
- };
-
- var mostVisitedPageGridValues = {
- // The fewest tiles we will show in a row.
- minColCount: 2,
- // The most tiles we will show in a row.
- maxColCount: 4,
-
- // The smallest a tile can be.
- minTileWidth: 122,
- // The biggest a tile can be. 212 (max thumbnail width) + 2.
- maxTileWidth: 214,
-
- // The padding between tiles, as a fraction of the tile width.
- tileSpacingFraction: 1 / 8,
- };
- TilePage.initGridValues(mostVisitedPageGridValues);
-
- /**
- * Calculates the height for a Most Visited tile for a given width. The size
- * is based on the thumbnail, which should have a 212:132 ratio.
- * @return {number} The height.
- */
- function heightForWidth(width) {
- // The 2s are for borders, the 31 is for the title.
- return (width - 2) * 132 / 212 + 2 + 31;
- }
-
- var THUMBNAIL_COUNT = 8;
-
- /**
- * Creates a new MostVisitedPage object.
- * @constructor
- * @extends {ntp.TilePage}
- */
- function MostVisitedPage() {
- var el = new TilePage(mostVisitedPageGridValues);
- el.__proto__ = MostVisitedPage.prototype;
- el.initialize();
-
- return el;
- }
-
- MostVisitedPage.prototype = {
- __proto__: TilePage.prototype,
-
- initialize: function() {
- this.classList.add('most-visited-page');
- this.data_ = null;
- this.mostVisitedTiles_ = this.getElementsByClassName('most-visited real');
-
- this.addEventListener('carddeselected', this.handleCardDeselected_);
- this.addEventListener('cardselected', this.handleCardSelected_);
- },
-
- /**
- * Create blank (filler) tiles.
- * @private
- */
- createTiles_: function() {
- for (var i = 0; i < THUMBNAIL_COUNT; i++) {
- this.appendTile(new MostVisited(), false);
- }
- },
-
- /**
- * Update the tiles after a change to |data_|.
- */
- updateTiles_: function() {
- for (var i = 0; i < THUMBNAIL_COUNT; i++) {
- var page = this.data_[i];
- var tile = this.mostVisitedTiles_[i];
-
- if (i >= this.data_.length)
- tile.reset();
- else
- tile.updateForData(page);
- }
- },
-
- /**
- * Handles the 'card deselected' event (i.e. the user clicked to another
- * pane).
- * @param {Event} e The CardChanged event.
- */
- handleCardDeselected_: function(e) {
- if (!document.documentElement.classList.contains('starting-up')) {
- chrome.send('mostVisitedAction',
- [ntp.NtpFollowAction.CLICKED_OTHER_NTP_PANE]);
- }
- },
-
- /**
- * Handles the 'card selected' event (i.e. the user clicked to select the
- * Most Visited pane).
- * @param {Event} e The CardChanged event.
- */
- handleCardSelected_: function(e) {
- if (!document.documentElement.classList.contains('starting-up'))
- chrome.send('mostVisitedSelected');
- },
-
- /**
- * Array of most visited data objects.
- * @type {Array<PageData>}
- */
- get data() {
- return this.data_;
- },
- set data(data) {
- var startTime = Date.now();
-
- // The first time data is set, create the tiles.
- if (!this.data_) {
- this.createTiles_();
- this.data_ = data.slice(0, THUMBNAIL_COUNT);
- } else {
- this.data_ = refreshData(this.data_, data);
- }
-
- this.updateTiles_();
- this.updateFocusableElement();
- logEvent('mostVisited.layout: ' + (Date.now() - startTime));
- },
-
- /** @override */
- shouldAcceptDrag: function(e) {
- return false;
- },
-
- /** @override */
- heightForWidth: heightForWidth,
- };
-
- /**
- * Executed once the NTP has loaded. Checks if the Most Visited pane is
- * shown or not. If it is shown, the 'mostVisitedSelected' message is sent
- * to the C++ code, to record the fact that the user has seen this pane.
- */
- MostVisitedPage.onLoaded = function() {
- if (ntp.getCardSlider() &&
- ntp.getCardSlider().currentCardValue &&
- ntp.getCardSlider().currentCardValue.classList
- .contains('most-visited-page')) {
- chrome.send('mostVisitedSelected');
- }
- };
-
- /**
- * We've gotten additional Most Visited data. Update our old data with the
- * new data. The ordering of the new data is not important, except when a
- * page is pinned. Thus we try to minimize re-ordering.
- * @param {Array} oldData The current Most Visited page list.
- * @param {Array} newData The new Most Visited page list.
- * @return {Array} The merged page list that should replace the current page
- * list.
- */
- function refreshData(oldData, newData) {
- oldData = oldData.slice(0, THUMBNAIL_COUNT);
- newData = newData.slice(0, THUMBNAIL_COUNT);
-
- // Copy over pinned sites directly.
- for (var j = 0; j < newData.length; j++) {
- if (newData[j].pinned) {
- oldData[j] = newData[j];
- // Mark the entry as 'updated' so we don't try to update again.
- oldData[j].updated = true;
- // Mark the newData page as 'used' so we don't try to re-use it.
- newData[j].used = true;
- }
- }
-
- // Look through old pages; if they exist in the newData list, keep them
- // where they are.
- for (var i = 0; i < oldData.length; i++) {
- if (!oldData[i] || oldData[i].updated)
- continue;
-
- for (var j = 0; j < newData.length; j++) {
- if (newData[j].used)
- continue;
-
- if (newData[j].url == oldData[i].url) {
- // The background image and other data may have changed.
- oldData[i] = newData[j];
- oldData[i].updated = true;
- newData[j].used = true;
- break;
- }
- }
- }
-
- // Look through old pages that haven't been updated yet; replace them.
- for (var i = 0; i < oldData.length; i++) {
- if (oldData[i] && oldData[i].updated)
- continue;
-
- for (var j = 0; j < newData.length; j++) {
- if (newData[j].used)
- continue;
-
- oldData[i] = newData[j];
- oldData[i].updated = true;
- newData[j].used = true;
- break;
- }
-
- if (oldData[i] && !oldData[i].updated)
- oldData[i] = null;
- }
-
- // Clear 'updated' flags so this function will work next time it's called.
- for (var i = 0; i < THUMBNAIL_COUNT; i++) {
- if (oldData[i])
- oldData[i].updated = false;
- }
-
- return oldData;
- };
-
- return {
- MostVisitedPage: MostVisitedPage,
- refreshData: refreshData,
- };
-});
-
-document.addEventListener('ntpLoaded', ntp.MostVisitedPage.onLoaded);
diff --git a/chromium/chrome/browser/resources/ntp4/new_tab.css b/chromium/chrome/browser/resources/ntp4/new_tab.css
index 3aa2ac2d869..f837c0e4787 100644
--- a/chromium/chrome/browser/resources/ntp4/new_tab.css
+++ b/chromium/chrome/browser/resources/ntp4/new_tab.css
@@ -233,7 +233,6 @@ body.bare-minimum #dot-list {
border: none;
box-shadow: none;
color: inherit;
- cursor: pointer;
font: inherit;
/* Leave room for the scrollbar. */
margin-left: 13px;
@@ -247,6 +246,10 @@ body.bare-minimum #dot-list {
z-index: 10;
}
+#login-container:not(.signed-in) {
+ cursor: pointer;
+}
+
html[dir='rtl'] #login-container {
left: 0;
right: auto;
@@ -413,22 +416,6 @@ html[dir='rtl'] #chrome-web-store-title {
background-position-x: left;
}
-#vertical-separator {
- -webkit-order: 2;
- background-color: rgb(178, 178, 178);
- display: none;
- height: 20px;
- margin: 0;
- vertical-align: middle;
- width: 1px;
-}
-
-/* Show the separator only if one of the menus is visible. */
-.footer-menu-button:not([hidden]) ~ #chrome-web-store-link:not([hidden])
- ~ #vertical-separator {
- display: inline-block;
-}
-
/* In trash mode, hide the menus and web store link. */
#footer.showing-trash-mode .menu-container {
-webkit-transition-delay: 0ms;
diff --git a/chromium/chrome/browser/resources/ntp4/new_tab.html b/chromium/chrome/browser/resources/ntp4/new_tab.html
index 4cac17a1381..9bceb41341e 100644
--- a/chromium/chrome/browser/resources/ntp4/new_tab.html
+++ b/chromium/chrome/browser/resources/ntp4/new_tab.html
@@ -27,7 +27,6 @@
<link rel="stylesheet" href="../../../../ui/webui/resources/css/trash.css">
<link rel="stylesheet" href="../../../../ui/webui/resources/css/widgets.css">
<link rel="stylesheet" href="apps_page.css">
-<link rel="stylesheet" href="most_visited_page.css">
<link rel="stylesheet" href="nav_dot.css">
<link rel="stylesheet" href="new_tab.css">
<link rel="stylesheet" href="footer_menu.css">
@@ -58,14 +57,12 @@
<script src="tile_page.js"></script>
<script src="apps_page.js"></script>
<script src="dot_list.js"></script>
-<script src="most_visited_page.js"></script>
<script src="trash.js"></script>
<script src="page_list_view.js"></script>
<script src="page_switcher.js"></script>
<script src="nav_dot.js"></script>
<script src="new_tab.js"></script>
-<script src="other_sessions.js"></script>
</head>
<body>
@@ -116,16 +113,10 @@
</ul>
<div id="footer-menu-container" class="menu-container">
- <button id="other-sessions-menu-button"
- class="footer-menu-button custom-appearance" hidden>
- <span i18n-content="otherSessions"></span>
- <div class="disclosure-triangle"></div>
- </button>
<a id="chrome-web-store-link">
<span id="chrome-web-store-title" i18n-content="webStoreTitleShort">
</span>
</a>
- <div id="vertical-separator"></div>
</div>
<div id="trash" class="trash">
@@ -183,16 +174,6 @@
<span class="title"></span>
</div>
-<!-- Message shown in the other sessions menu when the user is signed in but
- there is no session data (e.g. they have tab sync turned off). -->
-<div id="other-sessions-promo-template" class="other-sessions-promo-message">
- <span i18n-content="otherSessionsEmpty"></span>
- <p>
- <a i18n-values="href:otherSessionsLearnMoreUrl" i18n-content="learnMore">
- </a>
- </p>
-</div>
-
</div>
<!-- This is used to measure text in the current locale. It is not visible. -->
diff --git a/chromium/chrome/browser/resources/ntp4/new_tab.js b/chromium/chrome/browser/resources/ntp4/new_tab.js
index 4c1ac76f31e..678be699060 100644
--- a/chromium/chrome/browser/resources/ntp4/new_tab.js
+++ b/chromium/chrome/browser/resources/ntp4/new_tab.js
@@ -8,15 +8,6 @@
* browsers. For now this is still a prototype.
*/
-/**
- * @typedef {{direction: string,
- * filler: (boolean|undefined),
- * title: string,
- * url: string}}
- * @see chrome/browser/ui/webui/ntp/most_visited_handler.cc
- */
-var PageData;
-
// Use an anonymous function to enable strict mode just for this file (which
// will be concatenated with other files when embedded in Chrome
cr.define('ntp', function() {
@@ -56,12 +47,6 @@ cr.define('ntp', function() {
var shouldShowLoginBubble = false;
/**
- * The 'other-sessions-menu-button' element.
- * @type {!ntp.OtherSessionsMenuButton|undefined}
- */
- var otherSessionsButton;
-
- /**
* The time when all sections are ready.
* @type {number|undefined}
* @private
@@ -126,8 +111,6 @@ cr.define('ntp', function() {
*/
function onLoad() {
sectionsToWaitFor = 0;
- if (loadTimeData.getBoolean('showMostvisited'))
- sectionsToWaitFor++;
if (loadTimeData.getBoolean('showApps')) {
sectionsToWaitFor++;
if (loadTimeData.getBoolean('showAppLauncherPromo')) {
@@ -148,27 +131,6 @@ cr.define('ntp', function() {
notificationContainer.addEventListener(
'webkitTransitionEnd', onNotificationTransitionEnd);
- if (loadTimeData.getBoolean('showOtherSessionsMenu')) {
- otherSessionsButton = /** @type {!ntp.OtherSessionsMenuButton} */(
- getRequiredElement('other-sessions-menu-button'));
- cr.ui.decorate(otherSessionsButton, ntp.OtherSessionsMenuButton);
- otherSessionsButton.initialize(loadTimeData.getBoolean('isUserSignedIn'));
- } else {
- getRequiredElement('other-sessions-menu-button').hidden = true;
- }
-
- if (loadTimeData.getBoolean('showMostvisited')) {
- var mostVisited = new ntp.MostVisitedPage();
- // Move the footer into the most visited page if we are in "bare minimum"
- // mode.
- if (document.body.classList.contains('bare-minimum'))
- mostVisited.appendFooter(getRequiredElement('footer'));
- newTabView.appendTilePage(mostVisited,
- loadTimeData.getString('mostvisited'),
- false);
- chrome.send('getMostVisited');
- }
-
if (!loadTimeData.getBoolean('showWebStoreIcon')) {
var webStoreIcon = $('chrome-web-store-link');
// Not all versions of the NTP have a footer, so this may not exist.
@@ -341,14 +303,11 @@ cr.define('ntp', function() {
* its length may be measured and the nav dots sized accordingly.
*/
function measureNavDots() {
- var pxWidth = measureNavDot('appDefaultPageName');
- if (loadTimeData.getBoolean('showMostvisited'))
- pxWidth = Math.max(measureNavDot('mostvisited'), pxWidth);
-
var styleElement = document.createElement('style');
styleElement.type = 'text/css';
// max-width is used because if we run out of space, the nav dots will be
// shrunk.
+ var pxWidth = measureNavDot('appDefaultPageName');
styleElement.textContent = '.dot { max-width: ' + pxWidth + 'px; }';
document.querySelector('head').appendChild(styleElement);
}
@@ -522,15 +481,6 @@ cr.define('ntp', function() {
}
/**
- * @param {Array<PageData>} data
- * @param {boolean} hasBlacklistedUrls
- */
- function setMostVisitedPages(data, hasBlacklistedUrls) {
- newTabView.mostVisitedPage.data = data;
- cr.dispatchSimpleEvent(document, 'sectionready', true, true);
- }
-
- /**
* Set the dominant color for a node. This will be called in response to
* getFaviconDominantColor. The node represented by |id| better have a setter
* for stripeColor.
@@ -556,6 +506,7 @@ cr.define('ntp', function() {
/** @const */ var showLogin = loginHeader || loginSubHeader;
$('login-container').hidden = !showLogin;
+ $('login-container').classList.toggle('signed-in', isUserSignedIn);
$('card-slider-frame').classList.toggle('showing-login-area', !!showLogin);
if (showLogin) {
@@ -575,10 +526,6 @@ cr.define('ntp', function() {
} else if (loginBubble) {
loginBubble.reposition();
}
- if (otherSessionsButton) {
- otherSessionsButton.updateSignInState(isUserSignedIn);
- layoutFooter();
- }
}
/**
@@ -592,16 +539,6 @@ cr.define('ntp', function() {
}
/**
- * Logs the time to click for the specified item.
- * @param {string} item The item to log the time-to-click.
- */
- function logTimeToClick(item) {
- var timeToClick = Date.now() - startTime;
- chrome.send('logTimeToClick',
- ['NewTabPage.TimeToClick' + item, timeToClick]);
- }
-
- /**
* Wrappers to forward the callback to corresponding PageListView member.
*/
@@ -664,13 +601,6 @@ cr.define('ntp', function() {
newTabView.enterRearrangeMode();
}
- function setForeignSessions(sessionList, isTabSyncEnabled) {
- if (otherSessionsButton) {
- otherSessionsButton.setForeignSessions(sessionList, isTabSyncEnabled);
- layoutFooter();
- }
- }
-
/**
* Callback invoked by chrome with the apps available.
*
@@ -731,13 +661,10 @@ cr.define('ntp', function() {
getCardSlider: getCardSlider,
onLoad: onLoad,
leaveRearrangeMode: leaveRearrangeMode,
- logTimeToClick: logTimeToClick,
NtpFollowAction: NtpFollowAction,
saveAppPageName: saveAppPageName,
setAppToBeHighlighted: setAppToBeHighlighted,
setBookmarkBarAttached: setBookmarkBarAttached,
- setForeignSessions: setForeignSessions,
- setMostVisitedPages: setMostVisitedPages,
setFaviconDominantColor: setFaviconDominantColor,
showNotification: showNotification,
themeChanged: themeChanged,
diff --git a/chromium/chrome/browser/resources/ntp4/new_tab_theme.css b/chromium/chrome/browser/resources/ntp4/new_tab_theme.css
index a7b1888784f..52281e8b706 100644
--- a/chromium/chrome/browser/resources/ntp4/new_tab_theme.css
+++ b/chromium/chrome/browser/resources/ntp4/new_tab_theme.css
@@ -90,18 +90,6 @@ body {
background-color: rgba($23, 0.85); /* COLOR_NTP_TEXT */
}
-/* Most Visited ***************************************************************/
-
-.most-visited,
-.most-visited > .title {
- color: $8; /* COLOR_NTP_TEXT */
-}
-
-.most-visited:focus:not(.filler) .thumbnail-wrapper,
-.most-visited:hover:not(.filler) .thumbnail-wrapper {
- background-color: $6; /* COLOR_NTP_HEADER */
-}
-
.thumbnail-wrapper {
/* This shows through at the (rounded) thumbnail's corners. */
background-color: $11; /* COLOR_NTP_SECTION_BORDER */
diff --git a/chromium/chrome/browser/resources/ntp4/other_sessions.js b/chromium/chrome/browser/resources/ntp4/other_sessions.js
deleted file mode 100644
index bc118185082..00000000000
--- a/chromium/chrome/browser/resources/ntp4/other_sessions.js
+++ /dev/null
@@ -1,386 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-/**
- * @fileoverview The menu that shows tabs from sessions on other devices.
- */
-
-/**
- * @typedef {{collapsed: boolean,
- * deviceType: string,
- * modifiedTime: string,
- * name: string,
- * tag: string,
- * windows: Array<WindowData>}}
- * @see chrome/browser/ui/webui/ntp/foreign_session_handler.cc
- */
-var SessionData;
-
-/**
- * @typedef {{sessionId: number,
- * tabs: Array,
- * timestamp: number,
- * type: string,
- * userVisibleTimestamp: string}}
- * @see chrome/browser/ui/webui/ntp/foreign_session_handler.cc
- */
-var WindowData;
-
-cr.define('ntp', function() {
- 'use strict';
-
- /** @const */ var ContextMenuButton = cr.ui.ContextMenuButton;
- /** @const */ var Menu = cr.ui.Menu;
- /** @const */ var MenuItem = cr.ui.MenuItem;
- /** @const */ var MenuButton = cr.ui.MenuButton;
-
- /**
- * @constructor
- * @extends {cr.ui.MenuButton}
- */
- var OtherSessionsMenuButton = cr.ui.define('button');
-
- // Histogram buckets for UMA tracking of menu usage.
- /** @const */ var HISTOGRAM_EVENT = {
- INITIALIZED: 0,
- SHOW_MENU: 1,
- LINK_CLICKED: 2,
- LINK_RIGHT_CLICKED: 3,
- SESSION_NAME_RIGHT_CLICKED: 4,
- SHOW_SESSION_MENU: 5,
- COLLAPSE_SESSION: 6,
- EXPAND_SESSION: 7,
- OPEN_ALL: 8
- };
- /** @const */ var HISTOGRAM_EVENT_LIMIT =
- HISTOGRAM_EVENT.OPEN_ALL + 1;
-
- /**
- * Record an event in the UMA histogram.
- * @param {number} eventId The id of the event to be recorded.
- * @private
- */
- function recordUmaEvent_(eventId) {
- chrome.send('metricsHandler:recordInHistogram',
- ['NewTabPage.OtherSessionsMenu', eventId, HISTOGRAM_EVENT_LIMIT]);
- }
-
- OtherSessionsMenuButton.prototype = {
- __proto__: MenuButton.prototype,
-
- decorate: function() {
- MenuButton.prototype.decorate.call(this);
- this.menu = new Menu;
- this.menu.menuItemSelector = '[role=menuitem]'; // before decoration
- cr.ui.decorate(this.menu, Menu);
- this.menu.classList.add('footer-menu');
- this.menu.addEventListener('contextmenu',
- this.onContextMenu_.bind(this), true);
- document.body.appendChild(this.menu);
-
- // Create the context menu that appears when the user right clicks
- // on a device name.
- this.deviceContextMenu_ = DeviceContextMenuController.getInstance().menu;
- document.body.appendChild(this.deviceContextMenu_);
-
- this.promoMessage_ = $('other-sessions-promo-template').cloneNode(true);
- this.promoMessage_.removeAttribute('id'); // Prevent a duplicate id.
-
- this.sessions_ = [];
- this.anchorType = cr.ui.AnchorType.ABOVE;
- this.invertLeftRight = true;
-
- // Initialize the images for the drop-down buttons that appear beside the
- // session names.
- MenuButton.createDropDownArrows();
-
- recordUmaEvent_(HISTOGRAM_EVENT.INITIALIZED);
- },
-
- /**
- * Initialize this element.
- * @param {boolean} signedIn Is the current user signed in?
- */
- initialize: function(signedIn) {
- this.updateSignInState(signedIn);
- },
-
- /**
- * Handle a context menu event for an object in the menu's DOM subtree.
- */
- onContextMenu_: function(e) {
- // Only record the action if it occurred in one of the menu items or
- // on one of the session headings.
- if (findAncestorByClass(e.target, 'footer-menu-item')) {
- recordUmaEvent_(HISTOGRAM_EVENT.LINK_RIGHT_CLICKED);
- } else {
- var heading = findAncestorByClass(e.target, 'session-heading');
- if (heading) {
- recordUmaEvent_(HISTOGRAM_EVENT.SESSION_NAME_RIGHT_CLICKED);
-
- // Let the context menu know which session it was invoked on,
- // since they all share the same instance of the menu.
- DeviceContextMenuController.getInstance().setSession(
- heading.sessionData_);
- }
- }
- },
-
- /**
- * Hides the menu.
- * @override
- */
- hideMenu: function() {
- // Don't hide if the device context menu is currently showing.
- if (this.deviceContextMenu_.hidden)
- MenuButton.prototype.hideMenu.call(this);
- },
-
- /**
- * Shows the menu, first rebuilding it if necessary.
- * TODO(estade): the right of the menu should align with the right of the
- * button.
- * @override
- */
- showMenu: function(shouldSetFocus) {
- if (this.sessions_.length == 0)
- chrome.send('getForeignSessions');
- recordUmaEvent_(HISTOGRAM_EVENT.SHOW_MENU);
- MenuButton.prototype.showMenu.apply(this, arguments);
-
- // Work around https://bugs.webkit.org/show_bug.cgi?id=85884.
- this.menu.scrollTop = 0;
- },
-
- /**
- * Reset the menu contents to the default state.
- * @private
- */
- resetMenuContents_: function() {
- this.menu.innerHTML = '';
- this.menu.appendChild(this.promoMessage_);
- },
-
- /**
- * Create a custom click handler for a link, so that clicking on a link
- * restores the session (including back stack) rather than just opening
- * the URL.
- */
- makeClickHandler_: function(sessionTag, windowId, tabId) {
- var self = this;
- return function(e) {
- recordUmaEvent_(HISTOGRAM_EVENT.LINK_CLICKED);
- chrome.send('openForeignSession', [sessionTag, windowId, tabId,
- e.button, e.altKey, e.ctrlKey, e.metaKey, e.shiftKey]);
- e.preventDefault();
- };
- },
-
- /**
- * Add the UI for a foreign session to the menu.
- * @param {SessionData} session Object describing the foreign session.
- */
- addSession_: function(session) {
- var doc = this.ownerDocument;
-
- var section = doc.createElement('section');
- this.menu.appendChild(section);
-
- var heading = doc.createElement('h3');
- heading.className = 'session-heading';
- heading.textContent = session.name;
- heading.sessionData_ = session;
- section.appendChild(heading);
-
- var dropDownButton = new ContextMenuButton;
- dropDownButton.classList.add('drop-down');
- // Keep track of the drop down that triggered the menu, so we know
- // which element to apply the command to.
- function handleDropDownFocus(e) {
- DeviceContextMenuController.getInstance().setSession(session);
- }
- dropDownButton.addEventListener('mousedown', handleDropDownFocus);
- dropDownButton.addEventListener('focus', handleDropDownFocus);
- heading.appendChild(dropDownButton);
-
- var timeSpan = doc.createElement('span');
- timeSpan.className = 'details';
- timeSpan.textContent = session.modifiedTime;
- heading.appendChild(timeSpan);
-
- cr.ui.contextMenuHandler.setContextMenu(heading,
- this.deviceContextMenu_);
-
- if (!session.collapsed)
- section.appendChild(this.createSessionContents_(session));
- },
-
- /**
- * Create the DOM tree representing the tabs and windows in a session.
- * @param {SessionData} session The session model object.
- * @return {Element} A single div containing the list of tabs & windows.
- * @private
- */
- createSessionContents_: function(session) {
- var doc = this.ownerDocument;
- var contents = doc.createElement('div');
-
- for (var i = 0; i < session.windows.length; i++) {
- var window = session.windows[i];
-
- // Show a separator between multiple windows in the same session.
- if (i > 0)
- contents.appendChild(doc.createElement('hr'));
-
- for (var j = 0; j < window.tabs.length; j++) {
- var tab = window.tabs[j];
- var a = doc.createElement('a');
- a.className = 'footer-menu-item';
- a.textContent = tab.title;
- a.href = tab.url;
- a.style.backgroundImage = getFaviconImageSet(tab.url);
-
- var clickHandler = this.makeClickHandler_(
- session.tag, String(window.sessionId), String(tab.sessionId));
- a.addEventListener('click', clickHandler);
- contents.appendChild(a);
- cr.ui.decorate(a, MenuItem);
- }
- }
-
- return contents;
- },
-
- /**
- * Sets the menu model data. An empty list means that either there are no
- * foreign sessions, or tab sync is disabled for this profile.
- * |isTabSyncEnabled| makes it possible to distinguish between the cases.
- *
- * @param {Array<SessionData>} sessionList Array of objects describing the
- * sessions from other devices.
- * @param {boolean} isTabSyncEnabled Is tab sync enabled for this profile?
- */
- setForeignSessions: function(sessionList, isTabSyncEnabled) {
- this.sessions_ = sessionList;
- this.resetMenuContents_();
- if (sessionList.length > 0) {
- // Rebuild the menu with the new data.
- for (var i = 0; i < sessionList.length; i++) {
- this.addSession_(sessionList[i]);
- }
- }
-
- // The menu button is shown iff tab sync is enabled.
- this.hidden = !isTabSyncEnabled;
- },
-
- /**
- * Called when this element is initialized, and from the new tab page when
- * the user's signed in state changes,
- * @param {boolean} signedIn Is the user currently signed in?
- */
- updateSignInState: function(signedIn) {
- if (signedIn)
- chrome.send('getForeignSessions');
- else
- this.hidden = true;
- },
- };
-
- /**
- * Controller for the context menu for device names in the list of sessions.
- * This class is designed to be used as a singleton.
- *
- * @constructor
- */
- function DeviceContextMenuController() {
- this.__proto__ = DeviceContextMenuController.prototype;
- this.initialize();
- }
- cr.addSingletonGetter(DeviceContextMenuController);
-
- DeviceContextMenuController.prototype = {
-
- initialize: function() {
- var menu = new cr.ui.Menu;
- cr.ui.decorate(menu, cr.ui.Menu);
- menu.classList.add('device-context-menu');
- menu.classList.add('footer-menu-context-menu');
- this.menu = menu;
- this.collapseItem_ = this.appendMenuItem_('collapseSessionMenuItemText');
- this.collapseItem_.addEventListener('activate',
- this.onCollapseOrExpand_.bind(this));
- this.expandItem_ = this.appendMenuItem_('expandSessionMenuItemText');
- this.expandItem_.addEventListener('activate',
- this.onCollapseOrExpand_.bind(this));
- this.openAllItem_ = this.appendMenuItem_('restoreSessionMenuItemText');
- this.openAllItem_.addEventListener('activate',
- this.onOpenAll_.bind(this));
- },
-
- /**
- * Appends a menu item to |this.menu|.
- * @param {string} textId The ID for the localized string that acts as
- * the item's label.
- */
- appendMenuItem_: function(textId) {
- var button = cr.doc.createElement('button');
- this.menu.appendChild(button);
- cr.ui.decorate(button, cr.ui.MenuItem);
- button.textContent = loadTimeData.getString(textId);
- return button;
- },
-
- /**
- * Handler for the 'Collapse' and 'Expand' menu items.
- * @param {Event} e The activation event.
- * @private
- */
- onCollapseOrExpand_: function(e) {
- this.session_.collapsed = !this.session_.collapsed;
- this.updateMenuItems_();
- chrome.send('setForeignSessionCollapsed',
- [this.session_.tag, this.session_.collapsed]);
- chrome.send('getForeignSessions'); // Refresh the list.
-
- var eventId = this.session_.collapsed ?
- HISTOGRAM_EVENT.COLLAPSE_SESSION : HISTOGRAM_EVENT.EXPAND_SESSION;
- recordUmaEvent_(eventId);
- },
-
- /**
- * Handler for the 'Open all' menu item.
- * @param {Event} e The activation event.
- * @private
- */
- onOpenAll_: function(e) {
- chrome.send('openForeignSession', [this.session_.tag]);
- recordUmaEvent_(HISTOGRAM_EVENT.OPEN_ALL);
- },
-
- /**
- * Set the session data for the session the context menu was invoked on.
- * This should never be called when the menu is visible.
- * @param {Object} session The model object for the session.
- */
- setSession: function(session) {
- this.session_ = session;
- this.updateMenuItems_();
- },
-
- /**
- * Set the visibility of the Expand/Collapse menu items based on the state
- * of the session that this menu is currently associated with.
- * @private
- */
- updateMenuItems_: function() {
- this.collapseItem_.hidden = this.session_.collapsed;
- this.expandItem_.hidden = !this.session_.collapsed;
- }
- };
-
- return {
- OtherSessionsMenuButton: OtherSessionsMenuButton,
- };
-});
diff --git a/chromium/chrome/browser/resources/ntp4/page_list_view.js b/chromium/chrome/browser/resources/ntp4/page_list_view.js
index fa1513b9bd3..69027b966ae 100644
--- a/chromium/chrome/browser/resources/ntp4/page_list_view.js
+++ b/chromium/chrome/browser/resources/ntp4/page_list_view.js
@@ -27,6 +27,7 @@
* is_component: boolean,
* is_webstore: boolean,
* kioskEnabled: boolean,
+ * kioskMode: boolean,
* kioskOnly: boolean,
* launch_container: number,
* launch_type: number,
@@ -86,12 +87,6 @@ cr.define('ntp', function() {
appsPages: undefined,
/**
- * The Most Visited page.
- * @type {!Element|undefined}
- */
- mostVisitedPage: undefined,
-
- /**
* The 'dots-list' element.
* @type {!Element|undefined}
*/
@@ -174,20 +169,13 @@ cr.define('ntp', function() {
this.shownPage = loadTimeData.getInteger('shown_page_type');
this.shownPageIndex = loadTimeData.getInteger('shown_page_index');
- if (loadTimeData.getBoolean('showApps')) {
- // Request data on the apps so we can fill them in.
- // Note that this is kicked off asynchronously. 'getAppsCallback' will
- // be invoked at some point after this function returns.
- chrome.send('getApps');
- } else {
- // No apps page.
- if (this.shownPage == loadTimeData.getInteger('apps_page_id')) {
- this.setShownPage_(
- loadTimeData.getInteger('most_visited_page_id'), 0);
- }
+ // TODO(dbeam): remove showApps and everything that says if (apps).
+ assert(loadTimeData.getBoolean('showApps'));
- document.body.classList.add('bare-minimum');
- }
+ // Request data on the apps so we can fill them in.
+ // Note that this is kicked off asynchronously. 'getAppsCallback' will
+ // be invoked at some point after this function returns.
+ chrome.send('getApps');
document.addEventListener('keydown', this.onDocKeyDown_.bind(this));
@@ -259,14 +247,6 @@ cr.define('ntp', function() {
this.cardSlider.appendCard(page);
}
- // Remember special MostVisitedPage.
- if (typeof ntp.MostVisitedPage != 'undefined' &&
- page instanceof ntp.MostVisitedPage) {
- assert(this.tilePages.length == 1,
- 'MostVisitedPage should be added as first tile page');
- this.mostVisitedPage = page;
- }
-
// If we're appending an AppsPage and it's a temporary page, animate it.
var animate = page instanceof ntp.AppsPage &&
page.classList.contains('temporary');
@@ -489,11 +469,10 @@ cr.define('ntp', function() {
$(data.apps[i].id).appData = data.apps[i];
}
- // Set the App dot names. Skip the first dot (Most Visited).
+ // Set the App dot names.
var dots = this.dotList.getElementsByClassName('dot');
- var start = this.mostVisitedPage ? 1 : 0;
- for (var i = start; i < dots.length; ++i) {
- dots[i].displayTitle = data.appPageNames[i - start] || '';
+ for (var i = 0; i < dots.length; ++i) {
+ dots[i].displayTitle = data.appPageNames[i] || '';
}
},
@@ -525,20 +504,11 @@ cr.define('ntp', function() {
this.tilePages.length - 1));
this.cardSlider.setCards(Array.prototype.slice.call(this.tilePages),
pageNo);
- if (this.shownPage == loadTimeData.getInteger('most_visited_page_id')) {
- if (this.mostVisitedPage)
- this.cardSlider.selectCardByValue(this.mostVisitedPage);
- else
- this.shownPage = loadTimeData.getInteger('apps_page_id');
- }
if (this.shownPage == loadTimeData.getInteger('apps_page_id') &&
loadTimeData.getBoolean('showApps')) {
this.cardSlider.selectCardByValue(
this.appsPages[Math.min(this.shownPageIndex,
this.appsPages.length - 1)]);
- } else if (this.mostVisitedPage) {
- this.shownPage = loadTimeData.getInteger('most_visited_page_id');
- this.cardSlider.selectCardByValue(this.mostVisitedPage);
}
},
@@ -665,9 +635,6 @@ cr.define('ntp', function() {
if (page.classList.contains('apps-page')) {
this.setShownPage_(loadTimeData.getInteger('apps_page_id'),
this.getAppsPageIndex(page));
- } else if (page.classList.contains('most-visited-page')) {
- this.setShownPage_(
- loadTimeData.getInteger('most_visited_page_id'), 0);
} else {
console.error('unknown page selected');
}
diff --git a/chromium/chrome/browser/resources/omnibox/omnibox.js b/chromium/chrome/browser/resources/omnibox/omnibox.js
index d2758490c01..8631c277cff 100644
--- a/chromium/chrome/browser/resources/omnibox/omnibox.js
+++ b/chromium/chrome/browser/resources/omnibox/omnibox.js
@@ -135,10 +135,6 @@ define('main', [
'navigates to).'),
new PresentationInfoRecord('Starred', '', 'starred', false,
'A green checkmark indicates that the result has been bookmarked.'),
- new PresentationInfoRecord(
- 'HWYT', '', 'is_history_what_you_typed_match', false,
- 'A green checkmark indicates that the result is an History What You ' +
- 'Typed Match'),
new PresentationInfoRecord('Description', '', 'description', false,
'The page title of the result.'),
new PresentationInfoRecord('URL', '', 'destination_url', true,
diff --git a/chromium/chrome/browser/resources/options/autofill_edit_address_overlay.html b/chromium/chrome/browser/resources/options/autofill_edit_address_overlay.html
index 3b7ef004c9c..0deecad894d 100644
--- a/chromium/chrome/browser/resources/options/autofill_edit_address_overlay.html
+++ b/chromium/chrome/browser/resources/options/autofill_edit_address_overlay.html
@@ -14,15 +14,17 @@
<div class="input-group settings-row">
<div>
- <div i18n-content="autofillPhoneLabel"></div>
- <list class="short" field="phone"
- i18n-values="placeholder:autofillAddPhonePlaceholder"></list>
+ <label>
+ <div i18n-content="autofillPhoneLabel"></div>
+ <input class="short" field="phone"></input>
+ </label>
</div>
<div>
- <div i18n-content="autofillEmailLabel"></div>
- <list class="short" field="email"
- i18n-values="placeholder:autofillAddEmailPlaceholder"></list>
+ <label>
+ <div i18n-content="autofillEmailLabel"></div>
+ <input class="short" field="email"></input>
+ </label>
</div>
</div>
diff --git a/chromium/chrome/browser/resources/options/autofill_edit_address_overlay.js b/chromium/chrome/browser/resources/options/autofill_edit_address_overlay.js
index 5dbe25e336c..85675d57c1f 100644
--- a/chromium/chrome/browser/resources/options/autofill_edit_address_overlay.js
+++ b/chromium/chrome/browser/resources/options/autofill_edit_address_overlay.js
@@ -50,8 +50,6 @@ cr.define('options', function() {
initializePage: function() {
Page.prototype.initializePage.call(this);
- this.createMultiValueLists_();
-
var self = this;
$('autofill-edit-address-cancel-button').onclick = function(event) {
self.dismissOverlay_();
@@ -62,26 +60,8 @@ cr.define('options', function() {
// Blur active element to ensure that pending changes are committed.
if (document.activeElement)
document.activeElement.blur();
- // Blurring is delayed for list elements. Queue save and close to
- // ensure that pending changes have been applied.
- setTimeout(function() {
- self.pageDiv.querySelector('[field=phone]').doneValidating().then(
- function() {
- self.saveAddress_();
- self.dismissOverlay_();
- });
- }, 0);
- };
-
- // Prevent 'blur' events on the OK and cancel buttons, which can trigger
- // insertion of new placeholder elements. The addition of placeholders
- // affects layout, which interferes with being able to click on the
- // buttons.
- $('autofill-edit-address-apply-button').onmousedown = function(event) {
- event.preventDefault();
- };
- $('autofill-edit-address-cancel-button').onmousedown = function(event) {
- event.preventDefault();
+ self.saveAddress_();
+ self.dismissOverlay_();
};
this.guid_ = '';
@@ -108,42 +88,6 @@ cr.define('options', function() {
},
/**
- * Creates, decorates and initializes the multi-value lists for phone and
- * email.
- * @private
- */
- createMultiValueLists_: function() {
- var list = this.pageDiv.querySelector('[field=phone]');
- options.autofillOptions.AutofillPhoneValuesList.decorate(list);
- list.autoExpands = true;
-
- list = this.pageDiv.querySelector('[field=email]');
- options.autofillOptions.AutofillValuesList.decorate(list);
- list.autoExpands = true;
- },
-
- /**
- * Updates the data model for the |list| with the values from |entries|.
- * @param {cr.ui.List} list The list to update.
- * @param {Array} entries The list of items to be added to the list.
- * @private
- */
- setMultiValueList_: function(list, entries) {
- // Add special entry for adding new values.
- var augmentedList = entries.slice();
- augmentedList.push(null);
- list.dataModel = new ArrayDataModel(augmentedList);
-
- // Update the status of the 'OK' button.
- this.inputFieldChanged_();
-
- list.dataModel.addEventListener('splice',
- this.inputFieldChanged_.bind(this));
- list.dataModel.addEventListener('change',
- this.inputFieldChanged_.bind(this));
- },
-
- /**
* Clears any uncommitted input, resets the stored GUID and dismisses the
* overlay.
* @private
@@ -166,15 +110,6 @@ cr.define('options', function() {
},
/**
- * Returns all list elements.
- * @return {!NodeList} The list elements.
- * @private
- */
- getLists_: function() {
- return this.pageDiv.querySelectorAll('list[field]');
- },
-
- /**
* Returns all text input elements.
* @return {!NodeList} The text input elements.
* @private
@@ -191,12 +126,6 @@ cr.define('options', function() {
getInputFields_: function() {
var address = {country: this.getCountrySwitcher_().value};
- var lists = this.getLists_();
- for (var i = 0; i < lists.length; i++) {
- address[lists[i].getAttribute('field')] =
- lists[i].dataModel.slice(0, lists[i].dataModel.length - 1);
- }
-
var fields = this.getTextFields_();
for (var i = 0; i < fields.length; i++) {
address[fields[i].getAttribute('field')] = fields[i].value;
@@ -213,12 +142,6 @@ cr.define('options', function() {
setInputFields_: function(address) {
this.getCountrySwitcher_().value = address.country || '';
- var lists = this.getLists_();
- for (var i = 0; i < lists.length; i++) {
- this.setMultiValueList_(
- lists[i], address[lists[i].getAttribute('field')] || []);
- }
-
var fields = this.getTextFields_();
for (var i = 0; i < fields.length; i++) {
fields[i].value = address[fields[i].getAttribute('field')] || '';
@@ -277,18 +200,6 @@ cr.define('options', function() {
inputFieldChanged_: function() {
var disabled = !this.getCountrySwitcher_().value;
if (disabled) {
- // Length of lists are tested for > 1 due to the "add" placeholder item
- // in the list.
- var lists = this.getLists_();
- for (var i = 0; i < lists.length; i++) {
- if (lists[i].items.length > 1) {
- disabled = false;
- break;
- }
- }
- }
-
- if (disabled) {
var fields = this.getTextFields_();
for (var i = 0; i < fields.length; i++) {
if (fields[i].value) {
@@ -320,7 +231,7 @@ cr.define('options', function() {
populateCountryList_: function() {
var countryList = loadTimeData.getValue('autofillCountrySelectList');
- // Add the countries to the country <select> list.
+ // Add the countries to the country <select>.
var countrySelect = this.getCountrySwitcher_();
// Add an empty option.
countrySelect.appendChild(new Option('', ''));
@@ -388,8 +299,7 @@ cr.define('options', function() {
var content = $('autofill-edit-address-fields');
content.innerHTML = '';
- var customContainerElements = {fullName: 'div'};
- var customInputElements = {fullName: 'list', addrLines: 'textarea'};
+ var customInputElements = {addrLines: 'textarea'};
for (var i in components) {
var row = document.createElement('div');
@@ -400,8 +310,7 @@ cr.define('options', function() {
if (components[i][j].field == 'country')
continue;
- var fieldContainer = document.createElement(
- customContainerElements[components[i][j].field] || 'label');
+ var fieldContainer = document.createElement('label');
row.appendChild(fieldContainer);
var fieldName = document.createElement('div');
@@ -412,13 +321,7 @@ cr.define('options', function() {
customInputElements[components[i][j].field] || 'input');
input.setAttribute('field', components[i][j].field);
input.classList.add(components[i][j].length);
- input.setAttribute('placeholder', components[i][j].placeholder || '');
fieldContainer.appendChild(input);
-
- if (input.tagName == 'LIST') {
- options.autofillOptions.AutofillValuesList.decorate(input);
- input.autoExpands = true;
- }
}
}
},
@@ -440,14 +343,6 @@ cr.define('options', function() {
$('autofill-address-title').textContent = title;
};
- AutofillEditAddressOverlay.setValidatedPhoneNumbers = function(numbers) {
- var instance = AutofillEditAddressOverlay.getInstance();
- var phoneList = instance.pageDiv.querySelector('[field=phone]');
- instance.setMultiValueList_(assertInstanceof(phoneList, cr.ui.List),
- numbers);
- phoneList.didReceiveValidationResult();
- };
-
// Export
return {
AutofillEditAddressOverlay: AutofillEditAddressOverlay
diff --git a/chromium/chrome/browser/resources/options/autofill_options.html b/chromium/chrome/browser/resources/options/autofill_options.html
index bb7b70b5b33..3e7bb327c98 100644
--- a/chromium/chrome/browser/resources/options/autofill_options.html
+++ b/chromium/chrome/browser/resources/options/autofill_options.html
@@ -10,6 +10,9 @@
<input pref="autofill.wallet_import_enabled" type="checkbox">
<span i18n-content="autofillWalletOption"></span>
</div>
+<!-- TODO(erikchen): After Address Book integration has been disabled for
+ 6 weeks, and there are no major problems, rip out all the code. Expected
+ removal date: 07/15/2015. http://crbug.com/488146.
<if expr="is_macosx">
<div class="checkbox">
<label>
@@ -20,6 +23,7 @@
</label>
</div>
</if>
+ -->
<h3 i18n-content="autofillAddresses"></h3>
<div class="settings-list">
<list id="address-list"></list>
diff --git a/chromium/chrome/browser/resources/options/autofill_options.js b/chromium/chrome/browser/resources/options/autofill_options.js
index d90469280d8..5a6f691d3bd 100644
--- a/chromium/chrome/browser/resources/options/autofill_options.js
+++ b/chromium/chrome/browser/resources/options/autofill_options.js
@@ -69,6 +69,10 @@ cr.define('options', function() {
$('autofill-options-confirm').onclick = function(event) {
PageManager.closeOverlay();
};
+// TODO(erikchen): After Address Book integration has been disabled for
+// 6 weeks, and there are no major problems, rip out all the code. Expected
+// removal date: 07/15/2015. http://crbug.com/488146.
+/*
<if expr="is_macosx">
$('autofill-use-mac-address-book-checkbox').onchange = function(event) {
if (this.checked) {
@@ -82,6 +86,7 @@ cr.define('options', function() {
}
};
</if>
+*/
$('autofill-help').onclick = function(event) {
chrome.send('coreOptionsUserMetricsAction',
diff --git a/chromium/chrome/browser/resources/options/autofill_options_list.js b/chromium/chrome/browser/resources/options/autofill_options_list.js
index 7db223b43c2..cd3dd261b6d 100644
--- a/chromium/chrome/browser/resources/options/autofill_options_list.js
+++ b/chromium/chrome/browser/resources/options/autofill_options_list.js
@@ -183,216 +183,6 @@ cr.define('options.autofillOptions', function() {
};
/**
- * Creates a new value list item.
- * @param {options.autofillOptions.AutofillValuesList} list The parent list of
- * this item.
- * @param {string} entry A string value.
- * @constructor
- * @extends {options.InlineEditableItem}
- */
- function ValuesListItem(list, entry) {
- var el = cr.doc.createElement('div');
- el.list = list;
- el.value = entry ? entry : '';
- el.__proto__ = ValuesListItem.prototype;
- el.decorate();
-
- return el;
- }
-
- ValuesListItem.prototype = {
- __proto__: InlineEditableItem.prototype,
-
- /** @override */
- decorate: function() {
- InlineEditableItem.prototype.decorate.call(this);
-
- // Note: This must be set prior to calling |createEditableTextCell|.
- this.isPlaceholder = !this.value;
-
- // The stored value.
- var cell = this.createEditableTextCell(String(this.value));
- this.contentElement.appendChild(cell);
- this.input = cell.querySelector('input');
-
- if (this.isPlaceholder) {
- this.input.placeholder = this.list.getAttribute('placeholder');
- this.deletable = false;
- }
-
- this.addEventListener('commitedit', this.onEditCommitted_);
- this.closeButtonFocusAllowed = true;
- this.setFocusableColumnIndex(this.input, 0);
- this.setFocusableColumnIndex(this.closeButtonElement, 1);
- },
-
- /**
- * @return {Array} This item's value.
- * @protected
- */
- value_: function() {
- return this.input.value;
- },
-
- /**
- * @param {*} value The value to test.
- * @return {boolean} True if the given value is non-empty.
- * @protected
- */
- valueIsNonEmpty_: function(value) {
- return !!value;
- },
-
- /**
- * @return {boolean} True if value1 is logically equal to value2.
- */
- valuesAreEqual_: function(value1, value2) {
- return value1 === value2;
- },
-
- /**
- * Clears the item's value.
- * @protected
- */
- clearValue_: function() {
- this.input.value = '';
- },
-
- /**
- * Called when committing an edit.
- * If this is an "Add ..." item, committing a non-empty value adds that
- * value to the end of the values list, but also leaves this "Add ..." item
- * in place.
- * @param {Event} e The end event.
- * @private
- */
- onEditCommitted_: function(e) {
- var value = this.value_();
- var i = this.list.items.indexOf(this);
- if (i < this.list.dataModel.length &&
- this.valuesAreEqual_(value, this.list.dataModel.item(i))) {
- return;
- }
-
- var entries = this.list.dataModel.slice();
- if (this.valueIsNonEmpty_(value) &&
- !entries.some(this.valuesAreEqual_.bind(this, value))) {
- // Update with new value.
- if (this.isPlaceholder) {
- // It is important that updateIndex is done before validateAndSave.
- // Otherwise we can not be sure about AddRow index.
- this.list.ignoreChangeEvents(function() {
- this.list.dataModel.updateIndex(i);
- }.bind(this));
- this.list.validateAndSave(i, 0, value);
- } else {
- this.list.validateAndSave(i, 1, value);
- }
- } else {
- // Reject empty values and duplicates.
- if (!this.isPlaceholder) {
- this.list.ignoreChangeEvents(function() {
- this.list.dataModel.splice(i, 1);
- }.bind(this));
- this.list.selectIndexWithoutFocusing(i);
- } else {
- this.clearValue_();
- }
- }
- },
- };
-
- /**
- * Creates a new name value list item.
- * @param {options.autofillOptions.AutofillNameValuesList} list The parent
- * list of this item.
- * @param {Array<string>} entry An array of [first, middle, last] names.
- * @constructor
- * @extends {options.autofillOptions.ValuesListItem}
- */
- function NameListItem(list, entry) {
- var el = cr.doc.createElement('div');
- el.list = list;
- el.first = entry ? entry[0] : '';
- el.middle = entry ? entry[1] : '';
- el.last = entry ? entry[2] : '';
- el.__proto__ = NameListItem.prototype;
- el.decorate();
-
- return el;
- }
-
- NameListItem.prototype = {
- __proto__: ValuesListItem.prototype,
-
- /** @override */
- decorate: function() {
- InlineEditableItem.prototype.decorate.call(this);
-
- // Note: This must be set prior to calling |createEditableTextCell|.
- this.isPlaceholder = !this.first && !this.middle && !this.last;
-
- // The stored value.
- // For the simulated static "input element" to display correctly, the
- // value must not be empty. We use a space to force the UI to render
- // correctly when the value is logically empty.
- var cell = this.createEditableTextCell(this.first);
- this.contentElement.appendChild(cell);
- this.firstNameInput = cell.querySelector('input');
-
- cell = this.createEditableTextCell(this.middle);
- this.contentElement.appendChild(cell);
- this.middleNameInput = cell.querySelector('input');
-
- cell = this.createEditableTextCell(this.last);
- this.contentElement.appendChild(cell);
- this.lastNameInput = cell.querySelector('input');
-
- if (this.isPlaceholder) {
- this.firstNameInput.placeholder =
- loadTimeData.getString('autofillAddFirstNamePlaceholder');
- this.middleNameInput.placeholder =
- loadTimeData.getString('autofillAddMiddleNamePlaceholder');
- this.lastNameInput.placeholder =
- loadTimeData.getString('autofillAddLastNamePlaceholder');
- this.deletable = false;
- }
-
- this.addEventListener('commitedit', this.onEditCommitted_);
- },
-
- /** @override */
- value_: function() {
- return [this.firstNameInput.value,
- this.middleNameInput.value,
- this.lastNameInput.value];
- },
-
- /** @override */
- valueIsNonEmpty_: function(value) {
- return value[0] || value[1] || value[2];
- },
-
- /** @override */
- valuesAreEqual_: function(value1, value2) {
- // First, check for null values.
- if (!value1 || !value2)
- return value1 == value2;
-
- return value1[0] === value2[0] &&
- value1[1] === value2[1] &&
- value1[2] === value2[2];
- },
-
- /** @override */
- clearValue_: function() {
- this.firstNameInput.value = '';
- this.middleNameInput.value = '';
- this.lastNameInput.value = '';
- },
- };
-
- /**
* Base class for shared implementation between address and credit card lists.
* @constructor
* @extends {options.DeletableItemList}
@@ -485,142 +275,11 @@ cr.define('options.autofillOptions', function() {
},
};
- /**
- * Create a new value list.
- * @constructor
- * @extends {options.InlineEditableItemList}
- */
- var AutofillValuesList = cr.ui.define('list');
-
- AutofillValuesList.prototype = {
- __proto__: InlineEditableItemList.prototype,
-
- /** @override */
- createItem: function(entry) {
- assert(entry === null || typeof entry == 'string');
- return new ValuesListItem(this, entry);
- },
-
- /** @override */
- deleteItemAtIndex: function(index) {
- this.dataModel.splice(index, 1);
- },
-
- /** @override */
- shouldFocusPlaceholderOnEditCommit: function() {
- return false;
- },
-
- /**
- * Called when a new list item should be validated; subclasses are
- * responsible for implementing if validation is required.
- * @param {number} index The index of the item that was inserted or changed.
- * @param {number} remove The number items to remove.
- * @param {string} value The value of the item to insert.
- */
- validateAndSave: function(index, remove, value) {
- this.ignoreChangeEvents(function() {
- this.dataModel.splice(index, remove, value);
- }.bind(this));
- this.selectIndexWithoutFocusing(index);
- },
- };
-
- /**
- * Create a new value list for phone number validation.
- * @constructor
- * @extends {options.autofillOptions.AutofillValuesList}
- */
- var AutofillNameValuesList = cr.ui.define('list');
-
- AutofillNameValuesList.prototype = {
- __proto__: AutofillValuesList.prototype,
-
- /**
- * @override
- * @param {?string|Array<string>} entry
- */
- createItem: function(entry) {
- var arrayOrNull = entry ? assertInstanceof(entry, Array) : null;
- return new NameListItem(this, arrayOrNull);
- },
- };
-
- /**
- * Create a new value list for phone number validation.
- * @constructor
- * @extends {options.autofillOptions.AutofillValuesList}
- */
- var AutofillPhoneValuesList = cr.ui.define('list');
-
- AutofillPhoneValuesList.prototype = {
- __proto__: AutofillValuesList.prototype,
-
- /** @override */
- validateAndSave: function(index, remove, value) {
- var numbers = this.dataModel.slice(0, this.dataModel.length - 1);
- numbers.splice(index, remove, value);
- var info = new Array();
- info[0] = index;
- info[1] = numbers;
- info[2] = document.querySelector(
- '#autofill-edit-address-overlay [field=country]').value;
- this.validationRequests_++;
- chrome.send('validatePhoneNumbers', info);
- },
-
- /**
- * The number of ongoing validation requests.
- * @type {number}
- * @private
- */
- validationRequests_: 0,
-
- /**
- * Pending Promise resolver functions.
- * @type {Array<!Function>}
- * @private
- */
- validationPromiseResolvers_: [],
-
- /**
- * This should be called when a reply of chrome.send('validatePhoneNumbers')
- * is received.
- */
- didReceiveValidationResult: function() {
- this.validationRequests_--;
- assert(this.validationRequests_ >= 0);
- if (this.validationRequests_ <= 0) {
- while (this.validationPromiseResolvers_.length) {
- this.validationPromiseResolvers_.pop()();
- }
- }
- },
-
- /**
- * Returns a Promise which is fulfilled when all of validation requests are
- * completed.
- * @return {!Promise} A promise.
- */
- doneValidating: function() {
- if (this.validationRequests_ <= 0)
- return Promise.resolve();
- return new Promise(function(resolve) {
- this.validationPromiseResolvers_.push(resolve);
- }.bind(this));
- }
- };
-
return {
AutofillProfileList: AutofillProfileList,
AddressListItem: AddressListItem,
CreditCardListItem: CreditCardListItem,
- ValuesListItem: ValuesListItem,
- NameListItem: NameListItem,
AutofillAddressList: AutofillAddressList,
AutofillCreditCardList: AutofillCreditCardList,
- AutofillValuesList: AutofillValuesList,
- AutofillNameValuesList: AutofillNameValuesList,
- AutofillPhoneValuesList: AutofillPhoneValuesList,
};
});
diff --git a/chromium/chrome/browser/resources/options/browser_options.css b/chromium/chrome/browser/resources/options/browser_options.css
index cca6c1e45e5..5b52d06d8e0 100644
--- a/chromium/chrome/browser/resources/options/browser_options.css
+++ b/chromium/chrome/browser/resources/options/browser_options.css
@@ -478,11 +478,8 @@ list:not([disabled]) > .network-group[selected] {
-webkit-margin-start: 0.6em;
}
-#battery-icon {
- display: inline-block;
- height: 25px;
- vertical-align: middle;
- width: 25px;
+#accessibility-screen-magnifier-center-focus-check {
+ -webkit-margin-start: 0.4em;
}
div[guestmode=true] :-webkit-any(
diff --git a/chromium/chrome/browser/resources/options/browser_options.html b/chromium/chrome/browser/resources/options/browser_options.html
index 2f6aad49c4f..076b9613235 100644
--- a/chromium/chrome/browser/resources/options/browser_options.html
+++ b/chromium/chrome/browser/resources/options/browser_options.html
@@ -5,8 +5,8 @@
<include src="reset_profile_settings_banner.html">
<include src="automatic_settings_reset_banner.html">
<if expr="chromeos">
- <link rel="import" href="chrome://resources/cr_elements/cr_network_icon/cr_network_icon.html">
- <link rel="import" href="chrome://resources/cr_elements/cr_onc/cr_onc_data.html">
+ <link rel="import" href="chrome://resources/cr_elements/v1_0/cr_network_icon/cr_network_icon.html">
+ <link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
<include src="secondary_user_banner.html">
<section>
<div id="network-section-header" class="section-header">
@@ -107,16 +107,10 @@
<h3 i18n-content="sectionTitleDevice"></h3>
<div>
<span i18n-content="deviceGroupDescription"></span>
- <div class="settings-row" id="battery" hidden>
- <div id="battery-icon" hidden></div>
- <span id="battery-status"></span>
+ <div class="settings-row" id="power-row" hidden>
<a is="action-link" id="power-settings-button"
i18n-content="powerSettingsButton"></a>
</div>
- <div class="settings-row">
- <button id="battery-button" i18n-content="batteryButton"></button>
- <button id="stored-data-button" i18n-content="storageButton"></button>
- </div>
<div id="touchpad-settings" class="settings-row" hidden>
<span class="option-name" i18n-content="touchpadSpeed"></span>
<input id="touchpad-sensitivity-range" type="range" min="1" max="5"
@@ -421,8 +415,8 @@
</span>
</label>
</div>
-<if expr="_google_chrome">
- <div class="checkbox controlled-setting-with-label">
+ <div id="spelling-enabled-container"
+ class="checkbox controlled-setting-with-label">
<label>
<input id="spelling-enabled-control" type="checkbox"
metric="Options_SpellingServiceCheckbox"
@@ -435,6 +429,7 @@
</span>
</label>
</div>
+<if expr="_google_chrome">
<div id="metrics-reporting-setting"
class="checkbox controlled-setting-with-label">
<if expr="chromeos">
@@ -618,10 +613,6 @@
<section id="web-content-section">
<h3 i18n-content="advancedSectionTitleContent"></h3>
<div>
- <div id="website-settings-section" class="settings-row" hidden>
- <button id="website-management-button"
- i18n-content="websitesManage"></button>
- </div>
<div class="settings-row">
<label class="web-content-select-label">
<span i18n-content="defaultFontSizeLabel"></span>
@@ -893,6 +884,7 @@
<div class="checkbox controlled-setting-with-label">
<label>
<input
+ id="accessibility-screen-magnifier-check"
pref="settings.a11y.screen_magnifier" type="checkbox"
metric="Options_AccessibilityScreenMagnifier">
<span>
@@ -902,6 +894,21 @@
</span>
</label>
</div>
+ <div class="checkbox controlled-setting-with-label">
+ <!-- No whitespace between elements. -->
+ <input type="checkbox" class="spacer-checkbox">
+ <label>
+ <input
+ id = "accessibility-screen-magnifier-center-focus-check"
+ pref="settings.a11y.screen_magnifier_center_focus" type="checkbox"
+ metric="Options_AccessibilityScreenMagnifierCenterFocus">
+ <span>
+ <span i18n-content="accessibilityScreenMagnifierCenterFocus"></span>
+ <span class="controlled-setting-indicator"
+ pref="settings.a11y.screen_magnifier_center_focus"></span>
+ </span>
+ </label>
+ </div>
</div>
<div class="option-name" id="accessibility-tap-dragging">
<div class="checkbox">
diff --git a/chromium/chrome/browser/resources/options/browser_options.js b/chromium/chrome/browser/resources/options/browser_options.js
index d9456b7f888..5ee926d1a48 100644
--- a/chromium/chrome/browser/resources/options/browser_options.js
+++ b/chromium/chrome/browser/resources/options/browser_options.js
@@ -49,7 +49,6 @@ cr.define('options', function() {
ALWAYS: 0,
WIFI_ONLY: 1,
NEVER: 2,
- UNSET: 3,
DEFAULT: 1
};
@@ -295,17 +294,14 @@ cr.define('options', function() {
// Device section (ChromeOS only).
if (cr.isChromeOS) {
- $('power-settings-button').onclick = function(evt) {
- PageManager.showPageByName('power-overlay');
- chrome.send('coreOptionsUserMetricsAction',
- ['Options_ShowPowerSettings']);
- };
- $('battery-button').onclick = function(evt) {
- WebsiteSettingsManager.showWebsiteSettings('battery');
- };
- $('stored-data-button').onclick = function(evt) {
- WebsiteSettingsManager.showWebsiteSettings('storage');
- };
+ if (loadTimeData.getBoolean('showPowerStatus')) {
+ $('power-settings-button').onclick = function(evt) {
+ PageManager.showPageByName('power-overlay');
+ chrome.send('coreOptionsUserMetricsAction',
+ ['Options_ShowPowerSettings']);
+ };
+ $('power-row').hidden = false;
+ }
$('keyboard-settings-button').onclick = function(evt) {
PageManager.showPageByName('keyboard-overlay');
chrome.send('coreOptionsUserMetricsAction',
@@ -498,6 +494,8 @@ cr.define('options', function() {
loadTimeData.getBoolean('showWakeOnWifi')) {
$('wake-on-wifi').hidden = false;
}
+ $('spelling-enabled-container').hidden =
+ loadTimeData.getBoolean('enableMultilingualSpellChecker');
// Bluetooth (CrOS only).
if (cr.isChromeOS) {
@@ -592,14 +590,6 @@ cr.define('options', function() {
$('easy-unlock-enable-proximity-detection').hidden =
!loadTimeData.getBoolean('easyUnlockProximityDetectionAllowed');
- // Website Settings section.
- if (loadTimeData.getBoolean('websiteSettingsManagerEnabled')) {
- $('website-settings-section').hidden = false;
- $('website-management-button').onclick = function(event) {
- PageManager.showPageByName('websiteSettings');
- };
- }
-
// Web Content section.
$('fontSettingsCustomizeFontsButton').onclick = function(event) {
PageManager.showPageByName('fonts');
@@ -682,6 +672,14 @@ cr.define('options', function() {
updateAccessibilitySettingsButton;
updateAccessibilitySettingsButton();
+ var updateScreenMagnifierCenterFocus = function() {
+ $('accessibility-screen-magnifier-center-focus-check').disabled =
+ !$('accessibility-screen-magnifier-check').checked;
+ };
+ Preferences.getInstance().addEventListener(
+ $('accessibility-screen-magnifier-check').getAttribute('pref'),
+ updateScreenMagnifierCenterFocus);
+
var updateDelayDropdown = function() {
$('accessibility-autoclick-dropdown').disabled =
!$('accessibility-autoclick-check').checked;
@@ -1754,12 +1752,7 @@ cr.define('options', function() {
setNetworkPredictionValue_: function(pref) {
var checkbox = $('networkPredictionOptions');
checkbox.disabled = pref.disabled;
- if (pref.value == NetworkPredictionOptions.UNSET) {
- checkbox.checked = (NetworkPredictionOptions.DEFAULT !=
- NetworkPredictionOptions.NEVER);
- } else {
- checkbox.checked = (pref.value != NetworkPredictionOptions.NEVER);
- }
+ checkbox.checked = (pref.value != NetworkPredictionOptions.NEVER);
},
/**
@@ -2140,29 +2133,6 @@ cr.define('options', function() {
else
element.disabled = false;
},
-
- /**
- * Sets the icon in the battery section.
- * @param {string} iconData The data representing the icon to display.
- * @private
- */
- setBatteryIcon_: function(iconData) {
- $('battery-icon').style.backgroundImage = 'url(' + iconData + ')';
- $('battery-icon').hidden = false;
- },
-
- /**
- * Sets the text for the battery section.
- * @param {string} statusText The battery status, with a relevant label.
- * @private
- */
- setBatteryStatusText_: function(statusText) {
- $('battery').hidden = !statusText.length;
- if (statusText.length) {
- $('battery-status').textContent = statusText;
- chrome.send('requestBatteryIcon');
- }
- },
};
//Forward public APIs to private implementations.
@@ -2181,8 +2151,6 @@ cr.define('options', function() {
'setAccountPictureManaged',
'setWallpaperManaged',
'setAutoOpenFileTypesDisplayed',
- 'setBatteryIcon',
- 'setBatteryStatusText',
'setBluetoothState',
'setCanSetTime',
'setFontSize',
diff --git a/chromium/chrome/browser/resources/options/chromeos/display_options.js b/chromium/chrome/browser/resources/options/chromeos/display_options.js
index bf316214fe8..40e7d4e8035 100644
--- a/chromium/chrome/browser/resources/options/chromeos/display_options.js
+++ b/chromium/chrome/browser/resources/options/chromeos/display_options.js
@@ -127,13 +127,13 @@ cr.define('options', function() {
*/
mirroring_: false,
- /*
+ /**
* Whether the unified desktop is enable or not.
* @private
*/
unifiedDesktopEnabled_: false,
- /*
+ /**
* Whether the unified desktop option should be present.
* @private
*/
@@ -223,7 +223,9 @@ cr.define('options', function() {
chrome.send('setDisplayMode', [display.id, resolution]);
}).bind(this);
$('display-options-orientation-selection').onchange = (function(ev) {
- chrome.send('setOrientation', [this.displays_[this.focusedIndex_].id,
+ var displayIndex =
+ (this.focusedIndex_ === null) ? 0 : this.focusedIndex_;
+ chrome.send('setOrientation', [this.displays_[displayIndex].id,
ev.target.value]);
}).bind(this);
$('display-options-color-profile-selection').onchange = (function(ev) {
@@ -636,8 +638,11 @@ cr.define('options', function() {
$('display-options-set-primary').disabled = true;
$('display-options-toggle-mirroring').disabled = false;
$('selected-display-start-calibrating-overscan').disabled = true;
- $('display-options-orientation-selection').disabled = true;
var display = this.displays_[0];
+ var orientation = $('display-options-orientation-selection');
+ orientation.disabled = false;
+ var orientationOptions = orientation.getElementsByTagName('option');
+ orientationOptions[display.orientation].selected = true;
$('selected-display-name').textContent =
loadTimeData.getString('mirroringDisplay');
var resolution = $('display-options-resolution-selection');
@@ -965,7 +970,7 @@ cr.define('options', function() {
/**
* Called when the display arrangement has changed.
- * @param {options.MultiDisplayMode} multi display mode.
+ * @param {options.MultiDisplayMode} mode multi display mode.
* @param {Array<options.DisplayInfo>} displays The list of the display
* information.
* @param {options.SecondaryDisplayLayout} layout The layout strategy.
diff --git a/chromium/chrome/browser/resources/options/chromeos/network_list.js b/chromium/chrome/browser/resources/options/chromeos/network_list.js
index bcd947ad165..018f67a98d5 100644
--- a/chromium/chrome/browser/resources/options/chromeos/network_list.js
+++ b/chromium/chrome/browser/resources/options/chromeos/network_list.js
@@ -4,6 +4,8 @@
/**
* Partial definition of the result of networkingPrivate.getProperties()).
+ * TODO(stevenjb): Replace with chrome.networkingPrivate.NetworkStateProperties
+ * once that is fully speced.
* @typedef {{
* ConnectionState: string,
* Cellular: {
@@ -166,7 +168,7 @@ cr.define('options.network', function() {
/**
* Description of the network group or control.
- * @type {Object<string,Object>}
+ * @type {Object<Object>}
* @private
*/
data_: null,
@@ -211,9 +213,8 @@ cr.define('options.network', function() {
if (!isNetworkType(data.Type))
return;
var networkIcon = this.getNetworkIcon();
- networkIcon.networkState = CrOncDataElement.create(
- /** @type {chrome.networkingPrivate.NetworkStateProperties} */ (
- data));
+ networkIcon.networkState =
+ /** @type {chrome.networkingPrivate.NetworkStateProperties} */ (data);
},
/**
@@ -733,7 +734,7 @@ cr.define('options.network', function() {
/**
* Extracts a mapping of network names to menu element and position.
* @param {!Element} menu The menu to process.
- * @return {Object<string, ?{index: number, button: Element}>}
+ * @return {Object<?{index: number, button: Element}>}
* Network mapping.
* @private
*/
@@ -827,7 +828,8 @@ cr.define('options.network', function() {
document.createElement('cr-network-icon'));
buttonIconDiv.appendChild(networkIcon);
networkIcon.isListItem = true;
- networkIcon.networkState = CrOncDataElement.create(data);
+ networkIcon.networkState =
+ /** @type {chrome.networkingPrivate.NetworkStateProperties} */ (data);
}
var buttonLabel = menu.ownerDocument.createElement('span');
@@ -1153,7 +1155,9 @@ cr.define('options.network', function() {
cellularNetwork_ = cellularNetwork_ || entry;
break;
case 'Ethernet':
- ethernetNetwork_ = ethernetNetwork_ || entry;
+ // Ignore any EAP Parameters networks (which lack ConnectionState).
+ if (entry.ConnectionState)
+ ethernetNetwork_ = ethernetNetwork_ || entry;
break;
}
if (cellularNetwork_ && ethernetNetwork_)
@@ -1182,12 +1186,20 @@ cr.define('options.network', function() {
updateControls: function(networkStates) {
this.startBatchUpdates();
- // Only show Ethernet control if connected.
- if (ethernetNetwork_ && ethernetNetwork_.ConnectionState == 'Connected') {
+ // Only show Ethernet control if available.
+ if (ethernetNetwork_) {
var ethernetOptions = showDetails.bind(null, ethernetNetwork_.GUID);
+ var state = ethernetNetwork_.ConnectionState;
+ var subtitle;
+ if (state == 'Connected')
+ subtitle = loadTimeData.getString('OncConnectionStateConnected');
+ else if (state == 'Connecting')
+ subtitle = loadTimeData.getString('OncConnectionStateConnecting');
+ else
+ subtitle = loadTimeData.getString('OncConnectionStateNotConnected');
this.update(
{ key: 'Ethernet',
- subtitle: loadTimeData.getString('OncConnectionStateConnected'),
+ subtitle: subtitle,
iconData: ethernetNetwork_,
command: ethernetOptions,
Source: ethernetNetwork_.Source }
diff --git a/chromium/chrome/browser/resources/options/chromeos/overscan_shift_rtl.png b/chromium/chrome/browser/resources/options/chromeos/overscan_shift_rtl.png
index a42d926e221..3bc14f4b371 100644
--- a/chromium/chrome/browser/resources/options/chromeos/overscan_shift_rtl.png
+++ b/chromium/chrome/browser/resources/options/chromeos/overscan_shift_rtl.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/options/clear_browser_data_overlay.css b/chromium/chrome/browser/resources/options/clear_browser_data_overlay.css
index 0820188ceed..8090e2d8eef 100644
--- a/chromium/chrome/browser/resources/options/clear_browser_data_overlay.css
+++ b/chromium/chrome/browser/resources/options/clear_browser_data_overlay.css
@@ -32,6 +32,10 @@
padding: 6px 8px;
}
+#clear-browser-data-info-banner:empty {
+ display: none;
+}
+
#some-stuff-remains-footer > p {
margin: 0;
}
diff --git a/chromium/chrome/browser/resources/options/clear_browser_data_overlay.html b/chromium/chrome/browser/resources/options/clear_browser_data_overlay.html
index 001bfdc81f6..a0c0a4e37e0 100644
--- a/chromium/chrome/browser/resources/options/clear_browser_data_overlay.html
+++ b/chromium/chrome/browser/resources/options/clear_browser_data_overlay.html
@@ -1,9 +1,9 @@
<div id="clear-browser-data-overlay" class="page not-resizable" hidden>
<div class="close-button"></div>
<h1 i18n-content="clearBrowserDataOverlay"></h1>
- <div id="clear-browser-data-info-banner" hidden>
- <span i18n-content="clearBrowserDataInfoBar"></span>
- </div>
+ <!-- NOTE: Make sure there's not whitespace between <div></div> for
+ #clear-browser-data-info-banner as it's styled with :empty. -->
+ <div id="clear-browser-data-info-banner"></div>
<div id="cbd-content-area" class="content-area">
<span i18n-content="clearBrowserDataLabel"></span>
<select id="clear-browser-data-time-period"
diff --git a/chromium/chrome/browser/resources/options/clear_browser_data_overlay.js b/chromium/chrome/browser/resources/options/clear_browser_data_overlay.js
index 8c3a9790fe5..7f6279f5f1d 100644
--- a/chromium/chrome/browser/resources/options/clear_browser_data_overlay.js
+++ b/chromium/chrome/browser/resources/options/clear_browser_data_overlay.js
@@ -238,9 +238,8 @@ cr.define('options', function() {
ClearBrowserDataOverlay.getInstance().markInitializationComplete_();
};
- ClearBrowserDataOverlay.setBannerVisibility = function(args) {
- var visible = args[0];
- $('clear-browser-data-info-banner').hidden = !visible;
+ ClearBrowserDataOverlay.setBannerText = function(text) {
+ $('clear-browser-data-info-banner').innerText = text;
};
ClearBrowserDataOverlay.doneClearing = function() {
diff --git a/chromium/chrome/browser/resources/options/compiled_resources.gyp b/chromium/chrome/browser/resources/options/compiled_resources.gyp
index 28ff732b0e2..f769530932b 100644
--- a/chromium/chrome/browser/resources/options/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/options/compiled_resources.gyp
@@ -8,7 +8,7 @@
'variables': {
'depends': [
'../../../../third_party/jstemplate/compiled_resources.gyp:jstemplate',
- '../../../../ui/webui/resources/cr_elements/cr_onc/cr_onc_types.js',
+ '../../../../ui/webui/resources/cr_elements/v1_0/cr_onc/cr_onc_types.js',
'../../../../ui/webui/resources/css/tree.css.js',
'../../../../ui/webui/resources/js/action_link.js',
'../../../../ui/webui/resources/js/cr.js',
@@ -47,10 +47,9 @@
# no possibility to use gyp variable expansion to it, so we don't use
# <(CLOSURE_DIR) in the "externs" line.
'externs': [
- '../../../../third_party/closure_compiler/externs/chrome_extensions.js',
- '../../../../third_party/closure_compiler/externs/chrome_send_externs.js',
- '../../../../ui/webui/resources/cr_elements/cr_network_icon/cr_network_icon_externs.js',
- '../../../../ui/webui/resources/cr_elements/cr_onc/cr_onc_data_externs.js',
+ '../../../../third_party/closure_compiler/externs/chrome_extensions.js',
+ '../../../../third_party/closure_compiler/externs/chrome_send.js',
+ '../../../../ui/webui/resources/cr_elements/v1_0/cr_network_icon/cr_network_icon_externs.js',
],
},
'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
diff --git a/chromium/chrome/browser/resources/options/content_settings.html b/chromium/chrome/browser/resources/options/content_settings.html
index 4eec2313a58..251ad1212e4 100644
--- a/chromium/chrome/browser/resources/options/content_settings.html
+++ b/chromium/chrome/browser/resources/options/content_settings.html
@@ -5,7 +5,7 @@
<!-- Cookie filter tab contents -->
<section>
<h3 i18n-content="cookiesTabLabel"></h3>
- <div class="replace-with-website-settings">
+ <div>
<div class="radio controlled-setting-with-label">
<label>
<input type="radio" name="cookies" value="allow">
@@ -64,20 +64,11 @@
i18n-content="cookiesShowCookies"></button>
</div>
</div>
- <div class="experimental-website-settings" hidden>
- <span id="cookies-default-string"></span>
- <div class="settings-row">
- <button class="website-settings-permission-button"
- contentType="cookies" i18n-content="websitesManage"></button>
- <button id="show-cookies-button"
- i18n-content="cookiesShowCookies"></button>
- </div>
- </div>
</section>
<!-- Image filter -->
<section>
<h3 i18n-content="imagesTabLabel"></h3>
- <div class="replace-with-website-settings">
+ <div>
<div class="radio controlled-setting-with-label">
<label>
<input type="radio" name="images" value="allow">
@@ -103,18 +94,11 @@
i18n-content="manageExceptions"></button>
</div>
</div>
- <div class="experimental-website-settings" hidden>
- <span id="images-default-string"></span>
- <div class="settings-row">
- <button class="website-settings-permission-button"
- contentType="images" i18n-content="websitesManage"></button>
- </div>
- </div>
</section>
<!-- JavaScript filter -->
<section>
<h3 i18n-content="javascriptTabLabel"></h3>
- <div class="replace-with-website-settings">
+ <div>
<div class="radio controlled-setting-with-label">
<label>
<input type="radio" name="javascript" value="allow">
@@ -140,13 +124,6 @@
i18n-content="manageExceptions"></button>
</div>
</div>
- <div class="experimental-website-settings" hidden>
- <span id="javascript-default-string"></span>
- <div class="settings-row">
- <button class="website-settings-permission-button"
- contentType="javascript" i18n-content="websitesManage"></button>
- </div>
- </div>
</section>
<!-- Handlers settings -->
<section id="handlers-section">
@@ -175,7 +152,7 @@
<!-- Plugins filter -->
<section>
<h3 i18n-content="pluginsTabLabel"></h3>
- <div class="replace-with-website-settings">
+ <div>
<div class="radio controlled-setting-with-label">
<label>
<input id="plugins-allow-radio" type="radio" name="plugins"
@@ -216,18 +193,11 @@
target="_blank"></a>
</div>
</div>
- <div class="experimental-website-settings" hidden>
- <span id="plugins-default-string"></span>
- <div class="settings-row">
- <button class="website-settings-permission-button"
- contentType="plugins" i18n-content="websitesManage"></button>
- </div>
- </div>
</section>
<!-- Pop-ups filter -->
<section>
<h3 i18n-content="popupsTabLabel" class="content-settings-header"></h3>
- <div class="replace-with-website-settings">
+ <div>
<div class="radio controlled-setting-with-label">
<label>
<input type="radio" name="popups" value="allow">
@@ -253,18 +223,11 @@
i18n-content="manageExceptions"></button>
</div>
</div>
- <div class="experimental-website-settings" hidden>
- <span id="popups-default-string"></span>
- <div class="settings-row">
- <button class="website-settings-permission-button"
- contentType="popups" i18n-content="websitesManage"></button>
- </div>
- </div>
</section>
<!-- Location filter -->
<section>
<h3 i18n-content="locationTabLabel"></h3>
- <div class="replace-with-website-settings">
+ <div>
<div class="radio controlled-setting-with-label">
<label>
<input type="radio" name="location" value="allow">
@@ -316,18 +279,11 @@
i18n-content="manageExceptions"></button>
</div>
</div>
- <div class="experimental-website-settings" hidden>
- <span id="location-default-string"></span>
- <div class="settings-row">
- <button class="website-settings-permission-button"
- contentType="geolocation" i18n-content="websitesManage"></button>
- </div>
- </div>
</section>
<!-- Notifications filter tab contents -->
<section id="notifications-section">
<h3 i18n-content="notificationsTabLabel"></h3>
- <div class="replace-with-website-settings">
+ <div>
<div class="radio controlled-setting-with-label">
<label>
<input type="radio" name="notifications" value="allow">
@@ -363,14 +319,6 @@
i18n-content="manageExceptions"></button>
</div>
</div>
- <div class="experimental-website-settings" hidden>
- <span id="notifications-default-string"></span>
- <div class="settings-row">
- <button class="website-settings-permission-button"
- contentType="notifications"
- i18n-content="websitesManage"></button>
- </div>
- </div>
</section>
<!-- Fullscreen filter -->
<section>
@@ -488,7 +436,7 @@
</span>
</label>
</div>
- <div class="settings-row replace-with-website-settings">
+ <div class="settings-row">
<button class="exceptions-list-button" contentType="media-stream"
i18n-content="manageExceptions"></button>
</div>
@@ -498,12 +446,6 @@
i18n-values="href:mediaPepperFlashGlobalPrivacyURL"></a>
</div>
</div>
- <div class="experimental-website-settings" hidden>
- <div class="settings-row">
- <button class="website-settings-permission-button"
- contentType="media-stream" i18n-content="websitesManage"></button>
- </div>
- </div>
</section>
<!-- PPAPI broker -->
<section>
@@ -548,7 +490,7 @@
<!-- Automatic Downloads filter -->
<section>
<h3 i18n-content="multipleAutomaticDownloadsTabLabel"></h3>
- <div class="replace-with-website-settings">
+ <div>
<div class="radio controlled-setting-with-label">
<label>
<input type="radio" name="multiple-automatic-downloads"
@@ -590,14 +532,6 @@
i18n-content="manageExceptions"></button>
</div>
</div>
- <div class="experimental-website-settings" hidden>
- <span id="multiple-automatic-downloads-default-string"></span>
- <div class="settings-row">
- <button class="website-settings-permission-button"
- contentType="multiple-automatic-downloads"
- i18n-content="websitesManage"></button>
- </div>
- </div>
</section>
<!-- MIDI system exclusive messages filter -->
<section>
diff --git a/chromium/chrome/browser/resources/options/content_settings.js b/chromium/chrome/browser/resources/options/content_settings.js
index db6fbf6b928..f77b3f48b9a 100644
--- a/chromium/chrome/browser/resources/options/content_settings.js
+++ b/chromium/chrome/browser/resources/options/content_settings.js
@@ -66,15 +66,6 @@ cr.define('options', function() {
};
}
- var experimentalExceptionsButtons =
- this.pageDiv.querySelectorAll('.website-settings-permission-button');
- for (var i = 0; i < experimentalExceptionsButtons.length; i++) {
- experimentalExceptionsButtons[i].onclick = function(event) {
- var hash = event.currentTarget.getAttribute('contentType');
- WebsiteSettingsManager.showWebsiteSettings(hash);
- };
- }
-
var manageHandlersButton = $('manage-handlers-button');
if (manageHandlersButton) {
manageHandlersButton.onclick = function(event) {
@@ -106,20 +97,6 @@ cr.define('options', function() {
ContentSettings.setDefaultMicrophone_);
$('media-select-camera').addEventListener('change',
ContentSettings.setDefaultCamera_);
-
- if (loadTimeData.getBoolean('websiteSettingsManagerEnabled')) {
- var oldUI =
- this.pageDiv.querySelectorAll('.replace-with-website-settings');
- for (var i = 0; i < oldUI.length; i++) {
- oldUI[i].hidden = true;
- }
-
- var newUI =
- this.pageDiv.querySelectorAll('.experimental-website-settings');
- for (var i = 0; i < newUI.length; i++) {
- newUI[i].hidden = false;
- }
- }
},
};
@@ -131,8 +108,8 @@ cr.define('options', function() {
/**
* Sets the values for all the content settings radios and labels.
- * @param {Object<string, {managedBy: string, value: string}>} dict A mapping
- * from radio groups to the checked value for that group.
+ * @param {Object<{managedBy: string, value: string}>} dict A mapping from
+ * radio groups to the checked value for that group.
*/
ContentSettings.setContentFilterSettingsValue = function(dict) {
for (var group in dict) {
diff --git a/chromium/chrome/browser/resources/options/content_settings_exceptions_area.js b/chromium/chrome/browser/resources/options/content_settings_exceptions_area.js
index 97b6f43d071..dc4f56debfd 100644
--- a/chromium/chrome/browser/resources/options/content_settings_exceptions_area.js
+++ b/chromium/chrome/browser/resources/options/content_settings_exceptions_area.js
@@ -480,6 +480,9 @@ cr.define('options.contentSettings', function() {
}
}
+ if (!this.isEditable())
+ this.tabIndex = 0;
+
this.mode = this.getAttribute('mode');
this.autoExpands = true;
this.reset();
diff --git a/chromium/chrome/browser/resources/options/cookies_list.js b/chromium/chrome/browser/resources/options/cookies_list.js
index ddaaa617578..56a8f35aa50 100644
--- a/chromium/chrome/browser/resources/options/cookies_list.js
+++ b/chromium/chrome/browser/resources/options/cookies_list.js
@@ -554,10 +554,10 @@ cr.define('options', function() {
* Uses preallocated DOM elements for each cookie node type from @{code
* infoNodes}, and inserts the appropriate elements to @{code element}.
* @param {Element} element The DOM element to insert elements to.
- * @param {Object<string, {table: Element, info: Object<string,
- * Element>}>} infoNodes The map from cookie node types to maps from
- * cookie attribute names to DOM elements to display cookie attribute
- * values, created by @{code CookiesList.decorate}.
+ * @param {Object<{table: Element, info: Object<Element>}>} infoNodes The
+ * map from cookie node types to maps from cookie attribute names to DOM
+ * elements to display cookie attribute values, created by
+ * @see {CookiesList.decorate}.
*/
setDetailText: function(element, infoNodes) {
var table;
diff --git a/chromium/chrome/browser/resources/options/language_options.html b/chromium/chrome/browser/resources/options/language_options.html
index eebd29d3756..a520306cd43 100644
--- a/chromium/chrome/browser/resources/options/language_options.html
+++ b/chromium/chrome/browser/resources/options/language_options.html
@@ -41,11 +41,16 @@
dictionary pane. -->
<if expr="not is_macosx">
<div id="language-options-spellcheck" class="language-options-contents">
- <button id="language-options-spell-check-language-button"
+ <div class="checkbox" id="spellcheck-language-checkbox-container">
+ <label>
+ <input type="checkbox" id="spellcheck-language-checkbox">
+ <span i18n-content="useThisForSpellChecking"></span>
+ </label>
+ </div>
+ <button id="spellcheck-language-button"
i18n-content="useThisForSpellChecking">
</button>
- <span id="language-options-spell-check-language-message" hidden>
- </span>
+ <span id="spellcheck-language-message" hidden></span>
<span id="language-options-dictionary-downloading-message"
i18n-content="downloadingDictionary" hidden>
</span>
@@ -111,9 +116,9 @@
i18n-content="languageDictionaryOverlayTitle"></a>
</if>
<if expr="not chromeos and not is_macosx">
- <div id="spell-check-option" class="checkbox">
+ <div class="checkbox">
<label>
- <input id="enable-spell-check" pref="browser.enable_spellchecking"
+ <input id="enable-spellcheck" pref="browser.enable_spellchecking"
metric="Options_SpellCheck" type="checkbox">
<span i18n-content="enableSpellCheck"></span>
</label>
diff --git a/chromium/chrome/browser/resources/options/language_options.js b/chromium/chrome/browser/resources/options/language_options.js
index 9ab66bf8d28..f296d0117a8 100644
--- a/chromium/chrome/browser/resources/options/language_options.js
+++ b/chromium/chrome/browser/resources/options/language_options.js
@@ -52,12 +52,12 @@ cr.define('options', function() {
var TRANSLATE_BLOCKED_LANGUAGES_PREF = 'translate_blocked_languages';
/**
- * The preference key that is a string that describes the spell check
- * dictionary language, like "en-US".
+ * The preference key that is a list of strings that describes the spellcheck
+ * dictionary language, like ["en-US", "fr"].
* @type {string}
* @const
*/
- var SPELL_CHECK_DICTIONARY_PREF = 'spellcheck.dictionary';
+ var SPELL_CHECK_DICTIONARIES_PREF = 'spellcheck.dictionaries';
/**
* The preference that indicates if the Translate feature is enabled.
@@ -136,12 +136,12 @@ cr.define('options', function() {
translateSupportedLanguages_: [],
/**
- * The preference is a string that describes the spell check dictionary
- * language, like "en-US".
- * @type {string}
+ * The dictionary of currently selected spellcheck dictionary languages,
+ * like {"en-US": true, "sl-SI": true}.
+ * @type {Object}
* @private
*/
- spellCheckDictionary_: '',
+ spellCheckLanguages_: {},
/**
* The map of language code to input method IDs, like:
@@ -187,8 +187,8 @@ cr.define('options', function() {
Preferences.getInstance().addEventListener(
TRANSLATE_BLOCKED_LANGUAGES_PREF,
this.handleTranslateBlockedLanguagesPrefChange_.bind(this));
- Preferences.getInstance().addEventListener(SPELL_CHECK_DICTIONARY_PREF,
- this.handleSpellCheckDictionaryPrefChange_.bind(this));
+ Preferences.getInstance().addEventListener(SPELL_CHECK_DICTIONARIES_PREF,
+ this.handleSpellCheckDictionariesPrefChange_.bind(this));
Preferences.getInstance().addEventListener(ENABLE_TRANSLATE,
this.handleEnableTranslatePrefChange_.bind(this));
this.translateSupportedLanguages_ =
@@ -240,11 +240,15 @@ cr.define('options', function() {
// Handle clicks on "Use this language for spell checking" button.
if (!cr.isMac) {
- var spellCheckLanguageButton = getRequiredElement(
- 'language-options-spell-check-language-button');
- spellCheckLanguageButton.addEventListener(
- 'click',
- this.handleSpellCheckLanguageButtonClick_.bind(this));
+ if (loadTimeData.getBoolean('enableMultilingualSpellChecker')) {
+ $('spellcheck-language-checkbox').addEventListener(
+ 'change',
+ this.handleSpellCheckLanguageCheckboxClick_.bind(this));
+ } else {
+ $('spellcheck-language-button').addEventListener(
+ 'click',
+ this.handleSpellCheckLanguageButtonClick_.bind(this));
+ }
}
if (cr.isChromeOS) {
@@ -427,7 +431,7 @@ cr.define('options', function() {
this.updateSelectedLanguageName_(languageCode);
if (!cr.isMac)
- this.updateSpellCheckLanguageButton_(languageCode);
+ this.updateSpellCheckLanguageControls_(languageCode);
if (cr.isChromeOS)
this.updateInputMethodList_(languageCode);
@@ -604,56 +608,71 @@ cr.define('options', function() {
* @param {string} languageCode Language code (ex. "fr").
* @private
*/
- updateSpellCheckLanguageButton_: function(languageCode) {
+ updateSpellCheckLanguageControls_: function(languageCode) {
+ assert(languageCode);
var spellCheckLanguageSection = $('language-options-spellcheck');
- var spellCheckLanguageButton =
- $('language-options-spell-check-language-button');
- var spellCheckLanguageMessage =
- $('language-options-spell-check-language-message');
+ var spellCheckLanguageButton = $('spellcheck-language-button');
+ var spellCheckLanguageCheckboxContainer =
+ $('spellcheck-language-checkbox-container');
+ var spellCheckLanguageCheckbox = $('spellcheck-language-checkbox');
+ var spellCheckLanguageMessage = $('spellcheck-language-message');
var dictionaryDownloadInProgress =
$('language-options-dictionary-downloading-message');
var dictionaryDownloadFailed =
$('language-options-dictionary-download-failed-message');
var dictionaryDownloadFailHelp =
$('language-options-dictionary-download-fail-help-message');
+
spellCheckLanguageSection.hidden = false;
spellCheckLanguageMessage.hidden = true;
spellCheckLanguageButton.hidden = true;
+ spellCheckLanguageCheckboxContainer.hidden = true;
dictionaryDownloadInProgress.hidden = true;
dictionaryDownloadFailed.hidden = true;
dictionaryDownloadFailHelp.hidden = true;
+ spellCheckLanguageCheckbox.checked = false;
+
+ var canBeUsedForSpellchecking =
+ languageCode in loadTimeData.getValue('spellCheckLanguageCodeSet');
+
+ if (!canBeUsedForSpellchecking) {
+ spellCheckLanguageMessage.textContent =
+ loadTimeData.getString('cannotBeUsedForSpellChecking');
+ spellCheckLanguageMessage.hidden = false;
+ return;
+ }
+
+ var isUsedForSpellchecking = languageCode in this.spellCheckLanguages_;
+ var isLanguageDownloaded =
+ !(languageCode in this.spellcheckDictionaryDownloadStatus_);
- if (languageCode == this.spellCheckDictionary_) {
- if (!(languageCode in this.spellcheckDictionaryDownloadStatus_)) {
+ if (loadTimeData.getBoolean('enableMultilingualSpellChecker')) {
+ spellCheckLanguageCheckbox.languageCode = languageCode;
+ spellCheckLanguageCheckbox.checked = isUsedForSpellchecking;
+ spellCheckLanguageCheckboxContainer.hidden = false;
+ } else if (isUsedForSpellchecking) {
+ if (isLanguageDownloaded) {
spellCheckLanguageMessage.textContent =
loadTimeData.getString('isUsedForSpellChecking');
- showMutuallyExclusiveNodes(
- [spellCheckLanguageButton, spellCheckLanguageMessage], 1);
- } else if (this.spellcheckDictionaryDownloadStatus_[languageCode] ==
- DOWNLOAD_STATUS.IN_PROGRESS) {
- dictionaryDownloadInProgress.hidden = false;
- } else if (this.spellcheckDictionaryDownloadStatus_[languageCode] ==
- DOWNLOAD_STATUS.FAILED) {
- spellCheckLanguageSection.hidden = true;
- dictionaryDownloadFailed.hidden = false;
- if (this.spellcheckDictionaryDownloadFailures_ > 1)
- dictionaryDownloadFailHelp.hidden = false;
+ spellCheckLanguageMessage.hidden = false;
}
- } else if (languageCode in
- loadTimeData.getValue('spellCheckLanguageCodeSet')) {
+ } else {
spellCheckLanguageButton.textContent =
loadTimeData.getString('useThisForSpellChecking');
- showMutuallyExclusiveNodes(
- [spellCheckLanguageButton, spellCheckLanguageMessage], 0);
+ spellCheckLanguageButton.hidden = false;
spellCheckLanguageButton.languageCode = languageCode;
- } else if (!languageCode) {
- spellCheckLanguageButton.hidden = true;
- spellCheckLanguageMessage.hidden = true;
- } else {
- spellCheckLanguageMessage.textContent =
- loadTimeData.getString('cannotBeUsedForSpellChecking');
- showMutuallyExclusiveNodes(
- [spellCheckLanguageButton, spellCheckLanguageMessage], 1);
+ }
+
+ switch (this.spellcheckDictionaryDownloadStatus_[languageCode]) {
+ case DOWNLOAD_STATUS.IN_PROGRESS:
+ dictionaryDownloadInProgress.hidden = false;
+ break;
+ case DOWNLOAD_STATUS.FAILED:
+ showMutuallyExclusiveNodes(
+ [spellCheckLanguageSection, dictionaryDownloadFailed], 1);
+ if (this.spellcheckDictionaryDownloadFailures_ > 1)
+ dictionaryDownloadFailHelp.hidden = false;
+ break;
}
},
@@ -919,8 +938,8 @@ cr.define('options', function() {
* @private
*/
updateEnableSpellCheck_: function(e) {
- var value = !$('enable-spell-check').checked;
- $('language-options-spell-check-language-button').disabled = value;
+ var value = !$('enable-spellcheck').checked;
+ $('spellcheck-language-button').disabled = value;
if (!cr.isMac)
$('edit-dictionary-button').hidden = value;
},
@@ -937,17 +956,23 @@ cr.define('options', function() {
},
/**
- * Handles spellCheckDictionaryPref change.
- * @param {Event} e Change event.
+ * Updates spellcheck dictionary UI (checkboxes, buttons, and labels) when
+ * preferences change.
+ * @param {Event} e Preference change event where e.value.value is the list
+ * of languages currently used for spellchecking.
* @private
*/
- handleSpellCheckDictionaryPrefChange_: function(e) {
- var languageCode = e.value.value;
- this.spellCheckDictionary_ = languageCode;
- if (!cr.isMac) {
- this.updateSpellCheckLanguageButton_(
- $('language-options-list').getSelectedLanguageCode());
+ handleSpellCheckDictionariesPrefChange_: function(e) {
+ if (cr.isMac)
+ return;
+
+ var languages = e.value.value;
+ this.spellCheckLanguages_ = {};
+ for (var i = 0; i < languages.length; i++) {
+ this.spellCheckLanguages_[languages[i]] = true;
}
+ this.updateSpellCheckLanguageControls_(
+ $('language-options-list').getSelectedLanguageCode());
},
/**
@@ -968,16 +993,43 @@ cr.define('options', function() {
* @private
*/
handleSpellCheckLanguageButtonClick_: function(e) {
- var languageCode = e.target.languageCode;
+ var languageCode = e.currentTarget.languageCode;
// Save the preference.
- Preferences.setStringPref(SPELL_CHECK_DICTIONARY_PREF,
- languageCode, true);
+ Preferences.setListPref(SPELL_CHECK_DICTIONARIES_PREF,
+ [languageCode], true);
+
+ // The spellCheckLanguageChange argument is only used for logging.
chrome.send('spellCheckLanguageChange', [languageCode]);
chrome.send('coreOptionsUserMetricsAction',
['Options_Languages_SpellCheck']);
},
/**
+ * Updates the spellcheck.dictionaries preference with the currently
+ * selected language codes.
+ * @param {Event} e Click event. e.currentTarget represents the "Use this
+ * language for spellchecking" checkbox.
+ * @private
+ */
+ handleSpellCheckLanguageCheckboxClick_: function(e) {
+ var languageCode = e.currentTarget.languageCode;
+
+ if (e.currentTarget.checked)
+ this.spellCheckLanguages_[languageCode] = true;
+ else
+ delete this.spellCheckLanguages_[languageCode];
+
+ var languageCodes = Object.keys(this.spellCheckLanguages_);
+ Preferences.setListPref(SPELL_CHECK_DICTIONARIES_PREF,
+ languageCodes, true);
+
+ // The spellCheckLanguageChange argument is only used for logging.
+ chrome.send('spellCheckLanguageChange', [languageCodes.join(',')]);
+ chrome.send('coreOptionsUserMetricsAction',
+ ['Options_Languages_SpellCheck']);
+ },
+
+ /**
* Checks whether it's possible to remove the language specified by
* languageCode and returns true if possible. This function returns false
* if the removal causes the number of preload engines to be zero.
@@ -1276,7 +1328,7 @@ cr.define('options', function() {
if (!cr.isMac &&
languageCode ==
$('language-options-list').getSelectedLanguageCode()) {
- this.updateSpellCheckLanguageButton_(languageCode);
+ this.updateSpellCheckLanguageControls_(languageCode);
}
},
@@ -1292,7 +1344,7 @@ cr.define('options', function() {
if (!cr.isMac &&
languageCode ==
$('language-options-list').getSelectedLanguageCode()) {
- this.updateSpellCheckLanguageButton_(languageCode);
+ this.updateSpellCheckLanguageControls_(languageCode);
}
},
@@ -1309,7 +1361,7 @@ cr.define('options', function() {
if (!cr.isMac &&
languageCode ==
$('language-options-list').getSelectedLanguageCode()) {
- this.updateSpellCheckLanguageButton_(languageCode);
+ this.updateSpellCheckLanguageControls_(languageCode);
}
},
diff --git a/chromium/chrome/browser/resources/options/options.html b/chromium/chrome/browser/resources/options/options.html
index 662762cf65b..e71868e9819 100644
--- a/chromium/chrome/browser/resources/options/options.html
+++ b/chromium/chrome/browser/resources/options/options.html
@@ -48,7 +48,6 @@
<link rel="stylesheet" href="supervised_user_create_confirm.css">
<link rel="stylesheet" href="supervised_user_import.css">
<link rel="stylesheet" href="supervised_user_learn_more.css">
-<link rel="stylesheet" href="website_settings.css">
<link rel="stylesheet" href="../help/help_content.css">
<link rel="stylesheet" href="sync_setup_overlay.css">
<if expr="chromeos">
@@ -156,7 +155,6 @@
<include src="language_add_language_overlay.html">
<include src="supervised_user_import.html">
<include src="supervised_user_learn_more.html">
- <include src="website_settings.html">
<if expr="not is_macosx">
<include src="language_dictionary_overlay.html">
</if>
@@ -173,9 +171,6 @@
<include src="certificate_edit_ca_trust_overlay.html">
<include src="certificate_import_error_overlay.html">
</if>
-<div id="overlay-container-3" class="overlay transparent" hidden>
- <include src="website_settings_edit_site.html">
-</div>
</div>
<div id="extension-controlled-settings-bubble-template" hidden>
<div class="controlled-setting-bubble-content-row">
diff --git a/chromium/chrome/browser/resources/options/options.js b/chromium/chrome/browser/resources/options/options.js
index e0600241439..613a6010633 100644
--- a/chromium/chrome/browser/resources/options/options.js
+++ b/chromium/chrome/browser/resources/options/options.js
@@ -45,8 +45,6 @@ var SupervisedUserCreateConfirmOverlay =
var SupervisedUserImportOverlay = options.SupervisedUserImportOverlay;
var SupervisedUserLearnMoreOverlay = options.SupervisedUserLearnMoreOverlay;
var SyncSetupOverlay = options.SyncSetupOverlay;
-var WebsiteSettingsEditor = options.WebsiteSettings.WebsiteSettingsEditor;
-var WebsiteSettingsManager = options.ContentSettings.WebsiteSettingsManager;
var ThirdPartyImeConfirmOverlay = options.ThirdPartyImeConfirmOverlay;
/**
@@ -97,29 +95,21 @@ function load() {
$('do-not-track-enabled')['pref'],
$('do-not-track-enabled')['metric']),
BrowserOptions.getInstance());
- // 'spelling-enabled-control' element is only present on Chrome branded
- // builds.
- if ($('spelling-enabled-control')) {
- PageManager.registerOverlay(
- new ConfirmDialog(
- 'spellingConfirm',
- loadTimeData.getString('spellingConfirmOverlayTabTitle'),
- 'spelling-confirm-overlay',
- /** @type {HTMLButtonElement} */($('spelling-confirm-ok')),
- /** @type {HTMLButtonElement} */($('spelling-confirm-cancel')),
- $('spelling-enabled-control')['pref'],
- $('spelling-enabled-control')['metric']),
- BrowserOptions.getInstance());
- }
+ PageManager.registerOverlay(
+ new ConfirmDialog(
+ 'spellingConfirm',
+ loadTimeData.getString('spellingConfirmOverlayTabTitle'),
+ 'spelling-confirm-overlay',
+ /** @type {HTMLButtonElement} */($('spelling-confirm-ok')),
+ /** @type {HTMLButtonElement} */($('spelling-confirm-cancel')),
+ $('spelling-enabled-control')['pref'],
+ $('spelling-enabled-control')['metric']),
+ BrowserOptions.getInstance());
PageManager.registerOverlay(new HotwordConfirmDialog(),
BrowserOptions.getInstance());
PageManager.registerOverlay(ContentSettings.getInstance(),
BrowserOptions.getInstance(),
[$('privacyContentSettingsButton')]);
- PageManager.registerOverlay(WebsiteSettingsManager.getInstance(),
- ContentSettings.getInstance());
- PageManager.registerOverlay(WebsiteSettingsEditor.getInstance(),
- WebsiteSettingsManager.getInstance());
PageManager.registerOverlay(ContentSettingsExceptionsArea.getInstance(),
ContentSettings.getInstance());
PageManager.registerOverlay(CookiesView.getInstance(),
diff --git a/chromium/chrome/browser/resources/options/options_bundle.js b/chromium/chrome/browser/resources/options/options_bundle.js
index 6b90d4f5d5a..075754ae3c1 100644
--- a/chromium/chrome/browser/resources/options/options_bundle.js
+++ b/chromium/chrome/browser/resources/options/options_bundle.js
@@ -69,8 +69,8 @@ var CertificateImportErrorOverlay = options.CertificateImportErrorOverlay;
<include src="alert_overlay.js">
<include src="autofill_edit_address_overlay.js">
<include src="autofill_edit_creditcard_overlay.js">
-<include src="autofill_options_list.js">
<include src="autofill_options.js">
+<include src="autofill_options_list.js">
<include src="automatic_settings_reset_banner.js">
<include src="browser_options.js">
<include src="browser_options_profile_list.js">
@@ -102,7 +102,6 @@ var CertificateImportErrorOverlay = options.CertificateImportErrorOverlay;
<include src="language_options.js">
<include src="manage_profile_overlay.js">
<include src="options_focus_manager.js">
-<include src="origin_resources_list.js">
<include src="password_manager.js">
<include src="password_manager_list.js">
<include src="profiles_icon_grid.js">
@@ -117,8 +116,6 @@ var CertificateImportErrorOverlay = options.CertificateImportErrorOverlay;
<include src="supervised_user_learn_more.js">
<include src="supervised_user_list.js">
<include src="supervised_user_list_data.js">
-<include src="website_settings.js">
-<include src="website_settings_edit_page.js">
<include src="../help/help_page.js">
<include src="sync_setup_overlay.js">
<include src="../uber/uber_page_manager_observer.js">
diff --git a/chromium/chrome/browser/resources/options/origin_resources_list.js b/chromium/chrome/browser/resources/options/origin_resources_list.js
deleted file mode 100644
index 1b35bc2a6de..00000000000
--- a/chromium/chrome/browser/resources/options/origin_resources_list.js
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-cr.define('options', function() {
- /** @const */ var List = cr.ui.List;
- /** @const */ var ListItem = cr.ui.ListItem;
-
- /**
- * Creates a new list item for the origin's data.
- * @param {!Object} origin Data used to create the origin list item.
- * @constructor
- * @extends {cr.ui.ListItem}
- */
- function OriginListItem(origin) {
- var el = cr.doc.createElement('div');
- el.origin_ = origin.origin;
- el.usage_ = origin.usage;
- el.usageString_ = origin.usageString;
- el.readableName_ = origin.readableName;
- el.__proto__ = OriginListItem.prototype;
- el.decorate();
- return el;
- }
-
- OriginListItem.prototype = {
- __proto__: ListItem.prototype,
-
- /** @override */
- decorate: function() {
- ListItem.prototype.decorate.call(this);
-
- this.className = 'deletable-item origin-list-item';
- this.contentElement_ = this.ownerDocument.createElement('div');
- this.appendChild(this.contentElement_);
-
- var titleEl = this.ownerDocument.createElement('div');
- titleEl.className = 'title favicon-cell weaktrl';
- titleEl.textContent = this.readableName_;
- titleEl.originPattern = this.origin_;
- titleEl.style.backgroundImage = getFaviconImageSet(this.origin_);
- this.contentElement_.appendChild(titleEl);
-
- this.contentElement_.onclick = function() {
- chrome.send('maybeShowEditPage', [titleEl.originPattern]);
- };
-
- if (this.usageString_) {
- var usageEl = this.ownerDocument.createElement('span');
- usageEl.className = 'local-storage-usage';
- usageEl.textContent = this.usageString_;
- this.appendChild(usageEl);
- }
- }
- };
-
- /**
- * @constructor
- * @extends {cr.ui.List}
- */
- var OriginList = cr.ui.define('list');
-
- OriginList.prototype = {
- __proto__: List.prototype,
-
- /**
- * @override
- * @param {!Object} entry
- */
- createItem: function(entry) {
- return new OriginListItem(entry);
- },
- };
-
- return {
- OriginListItem: OriginListItem,
- OriginList: OriginList,
- };
-});
diff --git a/chromium/chrome/browser/resources/options/website_settings.css b/chromium/chrome/browser/resources/options/website_settings.css
deleted file mode 100644
index 52c2b7d3086..00000000000
--- a/chromium/chrome/browser/resources/options/website_settings.css
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright 2014 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file. */
-
-#website-settings-page {
- min-height: 445px;
- min-width: 540px;
-}
-
-#website-settings-edit-page {
- min-width: 540px;
-}
-
-.website-column-headers {
- padding: 3px 0 6px;
-}
-
-.website-header-controls {
- align-items: center;
- display: flex;
- justify-content: space-between;
-}
-
-.website-header-controls > div {
- font-weight: bold;
-}
-
-#allowed-origin-list-title {
- font-size: 1.3em;
-}
-
-#website-settings-search-box {
- width: 165px;
-}
-
-#website-settings-page .action-area {
- padding-bottom: 20px;
-}
-
-.website-list-content-area {
- display: flex;
- flex-direction: column;
-}
-
-.permission-name {
- -webkit-margin-start: 7px;
- font-size: 13px;
- width: 300px;
-}
-
-#website-settings-edit-page .permission-selection-option {
- -webkit-margin-end: 20px;
- -webkit-margin-start: 35px;
- width: 12em;
-}
-
-#website-settings-permission-column {
- -webkit-margin-start: 8px;
-}
-
-.website-properties {
- -webkit-margin-start: 8px;
- margin-bottom: 8px;
- padding-bottom: 4px;
-}
-
-.website-property-area {
- align-items: center;
- display: flex;
- justify-content: space-between;
- margin-bottom: 8px;
-}
-
-.website-property-button {
- margin-bottom: 9em;
-}
-
-#website-title {
- -webkit-padding-start: 21px;
- font-size: 15px;
- line-height: 20px;
- margin-bottom: 22px;
- margin-top: 0;
-}
-
-#website-settings-page .content-area {
- padding: auto 20px;
-}
-
-#website-settings-page .action-area {
- padding: auto 20px;
-
-}
-
-#website-settings-edit-page .action-area {
- padding: auto 20px;
-
-}
-
-.origin-permission-list {
- border: 1px solid #d9d9d9;
- height: 192px;
- padding-top: 4px;
-}
-
-#website-settings-edit-page .website-property-button {
- min-width: 70px;
-}
-
-#website-settings-edit-page .website-property-controls {
- min-width: 165px;
-}
-
-#website-settings-global-controls {
- align-items: center;
- display: flex;
- margin-bottom: 24px;
-}
-
-#global-setting {
- -webkit-margin-start: 35px;
- flex: 1;
-}
-
-/* Styles for the origin list elements in the website settings page. */
-.origin-list {
- border: 1px solid #d9d9d9;
- font-size: 13px;
- height: 192px;
- margin: 5px 0 0;
-}
-
-#website-settings-page .blocked-origin-list {
- height: 128px;
- min-height: 128px;
-}
-
-#website-settings-page .nonsplit-origin-list {
- height: 357px;
- min-height: 357px;
-}
-
-#origin-list-item {
- height: 30px;
-}
-
-.local-storage-usage {
- color: #7f7f7f;
- margin: auto 0;
-}
-
-list.origin-list .favicon-cell {
- -webkit-margin-start: 6px;
- -webkit-padding-start: 21px;
-}
-
-list.origin-list .favicon-cell {
- -webkit-margin-start: 5px;
- -webkit-padding-start: 21px;
- font-size: 13px;
-}
-
-.permission-option {
- align-items: center;
- display: flex;
- justify-content: space-between;
- margin-top: 4px;
-}
diff --git a/chromium/chrome/browser/resources/options/website_settings.html b/chromium/chrome/browser/resources/options/website_settings.html
deleted file mode 100644
index 8bd13dbaee4..00000000000
--- a/chromium/chrome/browser/resources/options/website_settings.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<div id="website-settings-page" class="page website-settings-page not-resizable"
- hidden>
- <div class="close-button"></div>
- <h1 id="website-settings-title" i18n-content="websiteSettingsPage"></h1>
- <div id="website-list-content-area" class="content-area">
- <div class="website-column-headers">
- <div id="website-settings-global-controls">
- <div class="checkbox">
- <label>
- <input id="global-setting-toggle" type="checkbox">
- <span i18n-content="websitesLabelOn"></span>
- </label>
- </div>
- <select id="global-setting"></select>
- </div>
- <div class="website-header-controls">
- <span id="allowed-origin-list-title"
- i18n-content="websitesAllowedListTitle">
- </span>
- <input type="search" id="website-settings-search-box"
- i18n-values="placeholder:websitesSearch" incremental>
- </div>
- </div>
- <list id="allowed-origin-list" class="origin-list"></list>
- <h2 id="blocked-origin-list-title" i18n-content="websitesBlockedListTitle">
- </h2>
- <list id="blocked-origin-list" class="blocked-origin-list origin-list">
- </list>
- </div>
- <div class="action-area">
- <div class="button-strip">
- <button id="website-settings-overlay-confirm" i18n-content="done">
- </button>
- </div>
- </div>
-</div>
diff --git a/chromium/chrome/browser/resources/options/website_settings.js b/chromium/chrome/browser/resources/options/website_settings.js
deleted file mode 100644
index f8aa1360b54..00000000000
--- a/chromium/chrome/browser/resources/options/website_settings.js
+++ /dev/null
@@ -1,270 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-cr.define('options.ContentSettings', function() {
- /** @const */ var Page = cr.ui.pageManager.Page;
- /** @const */ var PageManager = cr.ui.pageManager.PageManager;
- /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel;
-
- // Lookup table to generate the i18n strings.
- /** @const */ var permissionsLookup = {
- 'geolocation': 'location',
- 'notifications': 'notifications',
- 'media-stream': 'mediaStream',
- 'cookies': 'cookies',
- 'multiple-automatic-downloads': 'multipleAutomaticDownloads',
- 'images': 'images',
- 'plugins': 'plugins',
- 'popups': 'popups',
- 'javascript': 'javascript',
- 'battery': 'battery',
- 'storage': 'storage'
- };
-
- /////////////////////////////////////////////////////////////////////////////
- // WebsiteSettingsManager class:
-
- /**
- * Encapsulated handling of the website settings page.
- * @constructor
- * @extends {cr.ui.pageManager.Page}
- */
- function WebsiteSettingsManager() {
- Page.call(this, 'websiteSettings',
- loadTimeData.getString('websitesOptionsPageTabTitle'),
- 'website-settings-page');
- }
-
- cr.addSingletonGetter(WebsiteSettingsManager);
-
- WebsiteSettingsManager.prototype = {
- __proto__: Page.prototype,
-
- /**
- * The saved allowed origins list.
- * @type {options.OriginList}
- * @private
- */
- allowedList_: null,
-
- /**
- * The saved blocked origins list.
- * @type {options.OriginList}
- * @private
- */
- blockedList_: null,
-
- /** @override */
- initializePage: function() {
- Page.prototype.initializePage.call(this);
-
- $('website-settings-overlay-confirm').onclick =
- PageManager.closeOverlay.bind(PageManager);
-
- $('global-setting').onchange = function(event) {
- chrome.send('setDefaultContentSetting', [this.value]);
- };
-
- $('global-setting-toggle').onchange = function(event) {
- var value = event.target.checked;
- chrome.send('setGlobalEnabled', [value]);
- };
-
- var searchBox = $('website-settings-search-box');
- searchBox.addEventListener('search',
- this.handleSearchQueryChange_.bind(this));
-
- searchBox.onkeydown = function(e) {
- if (e.keyIdentifier == 'Enter')
- e.preventDefault();
- };
-
- this.createOriginsList_();
- this.updatePage_('geolocation');
- },
-
- /**
- * Called after the page has been shown. Show the content settings or
- * resource auditing for the location's hash.
- */
- didShowPage: function() {
- var hash = this.hash;
- if (hash)
- hash = hash.slice(1);
- else
- hash = 'geolocation';
- this.updatePage_(hash);
- },
-
- /**
- * Creates, decorates and initializes the origin list.
- * @private
- */
- createOriginsList_: function() {
- var allowedList = $('allowed-origin-list');
- options.OriginList.decorate(allowedList);
- this.allowedList_ = assertInstanceof(allowedList, options.OriginList);
- this.allowedList_.autoExpands = true;
-
- var blockedList = $('blocked-origin-list');
- options.OriginList.decorate(blockedList);
- this.blockedList_ = assertInstanceof(blockedList, options.OriginList);
- this.blockedList_.autoExpands = true;
- },
-
- /**
- * Populate an origin list with all of the origins with a given permission
- * or that are using a given resource.
- * @param {options.OriginList} originList A list to populate.
- * @param {!Object} originDict A dictionary of origins to their usage, which
- will be used to sort the origins.
- * @private
- */
- populateOriginsHelper_: function(originList, originDict) {
- var origins = Object.keys(originDict).map(function(origin) {
- // |usage| means the time of last usage in seconds since epoch
- // (Jan 1, 1970) for permissions and means the amount of local storage
- // in bytes used for local storage.
- return {
- origin: origin,
- usage: originDict[origin].usage,
- usageString: originDict[origin].usageString,
- readableName: originDict[origin].readableName,
- };
- });
- origins.sort(function(first, second) {
- return second.usage - first.usage;
- });
- originList.dataModel = new ArrayDataModel(origins);
- },
-
-
- /**
- * Populate the origin lists with all of the origins with a given permission
- * or that are using a given resource, potentially split by if allowed or
- * denied. If no blocked dictionary is provided, only the allowed list is
- * shown.
- * @param {!Object} allowedDict A dictionary of origins to their usage,
- which will be used to sort the origins in the main/allowed list.
- * @param {!Object} blockedDict An optional dictionary of origins to their
- usage, which will be used to sort the origins in the blocked list.
- * @param {boolean} isGloballyEnabled If the content setting is turned on.
- * @private
- */
- populateOrigins: function(allowedDict, blockedDict, isGloballyEnabled) {
- this.populateOriginsHelper_(this.allowedList_, allowedDict);
- if (blockedDict) {
- this.populateOriginsHelper_(this.blockedList_, blockedDict);
- this.blockedList_.hidden = false;
- $('blocked-origin-list-title').hidden = false;
- this.allowedList_.classList.remove('nonsplit-origin-list');
- } else {
- this.blockedList_.hidden = true;
- $('blocked-origin-list-title').hidden = true;
- $('allowed-origin-list-title').hidden = true;
- this.allowedList_.classList.add('nonsplit-origin-list');
- }
- $('global-setting-toggle').checked = isGloballyEnabled;
- },
-
- /**
- * Update the table with the origins filtered by the value in the search
- * box.
- * @private
- */
- searchOrigins: function() {
- var filter = $('website-settings-search-box').value;
- chrome.send('updateOriginsSearchResults', [filter]);
- },
-
- /**
- * Handle and delay search query changes.
- * @param {!Event} e The event object.
- * @private
- */
- handleSearchQueryChange_: function(e) {
- if (this.queryDelayTimerId_)
- window.clearTimeout(this.queryDelayTimerId_);
-
- this.queryDelayTimerId_ = window.setTimeout(this.searchOrigins.bind(this),
- 160);
- },
-
- /**
- * Sets the default content setting dropdown on the page to the current
- * default.
- * @param {!Object} dict A dictionary with the management and value of the
- * default setting for the last selected content setting..
- */
- updateDefault: function(dict) {
- // TODO(dhnishi): Remove duplicate default handling in the Content
- // Settings page and here.
- var managedBy = dict.managedBy;
- var controlledBy = managedBy == 'policy' || managedBy == 'extension' ?
- managedBy : null;
- $('global-setting').disabled = (managedBy != 'default');
-
- var options = $('global-setting').options;
- for (var i = 0; i < options.length; i++) {
- if (options[i].value == dict.value) {
- options.selectedIndex = i;
- }
- }
- },
-
- /**
- * Updates the page with the given content setting or resource name's
- * information.
- * @param {string} typeName The name of the content setting or resource.
- */
- updatePage_: function(typeName) {
- if (typeName == 'storage')
- chrome.send('updateLocalStorage');
- else if (typeName == 'battery')
- chrome.send('updateBatteryUsage');
- else
- chrome.send('updateOrigins', [typeName]);
-
- var options = $('global-setting').options;
- options.length = 0;
- var permissionString = permissionsLookup[typeName];
- var permissions = ['Allow', 'Ask', 'Block'];
- for (var i = 0; i < permissions.length; i++) {
- var valueId = permissionString + permissions[i];
- if (loadTimeData.valueExists(valueId)) {
- options.add(new Option(loadTimeData.getString(valueId),
- permissions[i].toLowerCase()));
- }
- }
- if (options.length == 0) {
- $('website-settings-global-controls').hidden = true;
- } else {
- $('website-settings-global-controls').hidden = false;
- chrome.send('updateDefaultSetting');
- }
-
- $('website-settings-title').textContent =
- loadTimeData.getString(permissionString + 'TabLabel');
- }
- };
-
- WebsiteSettingsManager.populateOrigins = function(allowedDict, blockedDict,
- isGloballyEnabled) {
- WebsiteSettingsManager.getInstance().populateOrigins(allowedDict,
- blockedDict, isGloballyEnabled);
- };
-
- WebsiteSettingsManager.updateDefault = function(dict) {
- WebsiteSettingsManager.getInstance().updateDefault(dict);
- };
-
- WebsiteSettingsManager.showWebsiteSettings = function(hash) {
- PageManager.showPageByName('websiteSettings', true, {hash: '#' + hash});
- };
-
- // Export
- return {
- WebsiteSettingsManager: WebsiteSettingsManager
- };
-});
diff --git a/chromium/chrome/browser/resources/options/website_settings_edit_page.js b/chromium/chrome/browser/resources/options/website_settings_edit_page.js
deleted file mode 100644
index 63b3e9bfdd0..00000000000
--- a/chromium/chrome/browser/resources/options/website_settings_edit_page.js
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-cr.define('options.WebsiteSettings', function() {
- /** @const */ var Page = cr.ui.pageManager.Page;
-
- /////////////////////////////////////////////////////////////////////////////
- // WebsiteSettingsEditor class:
-
- /**
- * Encapsulated handling of the website settings editor page.
- * @constructor
- * @extends {cr.ui.pageManager.Page}
- */
- function WebsiteSettingsEditor() {
- Page.call(this, 'websiteEdit',
- loadTimeData.getString('websitesOptionsPageTabTitle'),
- 'website-settings-edit-page');
- this.permissions = ['geolocation', 'notifications', 'media-stream',
- 'cookies', 'multiple-automatic-downloads', 'images',
- 'plugins', 'popups', 'javascript'];
- this.permissionsLookup = {
- 'geolocation': 'Location',
- 'notifications': 'Notifications',
- 'media-stream': 'MediaStream',
- 'cookies': 'Cookies',
- 'multiple-automatic-downloads': 'Downloads',
- 'images': 'Images',
- 'plugins': 'Plugins',
- 'popups': 'Popups',
- 'javascript': 'Javascript'
- };
- }
-
- cr.addSingletonGetter(WebsiteSettingsEditor);
-
- WebsiteSettingsEditor.prototype = {
- __proto__: Page.prototype,
-
-
- /** @override */
- initializePage: function() {
- Page.prototype.initializePage.call(this);
-
- $('website-settings-storage-delete-button').onclick = function(event) {
- chrome.send('deleteLocalStorage');
- };
-
- $('website-settings-battery-stop-button').onclick = function(event) {
- chrome.send('stopOrigin');
- };
-
- $('websiteSettingsEditorCancelButton').onclick =
- PageManager.closeOverlay.bind(PageManager);
-
- $('websiteSettingsEditorDoneButton').onclick = function(event) {
- WebsiteSettingsEditor.getInstance().updatePermissions();
- PageManager.closeOverlay.bind(PageManager)();
- };
-
- var permissionList =
- this.pageDiv.querySelector('.origin-permission-list');
- for (var key in this.permissions) {
- permissionList.appendChild(
- this.makePermissionOption_(this.permissions[key]));
- }
- },
-
- /**
- * Populates the page with the proper information for a given URL.
- * @param {string} url The URL of the page.
- * @private
- */
- populatePage: function(url) {
- this.url = url;
-
- var titleEl = $('website-title');
- titleEl.textContent = url;
- titleEl.style.backgroundImage = getFaviconImageSet(url);
-
- chrome.send('getOriginInfo', [url]);
- },
-
- /**
- * Populates and displays the page with given origin information.
- * @param {string} localStorage A string describing the local storage use.
- * @param {string} batteryUsage A string describing the battery use.
- * @param {Object} permissions A dictionary of permissions to their
- * available and current settings, and if it is editable.
- * @param {boolean} showPage If the page should raised.
- * @private
- */
- populateOrigin_: function(localStorage, batteryUsage, permissions,
- showPage) {
- $('local-storage-title').textContent = localStorage;
- $('battery-title').textContent = batteryUsage;
- for (var key in permissions) {
- var selector = $(key + '-select-option');
-
- var options = permissions[key].options;
- selector.options.length = 0;
- for (var option in options) {
- selector.options[selector.options.length] =
- new Option(loadTimeData.getString(options[option] + 'Exception'),
- options[option]);
- }
-
- selector.value = permissions[key].setting;
- selector.originalValue = permissions[key].setting;
- selector.disabled = !permissions[key].editable;
- }
- if (showPage)
- PageManager.showPageByName('websiteEdit', false);
- },
-
- updatePermissions: function() {
- for (var key in this.permissions) {
- var selection = $(this.permissions[key] + '-select-option');
- if (selection.value != selection.originalValue) {
- chrome.send('setOriginPermission',
- [this.permissions[key], selection.value]);
- }
- }
- },
-
- /**
- * Populates the origin permission list with the different usable
- * permissions.
- * @param {string} permissionName A string with the permission name.
- * @return {Element} The element with the usable permission setting.
- */
- makePermissionOption_: function(permissionName) {
- var permissionOption = cr.doc.createElement('div');
- permissionOption.className = 'permission-option';
-
- var permissionNameSpan = cr.doc.createElement('span');
- permissionNameSpan.className = 'permission-name';
- permissionNameSpan.textContent = loadTimeData.getString('websites' +
- this.permissionsLookup[permissionName] + 'Description');
- permissionOption.appendChild(permissionNameSpan);
-
- var permissionSelector = cr.doc.createElement('select');
- permissionSelector.setAttribute('id', permissionName + '-select-option');
- permissionSelector.className = 'weaktrl permission-selection-option';
- permissionOption.appendChild(permissionSelector);
- return permissionOption;
- },
- };
-
- WebsiteSettingsEditor.populateOrigin = function(localStorage, batteryUsage,
- permissions, showPage) {
- WebsiteSettingsEditor.getInstance().populateOrigin_(localStorage,
- batteryUsage,
- permissions,
- showPage);
- };
-
- WebsiteSettingsEditor.showEditPage = function(url) {
- WebsiteSettingsEditor.getInstance().populatePage(url);
- };
-
- // Export
- return {
- WebsiteSettingsEditor: WebsiteSettingsEditor
- };
-
-});
diff --git a/chromium/chrome/browser/resources/options/website_settings_edit_site.html b/chromium/chrome/browser/resources/options/website_settings_edit_site.html
deleted file mode 100644
index db1649bccfc..00000000000
--- a/chromium/chrome/browser/resources/options/website_settings_edit_site.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<div id="website-settings-edit-page" class="page not-resizable" hidden>
- <div class="close-button"></div>
- <h1 i18n-content="websitesSettingsEditPage"></h1>
- <div class="content-area">
- <div class="website-properties">
- <h3 id="website-title" class="title favicon-cell weaktrl"></h3>
- <div class="website-property-area">
- <div id="local-storage-title" class="website-property"></div>
- <div class="website-property-controls">
- <button id="website-settings-storage-delete-button"
- class="website-property-button"
- i18n-content="websitesButtonClear">
- </div>
- </div>
- <div class="website-property-area">
- <div id="battery-title" class="website-property"></div>
- <div class="website-property-controls">
- <button id="website-settings-battery-stop-button"
- class="website-property-button"
- i18n-content="websitesButtonStop">
- </div>
- </div>
- </div>
- <div class="website-column-headers">
- <div class="website-header-controls">
- <div id="website-settings-permission-column">Permissions</div>
- </div>
- </div>
- <list class="origin-permission-list"></list>
- </div>
- <div class="action-area">
- <div class="button-strip">
- <button id="websiteSettingsEditorCancelButton" i18n-content="cancel">
- </button>
- <button id="websiteSettingsEditorDoneButton" i18n-content="done">
- </button>
- </div>
- </div>
-</div>
diff --git a/chromium/chrome/browser/resources/password_manager_internals/OWNERS b/chromium/chrome/browser/resources/password_manager_internals/OWNERS
index dadcb138c82..5296ea445dc 100644
--- a/chromium/chrome/browser/resources/password_manager_internals/OWNERS
+++ b/chromium/chrome/browser/resources/password_manager_internals/OWNERS
@@ -1,3 +1,2 @@
-dubroy@chromium.org
mkwst@chromium.org
vabr@chromium.org
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.css b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.css
index f20997dd5ee..ed9c5746609 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.css
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.css
@@ -2,6 +2,18 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
-.sub-bookmark {
- margin-left: 1em;
+#item {
+ -webkit-user-select: none;
+ color: rgb(80, 80, 80);
+ cursor: pointer;
+ min-height: 40px;
+ position: relative;
+ @apply(--paper-font-subhead);
+ @apply(--layout-horizontal);
+ @apply(--layout-center);
+}
+
+#item:hover {
+ background-color: rgb(237, 237, 237);
+ color: rgb(20, 20, 20);
}
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.html b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.html
index 66e1a942430..9328289811e 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.html
@@ -1,17 +1,22 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/paper-item/paper-item.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-ripple/paper-ripple.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/paper-styles.html">
-<polymer-element name="viewer-bookmark" attributes="bookmark">
-<template>
- <link rel="stylesheet" href="viewer-bookmark.css">
- <paper-item on-click="{{onClick}}">{{bookmark.title}}</paper-item>
- <template if="{{bookmark.children.length !== 0}}">
+<dom-module id="viewer-bookmark" attributes="bookmark">
+ <link rel="import" type="css" href="viewer-bookmark.css">
+ <template>
+ <div id="item" on-click="onClick">
+ <span>{{bookmark.title}}</span>
+ <paper-ripple></paper-ripple>
+ </div>
<div class="sub-bookmark">
- <template repeat="{{child in bookmark.children}}">
- <viewer-bookmark bookmark="{{child}}"></viewer-bookmark>
+ <!-- The sub-bookmarks will only be created after the parent bookmark has
+ finished initializing and childDepth is available. -->
+ <template is="dom-repeat" items="{{bookmark.children}}">
+ <viewer-bookmark bookmark="{{item}}" depth="{{childDepth}}">
+ </viewer-bookmark>
</template>
</div>
</template>
-</template>
+</dom-module>
<script src="viewer-bookmark.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js
index 43f9de649e5..4f555296490 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js
@@ -2,20 +2,38 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('viewer-bookmark', {
+(function() {
+ // Amount that each level of bookmarks is indented by (px).
+ var BOOKMARK_INDENT = 16;
- /**
- * @type {Object}
- * A bookmark object, each containing a:
- * - title
- * - page (optional)
- * - children (an array of bookmarks)
- */
- bookmark: null,
+ Polymer({
+ is: 'viewer-bookmark',
- onClick: function() {
- if (this.bookmark.hasOwnProperty('page'))
- this.fire('change-page', {page: this.bookmark.page});
- },
+ properties: {
+ /**
+ * A bookmark object, each containing a:
+ * - title
+ * - page (optional)
+ * - children (an array of bookmarks)
+ */
+ bookmark: Object,
-});
+ depth: {
+ type: Number,
+ observer: 'depthChanged'
+ },
+
+ childDepth: Number
+ },
+
+ depthChanged: function() {
+ this.childDepth = this.depth + 1;
+ this.$.item.style.paddingLeft = (this.depth * BOOKMARK_INDENT) + 'px';
+ },
+
+ onClick: function() {
+ if (this.bookmark.hasOwnProperty('page'))
+ this.fire('change-page', {page: this.bookmark.page});
+ },
+ });
+})();
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.html b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.html
index d0f35e8c320..336ca3a1e32 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.html
@@ -1,10 +1,11 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<link rel="import" href="../viewer-bookmark/viewer-bookmark.html">
-<polymer-element name="viewer-bookmarks-content" noscript>
-<template>
- <template repeat="{{bookmarkNode in bookmarks}}">
- <viewer-bookmark bookmark="{{bookmarkNode}}"></viewer-bookmark>
+<dom-module id="viewer-bookmarks-content">
+ <template>
+ <template is="dom-repeat" items="{{bookmarks}}">
+ <viewer-bookmark bookmark="{{item}}" depth="1"></viewer-bookmark>
+ </template>
</template>
-</template>
-</polymer-element>
+</dom-module>
+<script src="viewer-bookmarks-content.js"></script>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.js b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.js
new file mode 100644
index 00000000000..1aa2b5cc232
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmarks-content/viewer-bookmarks-content.js
@@ -0,0 +1,7 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Polymer({
+ is: 'viewer-bookmarks-content'
+});
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_page.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_page.png
index 6977d2b8796..188cdabb125 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_page.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_page.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_width.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_width.png
index d9dea06a74f..a3fa6a6f995 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_width.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_fit_width.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_play.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_play.png
index ac73ffc1724..cba2c19f3fa 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_play.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_play.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_print.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_print.png
index 7fa75a3df72..fa53e8573eb 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_print.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_print.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_save.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_save.png
index ea125115ed7..7ec211f1ad3 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_save.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_save.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_in.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_in.png
index 2cedf813153..fdcc5c83ab5 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_in.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_in.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_out.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_out.png
index e27c272fd80..4c6a5e01817 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_out.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/hiDPI/button_zoom_out.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_page.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_page.png
index e8e7a7039cf..626e3d0e9c9 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_page.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_page.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_width.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_width.png
index 700f4861ea5..00c4f962ad0 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_width.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_fit_width.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_play.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_play.png
index d5ceae76ac8..5fb85b69a82 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_play.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_play.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_print.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_print.png
index e044a28837f..89b8738f465 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_print.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_print.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_save.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_save.png
index e732a442f35..4dc1db2dd0d 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_save.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_save.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_in.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_in.png
index e05ae81589a..1fde30f28c5 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_in.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_in.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_out.png b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_out.png
index b76b54c95fc..0a55eabd0f2 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_out.png
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/img/lowDPI/button_zoom_out.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.html b/chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.html
index 4c19bf3338c..9965142c83c 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.html
@@ -1,9 +1,9 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
-<polymer-element name="viewer-button" attributes="img latchable">
-<template>
- <link rel="stylesheet" href="viewer-button.css">
- <div id="icon"></div>
-</template>
+<dom-module id="viewer-button">
+ <link rel="import" type="css" href="viewer-button.css">
+ <template>
+ <div id="icon"></div>
+ </template>
+</dom-module>
<script src="viewer-button.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.js b/chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.js
index 73bd53eff1e..063a26e106d 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.js
@@ -5,15 +5,28 @@
(function() {
var dpi = '';
- Polymer('viewer-button', {
- img: '',
- latchable: false,
- ready: function() {
+ Polymer({
+ is: 'viewer-button',
+
+ properties: {
+ img: {
+ type: String,
+ observer: 'imgChanged'
+ },
+
+ latchable: {
+ type: Boolean,
+ observer: 'latchableChanged'
+ }
+ },
+
+ created: function() {
if (!dpi) {
var mql = window.matchMedia('(-webkit-min-device-pixel-ratio: 1.3');
dpi = mql.matches ? 'hi' : 'low';
}
},
+
imgChanged: function() {
if (this.img) {
this.$.icon.style.backgroundImage =
@@ -23,6 +36,7 @@
this.$.icon.style.backgroundImage = '';
}
},
+
latchableChanged: function() {
if (this.latchable)
this.classList.add('latchable');
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.css b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.css
new file mode 100644
index 00000000000..07ee91dd908
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.css
@@ -0,0 +1,22 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+:host {
+ background-color: #ccc;
+ color: #555;
+ font-family: sans-serif;
+ font-size: 20px;
+ height: 100%;
+ pointer-events: none;
+ position: fixed;
+ text-align: center;
+ width: 100%;
+}
+
+#load-failed-message {
+ line-height: 0;
+ position: absolute;
+ top: 50%;
+ width: 100%;
+} \ No newline at end of file
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html
new file mode 100644
index 00000000000..57109d0b694
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html
@@ -0,0 +1,9 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+
+<dom-module id="viewer-error-screen-legacy">
+ <link rel="import" type="css" href="viewer-error-screen-legacy.css">
+ <template>
+ <div id="load-failed-message">{{text}}</div>
+ </template>
+</dom-module>
+<script src="viewer-error-screen-legacy.js"></script>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.js b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.js
new file mode 100644
index 00000000000..abd56be2b3a
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.js
@@ -0,0 +1,10 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Polymer({
+ is: 'viewer-error-screen-legacy',
+ properties: {
+ text: String
+ }
+});
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.html b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.html
index 0d8f267c490..24344a23b5c 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.html
@@ -1,9 +1,9 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
-<polymer-element name="viewer-error-screen" attributes="text">
-<template>
- <link rel="stylesheet" href="viewer-error-screen.css">
- <div id="load-failed-message">{{text}}</div>
-</template>
+<dom-module id="viewer-error-screen">
+ <link rel="import" type="css" href="viewer-error-screen.css">
+ <template>
+ <div id="load-failed-message">{{text}}</div>
+ </template>
+</dom-module>
<script src="viewer-error-screen.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.js b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.js
index c63874dd2d7..905c8a0d7a4 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-error-screen/viewer-error-screen.js
@@ -2,4 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('viewer-error-screen', {});
+Polymer({
+ is: 'viewer-error-screen',
+ properties: {
+ text: String
+ }
+});
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.html b/chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.html
index 86bd26ca2f5..30df148fc29 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.html
@@ -1,10 +1,10 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
-<polymer-element name="viewer-page-indicator" attributes="index label">
-<template>
- <link rel="stylesheet" href="viewer-page-indicator.css">
- <div id="text">{{label}}</div>
- <div id="triangle-right"></div>
-</template>
+<dom-module id="viewer-page-indicator">
+ <link rel="import" type="css" href="viewer-page-indicator.css">
+ <template>
+ <div id="text">{{label}}</div>
+ <div id="triangle-right"></div>
+ </template>
+</dom-module>
<script src="viewer-page-indicator.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.js b/chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.js
index 8612e170348..2cf279b68b1 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.js
@@ -2,20 +2,40 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('viewer-page-indicator', {
- label: '1',
- index: 0,
+Polymer({
+ is: 'viewer-page-indicator',
+
+ properties: {
+ label: {
+ type: String,
+ value: '1'
+ },
+
+ index: {
+ type: Number,
+ observer: 'indexChanged'
+ },
+
+ pageLabels: {
+ type: Array,
+ value: null,
+ observer: 'pageLabelsChanged'
+ }
+ },
+
timerId: undefined,
- pageLabels: null,
+
ready: function() {
var callback = this.fadeIn.bind(this, 2000);
window.addEventListener('scroll', function() {
requestAnimationFrame(callback);
});
},
+
initialFadeIn: function() {
this.fadeIn(6000);
},
+
fadeIn: function(displayTime) {
var percent = window.scrollY /
(document.body.scrollHeight -
@@ -30,9 +50,11 @@ Polymer('viewer-page-indicator', {
this.timerId = undefined;
}.bind(this), displayTime);
},
+
pageLabelsChanged: function() {
this.indexChanged();
},
+
indexChanged: function() {
if (this.pageLabels)
this.label = this.pageLabels[this.index];
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.css b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.css
index 33a2e8bc898..1f858bc2b64 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.css
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.css
@@ -7,28 +7,35 @@
width: 0.6em;
}
-paper-input-decorator /deep/ ::-webkit-input-placeholder {
- color: rgb(241, 241, 241);
+paper-input-container /deep/ .focused-line {
+ visibility: hidden;
}
-paper-input-decorator /deep/ .focused-underline {
- background-color: rgb(241, 241, 241);
+paper-input-container /deep/ .unfocused-line {
+ visibility: hidden;
}
-paper-input-decorator /deep/ .unfocused-underline {
- background-color: transparent;
+paper-input-container {
+ padding: 0;
}
-paper-input-decorator:hover /deep/ .unfocused-underline {
- background-color: rgb(241, 241, 241);
+input#input {
+ color: #fff;
+ font-size: 1em;
+ line-height: 20px;
+ padding: 3px;
+ text-align: right;
}
-#input {
- margin: 0;
- text-align: right;
+input#input:focus,
+input#input:hover {
+ background-color: rgba(0, 0, 0, 0.5);
+ border-radius: 2px;
}
#pagelength {
- color: rgb(144, 202, 251);
+ color: #fff;
font-size: 0.7em;
+ font-weight: 400;
+ padding-left: 3px;
}
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html
index 1901375faad..82fc8975526 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html
@@ -1,14 +1,15 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/paper-input/paper-input-decorator.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-input/iron-input.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input-container.html">
-<polymer-element name="viewer-page-selector" attributes="index docLength">
-<template>
- <link rel="stylesheet" href="viewer-page-selector.css">
- <paper-input-decorator id="pageselector">
- <input id="input" is="core-input"
- value="{{pageNo}}" committedvalue="{{chosenPageNo}}">
- </paper-input-decorator>
- <span id="pagelength">/ {{docLength}}</span>
-</template>
+<dom-module id="viewer-page-selector">
+ <link rel="import" type="css" href="viewer-page-selector.css">
+ <template>
+ <paper-input-container id="pageselector" no-label-float>
+ <input id="input" is="iron-input" bind-value="{{pageNo}}" on-mouseup="select"
+ on-change="pageNoCommitted">
+ </paper-input-container>
+ <span id="pagelength">/ <span>{{docLength}}</span></span>
+ </template>
+</dom-module>
<script src="viewer-page-selector.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js
index 97713d53eb8..5086219364e 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js
@@ -4,47 +4,35 @@
var DIGIT_LENGTH = 0.6;
-Polymer('viewer-page-selector', {
- /**
- * @type {string}
- * The current entry in the input field (1-based).
- */
- pageNo: '1',
-
- /**
- * @type {number}
- * The index of the current page being viewed (0-based).
- */
- index: 0,
-
- /**
- * @type {number}
- * The number of pages the document contains.
- */
- docLength: 1,
-
- /**
- * @type {string}
- * The submitted input from the user (1-based).
- */
- chosenPageNo: '1',
+Polymer({
+ is: 'viewer-page-selector',
+
+ properties: {
+ /**
+ * The number of pages the document contains.
+ */
+ docLength: {
+ type: Number,
+ value: 1,
+ observer: 'docLengthChanged'
+ },
+
+ /**
+ * The current page being viewed (1-based).
+ */
+ pageNo: {
+ type: String,
+ value: '1'
+ }
+ },
- chosenPageNoChanged: function() {
- var page = parseInt(this.chosenPageNo);
+ pageNoCommitted: function() {
+ var page = parseInt(this.pageNo);
if (!isNaN(page)) {
this.fire('change-page', {page: page - 1});
- } else {
- // Repopulate the input.
- this.indexChanged();
- // Change the chosenPageNo so if it is '' again we can repopulate it.
- this.chosenPageNo = this.pageNo;
}
},
- indexChanged: function() {
- this.pageNo = String(this.index + 1);
- },
-
docLengthChanged: function() {
var numDigits = this.docLength.toString().length;
this.$.pageselector.style.width = (numDigits * DIGIT_LENGTH) + 'em';
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.css b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.css
new file mode 100644
index 00000000000..83c3fc47961
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.css
@@ -0,0 +1,39 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+:host {
+ -webkit-transition: opacity 400ms ease-in-out;
+ background-color: #ccc;
+ color: #555;
+ display: table;
+ font-family: sans-serif;
+ font-size: 15px;
+ height: 100%;
+ pointer-events: none;
+ position: fixed;
+ text-align: center;
+ width: 100%;
+}
+
+#message {
+ padding-bottom: 10px;
+}
+
+.center {
+ display: table-cell;
+ vertical-align: middle;
+}
+
+.form {
+ border: 1px solid #777;
+ box-shadow: 1px 1px 1px;
+ display: inline-block;
+ padding: 10px;
+ width: 300px;
+}
+
+input {
+ color: #333;
+ pointer-events: all;
+} \ No newline at end of file
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html
new file mode 100644
index 00000000000..d4846205543
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html
@@ -0,0 +1,15 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+
+<dom-module id="viewer-password-screen-legacy">
+ <link rel="import" type="css" href="viewer-password-screen-legacy.css">
+ <template>
+ <div class="center">
+ <form class="form">
+ <div id="message">{{text}}</div>
+ <input id="password" type="password" size="20"></input>
+ <input id="submit" type="submit" on-click="submit"></input>
+ </form>
+ </div>
+ </template>
+</dom-module>
+<script src="viewer-password-screen-legacy.js"></script>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.js b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.js
new file mode 100644
index 00000000000..8d09e153e50
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.js
@@ -0,0 +1,62 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Polymer({
+ is: 'viewer-password-screen-legacy',
+
+ properties: {
+ text: {
+ type: String,
+ value: 'This document is password protected. Please enter a password.',
+ },
+
+ active: {
+ type: Boolean,
+ value: false,
+ observer: 'activeChanged'
+ }
+ },
+
+ timerId: undefined,
+
+ ready: function() {
+ this.activeChanged();
+ },
+
+ accept: function() {
+ this.active = false;
+ },
+
+ deny: function() {
+ this.$.password.disabled = false;
+ this.$.submit.disabled = false;
+ this.$.password.focus();
+ this.$.password.select();
+ },
+
+ submit: function(e) {
+ // Prevent the default form submission behavior.
+ e.preventDefault();
+ if (this.$.password.value.length == 0)
+ return;
+ this.$.password.disabled = true;
+ this.$.submit.disabled = true;
+ this.fire('password-submitted', {password: this.$.password.value});
+ },
+
+ activeChanged: function() {
+ clearTimeout(this.timerId);
+ this.timerId = undefined;
+ if (this.active) {
+ this.style.visibility = 'visible';
+ this.style.opacity = 1;
+ this.$.password.focus();
+ } else {
+ this.style.opacity = 0;
+ this.timerId = setTimeout(function() {
+ this.style.visibility = 'hidden';
+ }.bind(this), 400);
+ }
+ }
+});
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html
index 747adb570c6..3506405441e 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html
@@ -1,15 +1,15 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
-<polymer-element name="viewer-password-screen" attributes="text active">
-<template>
- <link rel="stylesheet" href="viewer-password-screen.css">
- <div class="center">
- <form class="form">
- <div id="message">{{text}}</div>
- <input id="password" type="password" size="20"></input>
- <input id="submit" type="submit" on-click={{submit}}></input>
- </form>
- </div>
-</template>
+<dom-module id="viewer-password-screen">
+ <link rel="import" type="css" href="viewer-password-screen.css">
+ <template>
+ <div class="center">
+ <form class="form">
+ <div id="message">{{text}}</div>
+ <input id="password" type="password" size="20"></input>
+ <input id="submit" type="submit" on-click="submit"></input>
+ </form>
+ </div>
+ </template>
+</dom-module>
<script src="viewer-password-screen.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js
index 83e8a23d075..491c0a8e4c6 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js
@@ -2,22 +2,39 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('viewer-password-screen', {
- text: 'This document is password protected. Please enter a password.',
- active: false,
+Polymer({
+ is: 'viewer-password-screen',
+
+ properties: {
+ text: {
+ type: String,
+ value: 'This document is password protected. Please enter a password.',
+ },
+
+ active: {
+ type: Boolean,
+ value: false,
+ observer: 'activeChanged'
+ }
+ },
+
timerId: undefined,
+
ready: function() {
this.activeChanged();
},
+
accept: function() {
this.active = false;
},
+
deny: function() {
this.$.password.disabled = false;
this.$.submit.disabled = false;
this.$.password.focus();
this.$.password.select();
},
+
submit: function(e) {
// Prevent the default form submission behavior.
e.preventDefault();
@@ -27,6 +44,7 @@ Polymer('viewer-password-screen', {
this.$.submit.disabled = true;
this.fire('password-submitted', {password: this.$.password.value});
},
+
activeChanged: function() {
clearTimeout(this.timerId);
this.timerId = undefined;
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.css b/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.css
index bafc784a800..436090c063a 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.css
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.css
@@ -2,12 +2,6 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
-/* We introduce a wrapper animatable element and set the overflow since
- * core-transition interferes with the box-shadow from paper-shadow. */
-#animatable {
- overflow: visible;
-}
-
/* We introduce a wrapper aligner element as setting the relevant attributes
* (horizontal justified layout center) have no effect on the core-toolbar. */
#aligner {
@@ -32,6 +26,14 @@
text-align: right;
}
+#buttons > paper-icon-button {
+ margin-right: 8px;
+}
+
+viewer-toolbar-dropdown {
+ margin-right: 4px;
+}
+
paper-progress {
height: 56px;
position: absolute;
@@ -39,16 +41,13 @@ paper-progress {
z-index: 3;
}
-paper-progress::shadow #activeProgress {
- background-color: rgb(27, 168, 243);
-}
-
-paper-progress::shadow #progressContainer {
- background-color: rgb(100, 181, 246);
+paper-progress {
+ --paper-progress-active-color: rgb(50, 54, 57);
+ --paper-progress-container-color: rgb(34, 36, 38);
}
-core-toolbar {
- background-color: rgb(27, 168, 243);
+paper-toolbar {
+ background-color: transparent;
color: rgb(241, 241, 241);
font-size: 1.5em;
height: 56px;
@@ -57,8 +56,12 @@ core-toolbar {
z-index: 3;
}
-core-toolbar /deep/ ::selection {
- background: rgb(187, 222, 251);
+paper-toolbar /deep/ ::selection {
+ background: rgba(255, 255, 255, 0.3);
+}
+
+paper-toolbar /deep/ .toolbar-tools {
+ height: 56px;
}
.invisible {
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html b/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html
index 2127522d708..8cba44f130e 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html
@@ -1,47 +1,60 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-shadow-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/image-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/slide-down-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/slide-up-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animation-runner-behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-progress/paper-progress.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-toolbar/paper-toolbar.html">
+<link rel="import" href="../viewer-bookmarks-content/viewer-bookmarks-content.html">
<link rel="import" href="../viewer-page-selector/viewer-page-selector.html">
-<link rel="import" href="chrome://resources/polymer/core-icons/image-icons.html">
-<link rel="import" href="chrome://resources/polymer/core-toolbar/core-toolbar.html">
-<link rel="import" href="chrome://resources/polymer/paper-icon-button/paper-icon-button.html">
-<link rel="import" href="chrome://resources/polymer/paper-shadow/paper-shadow.html">
+<link rel="import" href="../viewer-toolbar-dropdown/viewer-toolbar-dropdown.html">
-<polymer-element name="viewer-pdf-toolbar">
-<template>
- <link rel="stylesheet" href="viewer-pdf-toolbar.css">
- <div id="animatable">
- <paper-shadow fit></paper-shadow>
+<dom-module id="viewer-pdf-toolbar">
+ <link rel="import" type="css" href="viewer-pdf-toolbar.css">
+ <template>
+ <paper-material class="fit"></paper-material>
- <!-- TODO(tsergeant): Re-enable once paper-progress is available in Polymer
- 0.8 -->
- <!--<paper-progress value="{{loadProgress}}"></paper-progress>-->
+ <paper-progress value="{{loadProgress}}"></paper-progress>
- <core-toolbar class="core-narrow">
- <div id="aligner" horizontal layout center>
- <span id="title" class="invisible" title="{{docTitle}}" flex five>
- {{docTitle}}
+ <paper-toolbar>
+ <div id="aligner" class="horizontal layout center">
+ <span id="title" class="invisible flex-5" title="{{docTitle}}">
+ <span>{{docTitle}}</span>
</span>
- <div flex one id="pageselector-container">
+ <div class="flex-1" id="pageselector-container">
<viewer-page-selector id="pageselector" class="invisible"
- index="{{pageIndex}}" docLength="{{docLength}}">
+ doc-length="{{docLength}}" page-no="{{pageNo}}">
</viewer-page-selector>
</div>
- <div id="buttons" class="invisible" flex five>
+ <div id="buttons" class="invisible flex-5">
+ <!-- TODO(tsergeant): "Bookmarks" should be localized. -->
+ <viewer-toolbar-dropdown id="bookmarks"
+ hidden$="[[!bookmarks]]"
+ header="Bookmarks"
+ open-icon="bookmark"
+ closed-icon="bookmark-border">
+ <viewer-bookmarks-content bookmarks="{{bookmarks}}">
+ </viewer-bookmarks-content>
+ </viewer-toolbar-dropdown>
<paper-icon-button icon="image:rotate-right"
- on-click="{{rotateRight}}"></paper-icon-button>
- <template if="{{hasBookmarks}}">
- <paper-icon-button icon="bookmark-outline"
- on-click="{{toggleBookmarks}}" hidden></paper-icon-button>
- </template>
+ on-click="rotateRight"></paper-icon-button>
+ <!-- TODO(tsergeant): Replace this placeholder with a more useful
+ button. -->
+ <paper-icon-button icon="image:rotate-left"
+ on-click="rotateLeft"></paper-icon-button>
<paper-icon-button icon="save"
- on-click="{{save}}"></paper-icon-button>
+ on-click="save"></paper-icon-button>
<paper-icon-button icon="print"
- on-click="{{print}}"></paper-icon-button>
+ on-click="print"></paper-icon-button>
</div>
</div>
- </core-toolbar>
- </div>
-</template>
+ </paper-toolbar>
+ </template>
+</dom-module>
<script src="viewer-pdf-toolbar.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.js b/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.js
index b291f62348e..62e5cf9a5ec 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.js
@@ -2,45 +2,84 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function() {
- Polymer('viewer-pdf-toolbar', {
- /**
- * @type {string}
- * The title of the PDF document.
- */
- docTitle: '',
-
- /**
- * @type {number}
- * The current index of the page being viewed (0-based).
- */
- pageIndex: 0,
-
- /**
- * @type {number}
- * The current loading progress of the PDF document (0 - 100).
- */
- loadProgress: 0,
-
- /**
- * @type {boolean}
- * Whether the document has bookmarks.
- */
- hasBookmarks: false,
-
- /**
- * @type {number}
- * The number of pages in the PDF document.
- */
- docLength: 1,
-
- ready: function() {
+ Polymer({
+ is: 'viewer-pdf-toolbar',
+
+ behaviors: [
+ Polymer.NeonAnimationRunnerBehavior
+ ],
+
+ properties: {
+ /**
+ * The current loading progress of the PDF document (0 - 100).
+ */
+ loadProgress: {
+ type: Number,
+ observer: 'loadProgressChanged'
+ },
+
+ /**
+ * The title of the PDF document.
+ */
+ docTitle: String,
+
+ /**
+ * The number of the page being viewed (1-based).
+ */
+ pageNo: Number,
+
+ /**
+ * Tree of PDF bookmarks (or null if the document has no bookmarks).
+ */
+ bookmarks: {
+ type: Object,
+ value: null
+ },
+
+ /**
+ * The number of pages in the PDF document.
+ */
+ docLength: Number,
+
/**
- * @type {Object}
- * Used in core-transition to determine whether the animatable is open.
- * TODO(tsergeant): Add core-transition back in once it is in Polymer 0.8.
+ * Whether the toolbar is opened and visible.
*/
- this.state_ = { opened: false };
- this.show();
+ opened: {
+ type: Boolean,
+ value: true
+ },
+
+ animationConfig: {
+ value: function() {
+ return {
+ 'entry': {
+ name: 'slide-down-animation',
+ node: this,
+ timing: {
+ easing: 'cubic-bezier(0, 0, 0.2, 1)',
+ duration: 250
+ }
+ },
+ 'exit': {
+ name: 'slide-up-animation',
+ node: this,
+ timing: {
+ easing: 'cubic-bezier(0.4, 0, 1, 1)',
+ duration: 250
+ }
+ }
+ };
+ }
+ }
+ },
+
+ listeners: {
+ 'neon-animation-finish': '_onAnimationFinished'
+ },
+
+ _onAnimationFinished: function() {
+ if (!this.opened)
+ this.style.visibility = 'hidden';
},
loadProgressChanged: function() {
@@ -52,29 +91,41 @@
},
hide: function() {
- if (this.state_.opened)
+ if (this.opened)
this.toggleVisibility();
},
show: function() {
- if (!this.state_.opened)
+ if (!this.opened) {
this.toggleVisibility();
+ this.style.visibility = 'initial';
+ }
},
toggleVisibility: function() {
- this.state_.opened = !this.state_.opened;
+ this.opened = !this.opened;
+ this.cancelAnimation();
+ this.playAnimation(this.opened ? 'entry' : 'exit');
},
selectPageNumber: function() {
this.$.pageselector.select();
},
- rotateRight: function() {
- this.fire('rotate-right');
+ shouldKeepOpen: function() {
+ return this.$.bookmarks.dropdownOpen || this.loadProgress < 100;
+ },
+
+ setDropdownLowerBound: function(lowerBound) {
+ this.$.bookmarks.lowerBound = lowerBound;
},
- toggleBookmarks: function() {
- this.fire('toggle-bookmarks');
+ rotateLeft: function() {
+ this.fire('rotate-left');
+ },
+
+ rotateRight: function() {
+ this.fire('rotate-right');
},
save: function() {
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html b/chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html
index d8c23fa403b..8dff9f72dd1 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html
@@ -1,14 +1,13 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
-<polymer-element name="viewer-progress-bar"
- attributes="progress text numSegments">
-<template>
- <link rel="stylesheet" href="viewer-progress-bar.css">
- <div class="scaler">
- <ul id="segments"></ul>
- <div class="center-circle"></div>
- </div>
- <div id="text">{{text}}</div>
-</template>
+<dom-module id="viewer-progress-bar">
+ <link rel="import" type="css" href="viewer-progress-bar.css">
+ <template>
+ <div class="scaler">
+ <ul id="segments"></ul>
+ <div class="center-circle"></div>
+ </div>
+ <div id="text">{{text}}</div>
+ </template>
+</dom-module>
<script src="viewer-progress-bar.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.js b/chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.js
index 97987cc0eeb..710f01eac94 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.js
@@ -2,14 +2,33 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('viewer-progress-bar', {
- progress: 0,
- text: 'Loading',
- numSegments: 8,
+Polymer({
+ is: 'viewer-progress-bar',
+
+ properties: {
+ progress: {
+ type: Number,
+ observer: 'progressChanged'
+ },
+
+ text: {
+ type: String,
+ value: 'Loading'
+ },
+
+ numSegments: {
+ type: Number,
+ value: 8,
+ observer: 'numSegmentsChanged'
+ }
+ },
+
segments: [],
+
ready: function() {
this.numSegmentsChanged();
},
+
progressChanged: function() {
var numVisible = this.progress * this.segments.length / 100.0;
for (var i = 0; i < this.segments.length; i++) {
@@ -20,6 +39,7 @@ Polymer('viewer-progress-bar', {
if (this.progress >= 100 || this.progress < 0)
this.style.opacity = 0;
},
+
numSegmentsChanged: function() {
// Clear the existing segments.
this.segments = [];
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.css b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.css
new file mode 100644
index 00000000000..066c4a52de2
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.css
@@ -0,0 +1,49 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+:host {
+ display: inline-block;
+ text-align: left;
+}
+
+#container {
+ position: absolute;
+}
+
+paper-material {
+ background-color: rgb(256, 256, 256);
+ border-radius: 4px;
+ overflow-y: hidden;
+ padding-bottom: 2px;
+ width: 260px;
+}
+
+#scroll-container {
+ max-height: 300px;
+ overflow-y: auto;
+ padding: 6px 0 4px 0;
+}
+
+#icon {
+ cursor: pointer;
+ display: inline-block;
+}
+
+#icon.open {
+ background-color: rgb(25, 27, 29);
+ border-radius: 4px;
+}
+
+#arrow {
+ margin-left: -18px;
+ padding-right: 4px;
+}
+
+h1 {
+ border-bottom: 1px solid rgb(219, 219, 219);
+ color: rgb(33, 33, 33);
+ margin: 0;
+ padding: 16px;
+ @apply(--paper-font-title);
+}
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html
new file mode 100644
index 00000000000..9b6ec5ec41e
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html
@@ -0,0 +1,25 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/web-animations.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html">
+
+<dom-module id="viewer-toolbar-dropdown">
+ <link rel="import" type="css" href="viewer-toolbar-dropdown.css">
+ <template>
+ <div on-click="toggleDropdown" id="icon">
+ <paper-icon-button icon="[[dropdownIcon]]"></paper-icon-button>
+ <iron-icon icon="arrow-drop-down" id="arrow"></iron-icon>
+ </div>
+
+ <div id="container">
+ <paper-material id="dropdown" style="display: none">
+ <h1>{{header}}</h1>
+ <div id="scroll-container">
+ <content></content>
+ </div>
+ </paper-material>
+ </div>
+ </template>
+</dom-module>
+
+<script src="viewer-toolbar-dropdown.js"></script>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js
new file mode 100644
index 00000000000..8586d829457
--- /dev/null
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js
@@ -0,0 +1,137 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+(function() {
+ /**
+ * Size of additional padding in the inner scrollable section of the dropdown.
+ */
+ var DROPDOWN_INNER_PADDING = 12;
+
+ /** Size of vertical padding on the outer #dropdown element. */
+ var DROPDOWN_OUTER_PADDING = 2;
+
+ /** Minimum height of toolbar dropdowns (px). */
+ var MIN_DROPDOWN_HEIGHT = 300;
+
+ Polymer({
+ is: 'viewer-toolbar-dropdown',
+
+ properties: {
+ /** String to be displayed at the top of the dropdown. */
+ header: String,
+
+ /** Icon to display when the dropdown is closed. */
+ closedIcon: String,
+
+ /** Icon to display when the dropdown is open. */
+ openIcon: String,
+
+ /** True if the dropdown is currently open. */
+ dropdownOpen: {
+ type: Boolean,
+ value: false
+ },
+
+ /** Toolbar icon currently being displayed. */
+ dropdownIcon: {
+ type: String,
+ computed: 'computeIcon_(dropdownOpen, closedIcon, openIcon)'
+ },
+
+ /** Lowest vertical point that the dropdown should occupy (px). */
+ lowerBound: {
+ type: Number,
+ observer: 'lowerBoundChanged_'
+ },
+
+ /**
+ * True if the max-height CSS property for the dropdown scroll container
+ * is valid. If false, the height will be updated the next time the
+ * dropdown is visible.
+ */
+ maxHeightValid_: false,
+
+ /** Current animation being played, or null if there is none. */
+ animation_: Object
+ },
+
+ computeIcon_: function(dropdownOpen, closedIcon, openIcon) {
+ return dropdownOpen ? openIcon : closedIcon;
+ },
+
+ lowerBoundChanged_: function() {
+ this.maxHeightValid_ = false;
+ if (this.dropdownOpen)
+ this.updateMaxHeight();
+ },
+
+ toggleDropdown: function() {
+ this.dropdownOpen = !this.dropdownOpen;
+ if (this.dropdownOpen) {
+ this.$.icon.classList.add('open');
+ this.$.dropdown.style.display = 'block';
+ if (!this.maxHeightValid_)
+ this.updateMaxHeight();
+ } else {
+ this.$.icon.classList.remove('open');
+ }
+ this.cancelAnimation_();
+ this.playAnimation_(this.dropdownOpen);
+ },
+
+ updateMaxHeight: function() {
+ var scrollContainer = this.$['scroll-container'];
+ var height = this.lowerBound -
+ scrollContainer.getBoundingClientRect().top -
+ DROPDOWN_INNER_PADDING;
+ height = Math.max(height, MIN_DROPDOWN_HEIGHT);
+ scrollContainer.style.maxHeight = height + 'px';
+ this.maxHeightValid_ = true;
+ },
+
+ cancelAnimation_: function() {
+ if (this._animation)
+ this._animation.cancel();
+ },
+
+ /**
+ * Start an animation on the dropdown.
+ * @param {boolean} isEntry True to play entry animation, false to play
+ * exit.
+ * @private
+ */
+ playAnimation_: function(isEntry) {
+ this._animation = isEntry ? this.animateEntry_() : this.animateExit_();
+ this._animation.onfinish = function() {
+ this._animation = null;
+ if (!this.dropdownOpen)
+ this.$.dropdown.style.display = 'none';
+ }.bind(this);
+ },
+
+ animateEntry_: function() {
+ var maxHeight = this.$.dropdown.getBoundingClientRect().height -
+ DROPDOWN_OUTER_PADDING;
+
+ var fade = new KeyframeEffect(this.$.dropdown, [
+ {opacity: 0},
+ {opacity: 1}
+ ], {duration: 150, easing: 'cubic-bezier(0, 0, 0.2, 1)'});
+ var slide = new KeyframeEffect(this.$.dropdown, [
+ {height: '20px', transform: 'translateY(-10px)'},
+ {height: maxHeight + 'px', transform: 'translateY(0)'}
+ ], {duration: 250, easing: 'cubic-bezier(0, 0, 0.2, 1)'});
+
+ return document.timeline.play(new GroupEffect([fade, slide]));
+ },
+
+ animateExit_: function() {
+ return this.$.dropdown.animate([
+ {transform: 'translateY(0)', opacity: 1},
+ {transform: 'translateY(-5px)', opacity: 0}
+ ], {duration: 100, easing: 'cubic-bezier(0.4, 0, 1, 1)'});
+ }
+ });
+
+})();
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.html b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.html
index f0f60bcdfb8..1a06e1e64a2 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.html
@@ -1,11 +1,11 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
-<polymer-element name="viewer-toolbar" attributes="fadingIn">
-<template>
- <link rel="stylesheet" href="viewer-toolbar.css">
- <div id="toolbar">
- <content></content>
- </div>
-</template>
+<dom-module id="viewer-toolbar">
+ <link rel="import" type="css" href="viewer-toolbar.css">
+ <template>
+ <div id="toolbar">
+ <content></content>
+ </div>
+ </template>
+</dom-module>
<script src="viewer-toolbar.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.js b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.js
index c28b45b670b..28f90523e35 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.js
@@ -2,10 +2,21 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('viewer-toolbar', {
- fadingIn: false,
+Polymer({
+ is: 'viewer-toolbar',
+
+ properties: {
+ fadingIn: {
+ type: Boolean,
+ value: false,
+ observer: 'fadingInChanged'
+ }
+ },
+
timerId_: undefined,
+
inInitialFadeIn_: false,
+
ready: function() {
this.mousemoveCallback = function(e) {
var rect = this.getBoundingClientRect();
@@ -22,17 +33,21 @@ Polymer('viewer-toolbar', {
}
}.bind(this);
},
+
attached: function() {
this.parentNode.addEventListener('mousemove', this.mousemoveCallback);
},
+
detached: function() {
this.parentNode.removeEventListener('mousemove', this.mousemoveCallback);
},
+
initialFadeIn: function() {
this.inInitialFadeIn_ = true;
this.fadeIn();
this.fadeOutAfterDelay(6000);
},
+
fadingInChanged: function() {
if (this.fadingIn) {
this.fadeIn();
@@ -41,11 +56,13 @@ Polymer('viewer-toolbar', {
this.fadeOutAfterDelay(3000);
}
},
+
fadeIn: function() {
this.style.opacity = 1;
clearTimeout(this.timerId_);
this.timerId_ = undefined;
},
+
fadeOutAfterDelay: function(delay) {
this.timerId_ = setTimeout(
function() {
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.css b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.css
index b147376eb85..6c77cbe13dc 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.css
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.css
@@ -2,8 +2,9 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
-:host {
- background-color: #fff;
- color: rgb(158, 158, 158);
+paper-fab {
+ background-color: rgb(242, 242, 242);
+ color: rgb(96, 96, 96);
+ margin: 0 48px;
overflow: visible;
}
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html
index 59017bc2234..84e5da1bf99 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html
@@ -1,11 +1,13 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/core-icons/core-icons.html">
-<link rel="import" href="chrome://resources/polymer/paper-fab/paper-fab.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/animations/transform-animation.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animation-runner-behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-fab/paper-fab.html">
-<polymer-element name="viewer-zoom-button" extends="paper-fab" mini>
-<template>
- <link rel="stylesheet" href="viewer-zoom-button.css">
- <shadow></shadow>
-</template>
+<dom-module id="viewer-zoom-button">
+ <link rel="import" type="css" href="viewer-zoom-button.css">
+ <template>
+ <paper-fab id="button" mini icon="[[icon]]"></paper-fab>
+ </template>
+</dom-module>
<script src="viewer-zoom-button.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js
index 48a518bb020..754badb3fcb 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js
@@ -2,29 +2,80 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-Polymer('viewer-zoom-button', {
- ready: function() {
- this.super();
- this.state_ = { opened: true };
+Polymer({
+ is: 'viewer-zoom-button',
+
+ behaviors: [
+ Polymer.NeonAnimationRunnerBehavior
+ ],
+
+ properties: {
+ icon: String,
+
+ opened: {
+ type: Boolean,
+ value: true
+ },
+
+ delay: Number,
+
+ animationConfig: {
+ type: Object,
+ computed: 'computeAnimationConfig(delay)'
+ }
},
- show: function(delay) {
- if (!this.state_.opened)
- this.toggle_(delay);
+ computeAnimationConfig: function(delay) {
+ return {
+ 'entry': {
+ name: 'transform-animation',
+ node: this,
+ timing: {
+ easing: 'cubic-bezier(0, 0, 0.2, 1)',
+ duration: 250,
+ delay: delay
+ },
+ transformFrom: 'translateX(100%)'
+ },
+ 'exit': {
+ name: 'transform-animation',
+ node: this,
+ timing: {
+ easing: 'cubic-bezier(0.4, 0, 1, 1)',
+ duration: 250,
+ delay: delay
+ },
+ transformTo: 'translateX(100%)'
+ }
+ };
},
- hide: function(delay) {
- if (this.state_.opened)
- this.toggle_(delay);
+ listeners: {
+ 'neon-animation-finish': '_onAnimationFinished'
},
- toggle_: function(delay) {
- delay = delay || 0;
- this.state_.opened = !this.state_.opened;
+ _onAnimationFinished: function() {
+ // Must use visibility: hidden so that the buttons do not change layout as
+ // they are hidden.
+ if (!this.opened)
+ this.style.visibility = 'hidden';
},
- activeChanged: function() {
- if (this.active)
- this.active = false;
- }
+ show: function() {
+ if (!this.opened) {
+ this.toggle_();
+ this.style.visibility = 'initial';
+ }
+ },
+
+ hide: function() {
+ if (this.opened)
+ this.toggle_();
+ },
+
+ toggle_: function() {
+ this.opened = !this.opened;
+ this.cancelAnimation();
+ this.playAnimation(this.opened ? 'entry' : 'exit');
+ },
});
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.css b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.css
index b4731d53265..808cd91f8fd 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.css
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.css
@@ -4,41 +4,24 @@
:host {
bottom: 0;
- padding: 24px;
+ padding: 48px 0;
position: fixed;
right: 0;
z-index: 3;
}
-#zoom-buttons {
- display: inline-block;
-}
-
-#slider {
- display: inline-block;
- margin-bottom: 0.8em;
- margin-right: 2em;
- overflow: visible;
-}
-
-#main-zoom {
- background-color: rgb(27, 168, 243);
+viewer-zoom-button {
display: block;
- margin: auto;
- margin-top: 2em;
- overflow: visible;
}
-#fit-to-width-button {
- display: block;
- margin: auto;
- margin-top: 2em;
- overflow: visible;
+/* A small gap between the fit to page/fit to width buttons and the zoom in/zoom
+ * out buttons. */
+#fit-to-page-button,
+#zoom-out-button {
+ margin-top: 1em;
}
-#fit-to-page-button {
- display: block;
- margin: auto;
- overflow: visible;
+/* A larger gap between the top two and bottom two buttons. */
+#zoom-in-button {
+ margin-top: 2em;
}
-
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.html b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.html
index 90f70a5e088..88649f4c52e 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.html
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.html
@@ -1,20 +1,24 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/core-icons/core-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
<link rel="import" href="viewer-zoom-button.html">
-<polymer-element name="viewer-zoom-toolbar">
-<template>
- <link rel="stylesheet" href="viewer-zoom-toolbar.css">
+<dom-module id="viewer-zoom-toolbar">
+ <link rel="import" type="css" href="viewer-zoom-toolbar.css">
+ <template>
- <div id="zoom-buttons">
- <div id="buttons">
- <!-- TODO(alexandrec): Replace with custom icons. -->
- <viewer-zoom-button id="fit-to-page-button" icon="fullscreen-exit"
- on-click="{{fitToPage}}"></viewer-zoom-button>
- <viewer-zoom-button id="fit-to-width-button" icon="fullscreen"
- on-click="{{fitToWidth}}"></viewer-zoom-button>
+ <div id="zoom-buttons">
+ <div id="buttons">
+ <!-- TODO(alexandrec): Replace with custom icons. -->
+ <viewer-zoom-button id="fit-to-width-button" icon="fullscreen"
+ on-click="fitToWidth" delay="0"></viewer-zoom-button>
+ <viewer-zoom-button id="fit-to-page-button" icon="fullscreen-exit"
+ on-click="fitToPage" delay="50"></viewer-zoom-button>
+ <viewer-zoom-button id="zoom-in-button" icon="add"
+ on-click="zoomIn" delay="100"></viewer-zoom-button>
+ <viewer-zoom-button id="zoom-out-button" icon="remove"
+ on-click="zoomOut" delay="150"></viewer-zoom-button>
+ </div>
</div>
- </div>
-</template>
+ </template>
+</dom-module>
<script src="viewer-zoom-toolbar.js"></script>
-</polymer-element>
diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.js b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.js
index 7fa16a7be9b..515b49df1cc 100644
--- a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.js
+++ b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-toolbar.js
@@ -4,35 +4,25 @@
ANIMATION_INTERVAL = 50;
-Polymer('viewer-zoom-toolbar', {
- /**
- * @type {number}
- * The minimum zoom percentage allowed.
- */
- zoomMin: 25,
-
- /**
- * @type {number}
- * The maximum zoom percentage allowed.
- */
- zoomMax: 500,
-
- /**
- * @type {number}
- * The default zoom percentage.
- */
- zoomValue: 100,
+Polymer({
+ is: 'viewer-zoom-toolbar',
+
+ properties: {
+ /**
+ * The default zoom percentage.
+ */
+ zoomValue: {
+ type: Number,
+ value: 100
+ }
+ },
get visible() {
return this.visible_;
},
ready: function() {
- this.visible_ = false;
- },
-
- zoomValueChanged: function() {
- this.fire('zoom', { zoom: this.zoomValue / 100 });
+ this.visible_ = true;
},
fitToPage: function() {
@@ -43,11 +33,21 @@ Polymer('viewer-zoom-toolbar', {
this.fire('fit-to-width');
},
+ zoomIn: function() {
+ this.fire('zoom-in');
+ },
+
+ zoomOut: function() {
+ this.fire('zoom-out');
+ },
+
show: function() {
if (!this.visible) {
this.visible_ = true;
this.$['fit-to-width-button'].show();
- this.$['fit-to-page-button'].show(ANIMATION_INTERVAL);
+ this.$['fit-to-page-button'].show();
+ this.$['zoom-in-button'].show();
+ this.$['zoom-out-button'].show();
}
},
@@ -55,7 +55,9 @@ Polymer('viewer-zoom-toolbar', {
if (this.visible) {
this.visible_ = false;
this.$['fit-to-page-button'].hide();
- this.$['fit-to-width-button'].hide(ANIMATION_INTERVAL);
+ this.$['fit-to-width-button'].hide();
+ this.$['zoom-in-button'].hide();
+ this.$['zoom-out-button'].hide();
}
},
});
diff --git a/chromium/chrome/browser/resources/pdf/index-material.css b/chromium/chrome/browser/resources/pdf/index-material.css
index 5d7784eec29..ff62d3f99ec 100644
--- a/chromium/chrome/browser/resources/pdf/index-material.css
+++ b/chromium/chrome/browser/resources/pdf/index-material.css
@@ -2,16 +2,8 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
-@font-face {
- font-family: 'Roboto';
- font-style: normal;
- font-weight: 400;
- src: local('Roboto Regular'), local('Roboto-Regular'), url(chrome://resources/roboto/roboto.woff2) format('woff2');
- unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
-}
-
body {
- background-color: #424242;
+ background-color: rgb(82, 86, 89);
font-family: Roboto, 'Helvetica Neue', Helvetica, Arial;
margin: 0;
}
diff --git a/chromium/chrome/browser/resources/pdf/index-material.html b/chromium/chrome/browser/resources/pdf/index-material.html
index f08040e8dcb..984d7bcb2c7 100644
--- a/chromium/chrome/browser/resources/pdf/index-material.html
+++ b/chromium/chrome/browser/resources/pdf/index-material.html
@@ -2,8 +2,8 @@
<html i18n-values="dir:textdirection;lang:language">
<head>
<meta charset="utf-8">
- <link rel="import" href="elements/viewer-bookmarks-content/viewer-bookmarks-content.html">
- <link rel="import" href="elements/viewer-button/viewer-button.html">
+ <!-- Must be before any other scripts or Polymer imports. -->
+ <script src="settings.js"></script>
<link rel="import" href="elements/viewer-error-screen/viewer-error-screen.html">
<link rel="import" href="elements/viewer-page-selector/viewer-page-selector.html">
<link rel="import" href="elements/viewer-password-screen/viewer-password-screen.html">
@@ -11,14 +11,13 @@
<link rel="import" href="elements/viewer-zoom-toolbar/viewer-zoom-toolbar.html">
<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
+ <link rel="stylesheet" href="chrome://resources/css/roboto.css">
<link rel="stylesheet" type="text/css" href="index-material.css">
</head>
<body>
<viewer-pdf-toolbar id="material-toolbar"></viewer-pdf-toolbar>
-<viewer-bookmarks-content id="bookmarks-container" hidden></viewer-bookmarks-content>
-
<div id="sizer"></div>
<viewer-password-screen id="password-screen"></viewer-password-screen>
diff --git a/chromium/chrome/browser/resources/pdf/index.css b/chromium/chrome/browser/resources/pdf/index.css
index 06ca8fc2c12..36db509ab3e 100644
--- a/chromium/chrome/browser/resources/pdf/index.css
+++ b/chromium/chrome/browser/resources/pdf/index.css
@@ -23,12 +23,12 @@ viewer-progress-bar {
z-index: 3;
}
-viewer-error-screen {
+viewer-error-screen-legacy {
visibility: hidden;
z-index: 2;
}
-viewer-password-screen {
+viewer-password-screen-legacy {
visibility: hidden;
z-index: 2;
}
diff --git a/chromium/chrome/browser/resources/pdf/index.html b/chromium/chrome/browser/resources/pdf/index.html
index 2ecf2c8fade..d35a6538f21 100644
--- a/chromium/chrome/browser/resources/pdf/index.html
+++ b/chromium/chrome/browser/resources/pdf/index.html
@@ -2,10 +2,11 @@
<html i18n-values="dir:textdirection;lang:language">
<head>
<meta charset="utf-8">
+ <script src="settings.js"></script>
<link rel="import" href="elements/viewer-button/viewer-button.html">
- <link rel="import" href="elements/viewer-error-screen/viewer-error-screen.html">
+ <link rel="import" href="elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html">
<link rel="import" href="elements/viewer-page-indicator/viewer-page-indicator.html">
- <link rel="import" href="elements/viewer-password-screen/viewer-password-screen.html">
+ <link rel="import" href="elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html">
<link rel="import" href="elements/viewer-progress-bar/viewer-progress-bar.html">
<link rel="import" href="elements/viewer-toolbar/viewer-toolbar.html">
<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
@@ -14,7 +15,8 @@
<body>
<div id="sizer"></div>
-<viewer-password-screen id="password-screen"></viewer-password-screen>
+<viewer-password-screen-legacy id="password-screen">
+</viewer-password-screen-legacy>
<viewer-page-indicator id="page-indicator"></viewer-page-indicator>
<viewer-progress-bar id="progress-bar"></viewer-progress-bar>
@@ -45,7 +47,7 @@
</viewer-button>
</viewer-toolbar>
-<viewer-error-screen id="error-screen"></viewer-error-screen>
+<viewer-error-screen-legacy id="error-screen"></viewer-error-screen-legacy>
</body>
<script src="viewport.js"></script>
diff --git a/chromium/chrome/browser/resources/pdf/manifest.json b/chromium/chrome/browser/resources/pdf/manifest.json
index 168515f124e..8c44ec21b43 100644
--- a/chromium/chrome/browser/resources/pdf/manifest.json
+++ b/chromium/chrome/browser/resources/pdf/manifest.json
@@ -13,7 +13,7 @@
"mime_types": [
"application/pdf"
],
- "content_security_policy": "script-src 'self' chrome://resources; object-src *; plugin-types application/x-google-chrome-pdf",
+ "content_security_policy": "script-src 'self' blob: filesystem: chrome://resources; object-src *; plugin-types application/x-google-chrome-pdf",
// This is to work-around an issue where this extension is not granted
// permission to access chrome://resources when iframed for print preview.
// See https://crbug.com/444752.
diff --git a/chromium/chrome/browser/resources/pdf/pdf.js b/chromium/chrome/browser/resources/pdf/pdf.js
index 97b7fa095ae..43e085e434b 100644
--- a/chromium/chrome/browser/resources/pdf/pdf.js
+++ b/chromium/chrome/browser/resources/pdf/pdf.js
@@ -52,6 +52,23 @@ function onNavigateInNewTab(url) {
}
/**
+ * Whether keydown events should currently be ignored. Events are ignored when
+ * an editable element has focus, to allow for proper editing controls.
+ * @param {HTMLElement} activeElement The currently selected DOM node.
+ * @return {boolean} True if keydown events should be ignored.
+ */
+function shouldIgnoreKeyEvents(activeElement) {
+ while (activeElement.shadowRoot != null &&
+ activeElement.shadowRoot.activeElement != null) {
+ activeElement = activeElement.shadowRoot.activeElement;
+ }
+
+ return (activeElement.isContentEditable ||
+ activeElement.tagName == 'INPUT' ||
+ activeElement.tagName == 'TEXTAREA');
+}
+
+/**
* The minimum number of pixels to offset the toolbar by from the bottom and
* right side of the screen.
*/
@@ -149,15 +166,14 @@ function PDFViewer(browserApi) {
if (this.isMaterial_) {
this.zoomToolbar_ = $('zoom-toolbar');
- this.zoomToolbar_.zoomMin = Viewport.ZOOM_FACTOR_RANGE.min * 100;
- this.zoomToolbar_.zoomMax = Viewport.ZOOM_FACTOR_RANGE.max * 100;
- this.zoomToolbar_.addEventListener('zoom', function(e) {
- this.viewport_.setZoom(e.detail.zoom);
- }.bind(this));
this.zoomToolbar_.addEventListener('fit-to-width',
this.viewport_.fitToWidth.bind(this.viewport_));
this.zoomToolbar_.addEventListener('fit-to-page',
this.viewport_.fitToPage.bind(this.viewport_));
+ this.zoomToolbar_.addEventListener('zoom-in',
+ this.viewport_.zoomIn.bind(this.viewport_));
+ this.zoomToolbar_.addEventListener('zoom-out',
+ this.viewport_.zoomOut.bind(this.viewport_));
this.materialToolbar_ = $('material-toolbar');
this.materialToolbar_.docTitle = document.title;
@@ -165,6 +181,8 @@ function PDFViewer(browserApi) {
this.materialToolbar_.addEventListener('print', this.print_.bind(this));
this.materialToolbar_.addEventListener('rotate-right',
this.rotateClockwise_.bind(this));
+ this.materialToolbar_.addEventListener('rotate-left',
+ this.rotateCounterClockwise_.bind(this));
document.body.addEventListener('change-page', function(e) {
this.viewport_.goToPage(e.detail.page);
@@ -206,6 +224,9 @@ PDFViewer.prototype = {
// Certain scroll events may be sent from outside of the extension.
var fromScriptingAPI = e.fromScriptingAPI;
+ if (shouldIgnoreKeyEvents(document.activeElement) || e.defaultPrevented)
+ return;
+
var pageUpHandler = function() {
// Go to the previous page if we are fit-to-page.
if (this.viewport_.fittingType == Viewport.FittingType.FIT_TO_PAGE) {
@@ -535,10 +556,8 @@ PDFViewer.prototype = {
break;
case 'bookmarks':
this.bookmarks_ = message.data.bookmarks;
- if (this.isMaterial_ && this.bookmarks_.length !== 0) {
- $('bookmarks-container').bookmarks = this.bookmarks;
- this.materialToolbar_.hasBookmarks = true;
- }
+ if (this.isMaterial_ && this.bookmarks_.length !== 0)
+ this.materialToolbar_.bookmarks = this.bookmarks;
break;
case 'setIsSelecting':
this.viewportScroller_.setEnableScrolling(message.data.isSelecting);
@@ -623,7 +642,7 @@ PDFViewer.prototype = {
// Update the page indicator.
var visiblePage = this.viewport_.getMostVisiblePage();
if (this.isMaterial_) {
- this.materialToolbar_.pageIndex = visiblePage;
+ this.materialToolbar_.pageNo = visiblePage + 1;
} else {
this.pageIndicator_.index = visiblePage;
if (this.documentDimensions_.pageDimensions.length > 1 &&
diff --git a/chromium/chrome/browser/resources/settings/polymer_config.js b/chromium/chrome/browser/resources/pdf/settings.js
index 3b20eae9d9f..3b20eae9d9f 100644
--- a/chromium/chrome/browser/resources/settings/polymer_config.js
+++ b/chromium/chrome/browser/resources/pdf/settings.js
diff --git a/chromium/chrome/browser/resources/pdf/ui_manager.js b/chromium/chrome/browser/resources/pdf/ui_manager.js
index 2f06a414877..baee7bc0d43 100644
--- a/chromium/chrome/browser/resources/pdf/ui_manager.js
+++ b/chromium/chrome/browser/resources/pdf/ui_manager.js
@@ -4,7 +4,35 @@
'use strict';
+/** Idle time in ms before the UI is hidden. */
var HIDE_TIMEOUT = 2000;
+/** Velocity required in a mousemove to reveal the UI (pixels/sample). */
+var SHOW_VELOCITY = 20;
+/** Distance from the top or right of the screen required to reveal the UI. */
+var EDGE_REVEAL = 100;
+
+/**
+ * Whether a mousemove event is high enough velocity to reveal the toolbars.
+ * @param {MouseEvent} e Event to test.
+ * @return {boolean} true if the event is a high velocity mousemove, false
+ * otherwise.
+ */
+function isHighVelocityMouseMove(e) {
+ return e.type == 'mousemove' &&
+ e.movementX * e.movementX + e.movementY * e.movementY >
+ SHOW_VELOCITY * SHOW_VELOCITY;
+}
+
+/**
+ * Whether the mouse is close enough to the edge of the screen to keep the
+ * toolbars open.
+ * @param {Event} e Event to test.
+ * @return {boolean} true if the mouse is close to the top or right of the
+ * screen.
+ */
+function shouldKeepUiOpen(e) {
+ return (e.y < EDGE_REVEAL || e.x > window.innerWidth - EDGE_REVEAL);
+}
/**
* Creates a UI Manager to handle transitioning of toolbars.
@@ -19,13 +47,23 @@ function UiManager(window, toolbar, zoomToolbar) {
this.zoomToolbar_ = zoomToolbar;
this.uiTimeout_ = null;
+ this.keepOpen_ = false;
- var userInputs = ['click', 'keydown', 'mousemove', 'scroll'];
+ var userInputs = ['keydown', 'mousemove'];
for (var i = 0; i < userInputs.length; i++)
- this.window_.addEventListener(userInputs[i], this.showUi_.bind(this));
+ this.window_.addEventListener(userInputs[i], this.handleEvent.bind(this));
+
+ this.window_.addEventListener('resize', this.resizeDropdowns_.bind(this));
+ this.resizeDropdowns_();
}
UiManager.prototype = {
+ handleEvent: function(e) {
+ this.keepOpen_ = shouldKeepUiOpen(e);
+ if (e.type != 'mousemove' || this.keepOpen_ || isHighVelocityMouseMove(e))
+ this.showUi_();
+ },
+
/**
* @private
* Display the toolbar and any pane that was previously opened.
@@ -33,7 +71,6 @@ UiManager.prototype = {
showUi_: function() {
this.toolbar_.show();
this.zoomToolbar_.show();
-
this.hideUiAfterTimeout();
},
@@ -42,8 +79,10 @@ UiManager.prototype = {
* Hide the toolbar and any pane that was previously opened.
*/
hideUi_: function() {
- this.toolbar_.hide();
- this.zoomToolbar_.hide();
+ if (!(this.keepOpen_ || this.toolbar_.shouldKeepOpen())) {
+ this.toolbar_.hide();
+ this.zoomToolbar_.hide();
+ }
},
/**
@@ -53,5 +92,15 @@ UiManager.prototype = {
if (this.uiTimeout_)
clearTimeout(this.uiTimeout_);
this.uiTimeout_ = setTimeout(this.hideUi_.bind(this), HIDE_TIMEOUT);
+ },
+
+ /**
+ * Updates the size of toolbar dropdowns based on the positions of the rest of
+ * the UI.
+ * @private
+ */
+ resizeDropdowns_: function() {
+ var lowerBound = this.window_.innerHeight - this.zoomToolbar_.clientHeight;
+ this.toolbar_.setDropdownLowerBound(lowerBound);
}
};
diff --git a/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json b/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json
index b040204ea91..5c422ae3640 100644
--- a/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json
+++ b/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json
@@ -1,5 +1,5 @@
{
- "x-version": 5,
+ "x-version": 6,
"google-talk": {
"mime_types": [
],
@@ -80,15 +80,15 @@
],
"versions": [
{
- "version": "11.1.102",
+ "version": "18.0.0.204",
"status": "up_to_date",
- "reference": "http://www.adobe.com/support/security/bulletins/apsb12-03.html"
+ "reference": "https://helpx.adobe.com/security/products/flash-player/apsb15-16.html"
}
],
"lang": "en-US",
"name": "Adobe Flash Player",
"help_url": "https://support.google.com/chrome/?p=plugin_flash",
- "url": "http://get.adobe.com/flashplayer/",
+ "url": "https://support.google.com/chrome/answer/6258784",
"displayurl": true,
"group_name_matcher": "*Shockwave Flash*"
},
diff --git a/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json b/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json
index 8e8bc7011dc..a5715f155a9 100644
--- a/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json
+++ b/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json
@@ -1,5 +1,5 @@
{
- "x-version": 8,
+ "x-version": 10,
"google-talk": {
"mime_types": [
],
@@ -115,14 +115,14 @@
],
"versions": [
{
- "version": "17.0.0.134",
+ "version": "18.0.0.203",
"status": "requires_authorization",
- "reference": "https://helpx.adobe.com/security/products/flash-player/apsb15-05.html"
+ "reference": "https://helpx.adobe.com/security/products/flash-player/apsb15-16.html"
}
],
"lang": "en-US",
"name": "Adobe Flash Player",
- "url": "http://get.adobe.com/flashplayer/",
+ "url": "https://support.google.com/chrome/answer/6258784",
"help_url": "https://support.google.com/chrome/?p=plugin_flash",
"displayurl": true,
"group_name_matcher": "*Shockwave Flash*"
diff --git a/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json b/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json
index 106f73a1843..d394e3c38c7 100644
--- a/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json
+++ b/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json
@@ -1,5 +1,5 @@
{
- "x-version": 17,
+ "x-version": 19,
"google-talk": {
"mime_types": [
],
@@ -137,15 +137,15 @@
],
"versions": [
{
- "version": "17.0.0.134",
+ "version": "18.0.0.203",
"status": "requires_authorization",
- "reference": "https://helpx.adobe.com/security/products/flash-player/apsb15-05.html"
+ "reference": "https://helpx.adobe.com/security/products/flash-player/apsb15-16.html"
}
],
"lang": "en-US",
"name": "Adobe Flash Player",
"help_url": "https://support.google.com/chrome/?p=plugin_flash",
- "url": "http://get.adobe.com/flashplayer/",
+ "url": "https://support.google.com/chrome/answer/6258784",
"displayurl": true,
"group_name_matcher": "*Shockwave Flash*"
},
@@ -297,9 +297,9 @@
],
"versions": [
{
- "version": "5.1.30214.0",
+ "version": "5.1.40416.0",
"status": "requires_authorization",
- "reference": "https://support.microsoft.com/kb/2932677"
+ "reference": "https://support.microsoft.com/kb/3056819"
}
],
"lang": "en-US",
diff --git a/chromium/chrome/browser/resources/print_preview/cloud_print_interface.js b/chromium/chrome/browser/resources/print_preview/cloud_print_interface.js
index 32ac59f93c9..abf3b966715 100644
--- a/chromium/chrome/browser/resources/print_preview/cloud_print_interface.js
+++ b/chromium/chrome/browser/resources/print_preview/cloud_print_interface.js
@@ -52,7 +52,7 @@ cr.define('cloudprint', function() {
/**
* Currently logged in users (identified by email) mapped to the Google
* session index.
- * @type {!Object<string, number>}
+ * @type {!Object<number>}
* @private
*/
this.userSessionIndex_ = {};
@@ -60,7 +60,7 @@ cr.define('cloudprint', function() {
/**
* Stores last received XSRF tokens for each user account. Sent as
* a parameter with every request.
- * @type {!Object<string, string>}
+ * @type {!Object<string>}
* @private
*/
this.xsrfTokens_ = {};
diff --git a/chromium/chrome/browser/resources/print_preview/compiled_resources.gyp b/chromium/chrome/browser/resources/print_preview/compiled_resources.gyp
index b5b55a37964..f54c04cdf02 100644
--- a/chromium/chrome/browser/resources/print_preview/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/print_preview/compiled_resources.gyp
@@ -16,7 +16,7 @@
'../../../../ui/webui/resources/js/load_time_data.js',
'../../../../ui/webui/resources/js/util.js',
],
- 'externs': ['<(CLOSURE_DIR)/externs/chrome_send_externs.js'],
+ 'externs': ['<(EXTERNS_DIR)/chrome_send.js'],
},
'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
}
diff --git a/chromium/chrome/browser/resources/print_preview/data/destination.js b/chromium/chrome/browser/resources/print_preview/data/destination.js
index edce220a5ee..9e9c88c3af5 100644
--- a/chromium/chrome/browser/resources/print_preview/data/destination.js
+++ b/chromium/chrome/browser/resources/print_preview/data/destination.js
@@ -54,6 +54,8 @@ cr.define('print_preview', function() {
* lastAccessTime: (number|undefined),
* isTosAccepted: (boolean|undefined),
* cloudID: (string|undefined),
+ * provisionalType:
+ * (print_preview.Destination.ProvisionalType|undefined),
* extensionId: (string|undefined),
* extensionName: (string|undefined),
* description: (string|undefined)}=} opt_params Optional parameters
@@ -167,6 +169,23 @@ cr.define('print_preview', function() {
* @private {string}
*/
this.extensionName_ = (opt_params && opt_params.extensionName) || '';
+
+ /**
+ * Different from {@code Destination.ProvisionalType.NONE} if the
+ * destination is provisional. Provisional destinations cannot be selected
+ * as they are, but have to be resolved first (i.e. extra steps have to be
+ * taken to get actual destination properties, which should replace the
+ * provisional ones). Provisional destination resolvment flow will be
+ * started when the user attempts to select the destination in search UI.
+ * @private {Destination.ProvisionalType}
+ */
+ this.provisionalType_ = (opt_params && opt_params.provisionalType) ||
+ Destination.ProvisionalType.NONE;
+
+ assert(this.provisionalType_ !=
+ Destination.ProvisionalType.NEEDS_USB_PERMISSON ||
+ this.isExtension,
+ 'Provisional USB destination only supprted with extension origin.');
};
/**
@@ -226,6 +245,21 @@ cr.define('print_preview', function() {
};
/**
+ * Enumeration specifying whether a destination is provisional and the reason
+ * the destination is provisional.
+ * @enum {string
+ */
+ Destination.ProvisionalType = {
+ /** Destination is not provisional. */
+ NONE: 'NONE',
+ /**
+ * User has to grant USB access for the destination to its provider.
+ * Used for destinations with extension origin.
+ */
+ NEEDS_USB_PERMISSION: 'NEEDS_USB_PERMISSION'
+ };
+
+ /**
* Enumeration of relative icon URLs for various types of destinations.
* @enum {string}
* @private
@@ -501,6 +535,22 @@ cr.define('print_preview', function() {
this.extraPropertiesToMatch.some(function(property) {
return property.match(query);
});
+ },
+
+ /**
+ * Gets the destination's provisional type.
+ * @return {Destination.ProvisionalType}
+ */
+ get provisionalType() {
+ return this.provisionalType_;
+ },
+
+ /**
+ * Whether the destinaion is provisional.
+ * @return {boolean}
+ */
+ get isProvisional() {
+ return this.provisionalType_ != Destination.ProvisionalType.NONE;
}
};
diff --git a/chromium/chrome/browser/resources/print_preview/data/destination_store.js b/chromium/chrome/browser/resources/print_preview/data/destination_store.js
index b261ce27879..5aeaffe2c33 100644
--- a/chromium/chrome/browser/resources/print_preview/data/destination_store.js
+++ b/chromium/chrome/browser/resources/print_preview/data/destination_store.js
@@ -55,7 +55,7 @@ cr.define('print_preview', function() {
/**
* Cache used for constant lookup of destinations by origin and id.
- * @type {Object<string, !print_preview.Destination>}
+ * @type {Object<!print_preview.Destination>}
* @private
*/
this.destinationMap_ = {};
@@ -100,7 +100,7 @@ cr.define('print_preview', function() {
/**
* Maps user account to the list of origins for which destinations are
* already loaded.
- * @type {!Object<string, Array<print_preview.Destination.Origin>>}
+ * @type {!Object<Array<print_preview.Destination.Origin>>}
* @private
*/
this.loadedCloudOrigins_ = {};
@@ -199,6 +199,8 @@ cr.define('print_preview', function() {
DESTINATION_SELECT: 'print_preview.DestinationStore.DESTINATION_SELECT',
DESTINATIONS_INSERTED:
'print_preview.DestinationStore.DESTINATIONS_INSERTED',
+ PROVISIONAL_DESTINATION_RESOLVED:
+ 'print_preview.DestinationStore.PROVISIONAL_DESTINATION_RESOLVED',
CACHED_SELECTED_DESTINATION_INFO_READY:
'print_preview.DestinationStore.CACHED_SELECTED_DESTINATION_INFO_READY',
SELECTED_DESTINATION_CAPABILITIES_READY:
@@ -461,6 +463,10 @@ cr.define('print_preview', function() {
this, DestinationStore.EventType.DESTINATION_SELECT);
return;
}
+
+ assert(!destination.isProvisional,
+ 'Unable to select provisonal destinations');
+
// Update and persist selected destination.
this.selectedDestination_ = destination;
this.selectedDestination_.isRecent = true;
@@ -512,6 +518,19 @@ cr.define('print_preview', function() {
},
/**
+ * Attempts to resolve a provisional destination.
+ * @param {!print_preview.Destination} destinaion Provisional destination
+ * that should be resolved.
+ */
+ resolveProvisionalDestination: function(destination) {
+ assert(
+ destination.provisionalType ==
+ print_preview.Destination.ProvisionalType.NEEDS_USB_PERMISSION,
+ 'Provisional type cannot be resolved.');
+ this.nativeLayer_.grantExtensionPrinterAccess(destination.id);
+ },
+
+ /**
* Selects 'Save to PDF' destination (since it always exists).
* @private
*/
@@ -614,6 +633,53 @@ cr.define('print_preview', function() {
},
/**
+ * Event handler for {@code
+ * print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED}.
+ * Currently assumes the provisional destination is an extension
+ * destination.
+ * Called when a provisional destination resolvement attempt finishes.
+ * The provisional destination is removed from the store and replaced with
+ * a destination created from the resolved destination properties, if any
+ * are reported.
+ * Emits {@code DestinationStore.EventType.PROVISIONAL_DESTINATION_RESOLVED}
+ * event.
+ * @param {!Event} The event containing the provisional destination ID and
+ * resolved destination description. If the destination was not
+ * successfully resolved, the description will not be set.
+ * @private
+ */
+ handleProvisionalDestinationResolved_: function(evt) {
+ var provisionalDestinationIndex = -1;
+ var provisionalDestination = null;
+ for (var i = 0; i < this.destinations_.length; ++i) {
+ if (evt.provisionalId == this.destinations_[i].id) {
+ provisionalDestinationIndex = i;
+ provisionalDestination = this.destinations_[i];
+ break;
+ }
+ }
+
+ if (!provisionalDestination)
+ return;
+
+ this.destinations_.splice(provisionalDestinationIndex, 1);
+ delete this.destinationMap_[this.getKey_(provisionalDestination)];
+
+ var destination = evt.destination ?
+ print_preview.ExtensionDestinationParser.parse(evt.destination) :
+ null;
+
+ if (destination)
+ this.insertIntoStore_(destination);
+
+ var event = new Event(
+ DestinationStore.EventType.PROVISIONAL_DESTINATION_RESOLVED);
+ event.provisionalId = evt.provisionalId;
+ event.destination = destination;
+ this.dispatchEvent(event);
+ },
+
+ /**
* Inserts {@code destination} to the data store and dispatches a
* DESTINATIONS_INSERTED event.
* @param {!print_preview.Destination} destination Print destination to
@@ -782,6 +848,10 @@ cr.define('print_preview', function() {
this.nativeLayer_,
print_preview.NativeLayer.EventType.EXTENSION_CAPABILITIES_SET,
this.onExtensionCapabilitiesSet_.bind(this));
+ this.tracker_.add(
+ this.nativeLayer_,
+ print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED,
+ this.handleProvisionalDestinationResolved_.bind(this));
},
/**
diff --git a/chromium/chrome/browser/resources/print_preview/data/invitation_store.js b/chromium/chrome/browser/resources/print_preview/data/invitation_store.js
index 86ba438ecf1..aeebd25658e 100644
--- a/chromium/chrome/browser/resources/print_preview/data/invitation_store.js
+++ b/chromium/chrome/browser/resources/print_preview/data/invitation_store.js
@@ -22,14 +22,14 @@ cr.define('print_preview', function() {
/**
* Maps user account to the list of invitations for this account.
- * @private {!Object<string, !Array<!print_preview.Invitation>>}
+ * @private {!Object<!Array<!print_preview.Invitation>>}
*/
this.invitations_ = {};
/**
* Maps user account to the flag whether the invitations for this account
* were successfully loaded.
- * @private {!Object<string, print_preview.InvitationStore.LoadStatus_>}
+ * @private {!Object<print_preview.InvitationStore.LoadStatus_>}
*/
this.loadStatus_ = {};
diff --git a/chromium/chrome/browser/resources/print_preview/data/local_parsers.js b/chromium/chrome/browser/resources/print_preview/data/local_parsers.js
index d367134e04e..f6b4c734958 100644
--- a/chromium/chrome/browser/resources/print_preview/data/local_parsers.js
+++ b/chromium/chrome/browser/resources/print_preview/data/local_parsers.js
@@ -75,6 +75,11 @@ cr.define('print_preview', function() {
* @return {!print_preview.Destination} Parsed destination.
*/
ExtensionDestinationParser.parse = function(destinationInfo) {
+ var provisionalType =
+ destinationInfo.provisional ?
+ print_preview.Destination.ProvisionalType.NEEDS_USB_PERMISSION :
+ print_preview.Destination.ProvisionalType.NONE;
+
return new print_preview.Destination(
destinationInfo.id,
print_preview.Destination.Type.LOCAL,
@@ -84,7 +89,8 @@ cr.define('print_preview', function() {
print_preview.Destination.ConnectionStatus.ONLINE,
{description: destinationInfo.description || '',
extensionId: destinationInfo.extensionId,
- extensionName: destinationInfo.extensionName || ''});
+ extensionName: destinationInfo.extensionName || '',
+ provisionalType: provisionalType});
};
// Export
diff --git a/chromium/chrome/browser/resources/print_preview/data/print_ticket_store.js b/chromium/chrome/browser/resources/print_preview/data/print_ticket_store.js
index 66414b45a8b..6a629858d0d 100644
--- a/chromium/chrome/browser/resources/print_preview/data/print_ticket_store.js
+++ b/chromium/chrome/browser/resources/print_preview/data/print_ticket_store.js
@@ -376,7 +376,7 @@ cr.define('print_preview', function() {
if (this.appState_.hasField(
print_preview.AppState.Field.VENDOR_OPTIONS)) {
this.vendorItems_.updateValue(
- /** @type {!Object<string, string>} */(this.appState_.getField(
+ /** @type {!Object<string>} */(this.appState_.getField(
print_preview.AppState.Field.VENDOR_OPTIONS)));
}
},
diff --git a/chromium/chrome/browser/resources/print_preview/data/ticket_items/vendor_items.js b/chromium/chrome/browser/resources/print_preview/data/ticket_items/vendor_items.js
index e3cf19f8ace..f48948c6e0e 100644
--- a/chromium/chrome/browser/resources/print_preview/data/ticket_items/vendor_items.js
+++ b/chromium/chrome/browser/resources/print_preview/data/ticket_items/vendor_items.js
@@ -37,7 +37,7 @@ cr.define('print_preview.ticket_items', function() {
/**
* Vendor ticket items store, maps item id to the item value.
- * @private {!Object<string, string>}
+ * @private {!Object<string>}
*/
this.items_ = {};
};
@@ -78,15 +78,15 @@ cr.define('print_preview.ticket_items', function() {
/**
* Vendor ticket items store, maps item id to the item value.
- * @return {!Object<string, string>}
+ * @return {!Object<string>}
*/
get ticketItems() {
return this.items_;
},
/**
- * @param {!Object<string, string>} values Values to set as the values of
- * vendor ticket items. Maps vendor item id to the value.
+ * @param {!Object<string>} values Values to set as the values of vendor
+ * ticket items. Maps vendor item id to the value.
*/
updateValue: function(values) {
this.items_ = {};
diff --git a/chromium/chrome/browser/resources/print_preview/images/1x/minus.png b/chromium/chrome/browser/resources/print_preview/images/1x/minus.png
index dc87f9c16ea..a68a0ea74a5 100644
--- a/chromium/chrome/browser/resources/print_preview/images/1x/minus.png
+++ b/chromium/chrome/browser/resources/print_preview/images/1x/minus.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/print_preview/images/1x/plus.png b/chromium/chrome/browser/resources/print_preview/images/1x/plus.png
index 8efb8340473..fdf7c4a01d8 100644
--- a/chromium/chrome/browser/resources/print_preview/images/1x/plus.png
+++ b/chromium/chrome/browser/resources/print_preview/images/1x/plus.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/print_preview/images/2x/minus.png b/chromium/chrome/browser/resources/print_preview/images/2x/minus.png
index 008e25fdf40..b7c517df006 100644
--- a/chromium/chrome/browser/resources/print_preview/images/2x/minus.png
+++ b/chromium/chrome/browser/resources/print_preview/images/2x/minus.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/print_preview/images/2x/plus.png b/chromium/chrome/browser/resources/print_preview/images/2x/plus.png
index 37119797a87..c559a18a432 100644
--- a/chromium/chrome/browser/resources/print_preview/images/2x/plus.png
+++ b/chromium/chrome/browser/resources/print_preview/images/2x/plus.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/print_preview/images/printer.png b/chromium/chrome/browser/resources/print_preview/images/printer.png
index 341e47f50ad..a0a85bbc236 100644
--- a/chromium/chrome/browser/resources/print_preview/images/printer.png
+++ b/chromium/chrome/browser/resources/print_preview/images/printer.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/print_preview/images/third_party.png b/chromium/chrome/browser/resources/print_preview/images/third_party.png
index c12de3f89f8..d15552d390c 100644
--- a/chromium/chrome/browser/resources/print_preview/images/third_party.png
+++ b/chromium/chrome/browser/resources/print_preview/images/third_party.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/print_preview/native_layer.js b/chromium/chrome/browser/resources/print_preview/native_layer.js
index 8c72a538284..d9289ffc33c 100644
--- a/chromium/chrome/browser/resources/print_preview/native_layer.js
+++ b/chromium/chrome/browser/resources/print_preview/native_layer.js
@@ -67,6 +67,10 @@ cr.define('print_preview', function() {
this.onEnableManipulateSettingsForTest_.bind(this);
global.printPresetOptionsFromDocument =
this.onPrintPresetOptionsFromDocument_.bind(this);
+ global.onProvisionalPrinterResolved =
+ this.onProvisionalDestinationResolved_.bind(this);
+ global.failedToResolveProvisionalPrinter =
+ this.failedToResolveProvisionalDestination_.bind(this);
};
/**
@@ -106,6 +110,8 @@ cr.define('print_preview', function() {
EXTENSION_CAPABILITIES_SET:
'print_preview.NativeLayer.EXTENSION_CAPABILITIES_SET',
PRINT_PRESET_OPTIONS: 'print_preview.NativeLayer.PRINT_PRESET_OPTIONS',
+ PROVISIONAL_DESTINATION_RESOLVED:
+ 'print_preview.NativeLayer.PROVISIONAL_DESTINATION_RESOLVED'
};
/**
@@ -214,6 +220,18 @@ cr.define('print_preview', function() {
},
/**
+ * Requests Chrome to resolve provisional extension destination by granting
+ * the provider extension access to the printer. Chrome will respond with
+ * the resolved destination properties by calling
+ * {@code onProvisionalPrinterResolved}, or in case of an error
+ * {@code failedToResolveProvisionalPrinter}
+ * @param {string} provisionalDestinationId
+ */
+ grantExtensionPrinterAccess: function(provisionalDestinationId) {
+ chrome.send('grantExtensionPrinterAccess', [provisionalDestinationId]);
+ },
+
+ /**
* @param {!print_preview.Destination} destination Destination to print to.
* @param {!print_preview.ticket_items.Color} color Color ticket item.
* @return {number} Native layer color model.
@@ -770,7 +788,8 @@ cr.define('print_preview', function() {
* extensionName: string,
* id: string,
* name: string,
- * description: (string|undefined)}>} printers The list
+ * description: (string|undefined),
+ * provisional: (boolean|undefined)}>} printers The list
* containing information about printers added by an extension.
* @param {boolean} done Whether this is the final list of extension
* managed printers.
@@ -796,6 +815,42 @@ cr.define('print_preview', function() {
this.dispatchEvent(event);
},
+ /**
+ * Called when Chrome reports that attempt to resolve a provisional
+ * destination failed.
+ * @param {string} destinationId The provisional destination ID.
+ * @private
+ */
+ failedToResolveProvisionalDestination_: function(destinationId) {
+ var evt = new Event(
+ NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED);
+ evt.provisionalId = destinationId;
+ evt.destination = null;
+ this.dispatchEvent(evt);
+ },
+
+ /**
+ * Called when Chrome reports that a provisional destination has been
+ * successfully resolved.
+ * Currently used only for extension provided destinations.
+ * @param {string} provisionalDestinationId The provisional destination id.
+ * @param {!{extensionId: string,
+ * extensionName: string,
+ * id: string,
+ * name: string,
+ * description: (string|undefined)}} destinationInfo The resolved
+ * destination info.
+ * @private
+ */
+ onProvisionalDestinationResolved_: function(provisionalDestinationId,
+ destinationInfo) {
+ var evt = new Event(
+ NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED);
+ evt.provisionalId = provisionalDestinationId;
+ evt.destination = destinationInfo;
+ this.dispatchEvent(evt);
+ },
+
/**
* Allows for onManipulateSettings to be called
* from the native layer.
diff --git a/chromium/chrome/browser/resources/print_preview/previewarea/preview_area.html b/chromium/chrome/browser/resources/print_preview/previewarea/preview_area.html
index d50fbe43e0b..d35bc26a7fb 100644
--- a/chromium/chrome/browser/resources/print_preview/previewarea/preview_area.html
+++ b/chromium/chrome/browser/resources/print_preview/previewarea/preview_area.html
@@ -34,9 +34,6 @@
</div>
</div>
<div class="preview-area-plugin-wrapper">
- <object class="preview-area-compatibility-object"
- type="application/x-google-chrome-print-preview-pdf"
- data="chrome://print/dummy.pdf"></object>
<object class="preview-area-compatibility-object-out-of-process"
type="application/x-google-chrome-pdf"
data="chrome://print/dummy.pdf"></object>
diff --git a/chromium/chrome/browser/resources/print_preview/previewarea/preview_area.js b/chromium/chrome/browser/resources/print_preview/previewarea/preview_area.js
index 9b5aa86ec78..b2163bea8d5 100644
--- a/chromium/chrome/browser/resources/print_preview/previewarea/preview_area.js
+++ b/chromium/chrome/browser/resources/print_preview/previewarea/preview_area.js
@@ -191,7 +191,6 @@ cr.define('print_preview', function() {
* @private
*/
PreviewArea.Classes_ = {
- COMPATIBILITY_OBJECT: 'preview-area-compatibility-object',
OUT_OF_PROCESS_COMPATIBILITY_OBJECT:
'preview-area-compatibility-object-out-of-process',
CUSTOM_MESSAGE_TEXT: 'preview-area-custom-message-text',
@@ -217,19 +216,6 @@ cr.define('print_preview', function() {
};
/**
- * Enumeration of PDF plugin types for print preview.
- * @enum {string}
- * @private
- */
- PreviewArea.PluginType_ = {
- // TODO(raymes): Remove all references to the IN_PROCESS plugin once it is
- // removed.
- IN_PROCESS: 'in-process',
- OUT_OF_PROCESS: 'out-of-process',
- NONE: 'none'
- };
-
- /**
* Maps message IDs to the CSS class that contains them.
* @type {Object<print_preview.PreviewArea.MessageId_, string>}
* @private
@@ -384,8 +370,7 @@ cr.define('print_preview', function() {
print_preview.ticket_items.TicketItem.EventType.CHANGE,
this.onTicketChange_.bind(this));
- this.pluginType_ = this.getPluginType_();
- if (this.pluginType_ != PreviewArea.PluginType_.NONE) {
+ if (this.checkPluginCompatibility_()) {
this.previewGenerator_ = new print_preview.PreviewGenerator(
this.destinationStore_,
this.printTicketStore_,
@@ -434,42 +419,11 @@ cr.define('print_preview', function() {
/**
* Checks to see if a suitable plugin for rendering the preview exists. If
* one does not exist, then an error message will be displayed.
- * @return {string} A string constant indicating whether Chromium has a
- * plugin for rendering the preview.
- * PreviewArea.PluginType_.IN_PROCESS for an in-process plugin
- * PreviewArea.PluginType_.OUT_OF_PROCESS for an out-of-process plugin
- * PreviewArea.PluginType_.NONE if no plugin is available.
+ * @return {boolean} true if Chromium has a plugin for rendering the
+ * the preview.
* @private
*/
- getPluginType_: function() {
- // TODO(raymes): Remove the in-process check after we remove the
- // in-process plugin. Change this function back to
- // checkPluginCompatibility_().
- /** @type {print_preview.PDFPlugin} */
- var compatObj = this.getElement().getElementsByClassName(
- PreviewArea.Classes_.COMPATIBILITY_OBJECT)[0];
- var isCompatible =
- compatObj.onload &&
- compatObj.goToPage &&
- compatObj.removePrintButton &&
- compatObj.loadPreviewPage &&
- compatObj.printPreviewPageCount &&
- compatObj.resetPrintPreviewUrl &&
- compatObj.onPluginSizeChanged &&
- compatObj.onScroll &&
- compatObj.pageXOffset &&
- compatObj.pageYOffset &&
- compatObj.setZoomLevel &&
- compatObj.setPageNumbers &&
- compatObj.setPageXOffset &&
- compatObj.setPageYOffset &&
- compatObj.getHorizontalScrollbarThickness &&
- compatObj.getVerticalScrollbarThickness &&
- compatObj.getPageLocationNormalized &&
- compatObj.getHeight &&
- compatObj.getWidth;
- compatObj.parentElement.removeChild(compatObj);
-
+ checkPluginCompatibility_: function() {
// TODO(raymes): It's harder to test compatibility of the out of process
// plugin because it's asynchronous. We could do a better job at some
// point.
@@ -478,11 +432,7 @@ cr.define('print_preview', function() {
var isOOPCompatible = oopCompatObj.postMessage;
oopCompatObj.parentElement.removeChild(oopCompatObj);
- if (isCompatible)
- return PreviewArea.PluginType_.IN_PROCESS;
- if (isOOPCompatible)
- return PreviewArea.PluginType_.OUT_OF_PROCESS;
- return PreviewArea.PluginType_.NONE;
+ return isOOPCompatible;
},
/**
@@ -562,17 +512,9 @@ cr.define('print_preview', function() {
return;
}
- if (this.pluginType_ == PreviewArea.PluginType_.IN_PROCESS) {
- this.plugin_ = assertInstanceof(document.createElement('embed'),
- HTMLEmbedElement);
- this.plugin_.setAttribute(
- 'type', 'application/x-google-chrome-print-preview-pdf');
- this.plugin_.setAttribute('src', srcUrl);
- } else {
- this.plugin_ = /** @type {print_preview.PDFPlugin} */(
- PDFCreateOutOfProcessPlugin(srcUrl));
- this.plugin_.setKeyEventCallback(this.keyEventCallback_);
- }
+ this.plugin_ = /** @type {print_preview.PDFPlugin} */(
+ PDFCreateOutOfProcessPlugin(srcUrl));
+ this.plugin_.setKeyEventCallback(this.keyEventCallback_);
this.plugin_.setAttribute('class', 'preview-area-plugin');
this.plugin_.setAttribute('aria-live', 'polite');
@@ -585,28 +527,14 @@ cr.define('print_preview', function() {
appendChild(/** @type {Node} */(this.plugin_));
- if (this.pluginType_ == PreviewArea.PluginType_.OUT_OF_PROCESS) {
- var pageNumbers =
- this.printTicketStore_.pageRange.getPageNumberSet().asArray();
- var grayscale = !this.printTicketStore_.color.getValue();
- this.plugin_.setLoadCallback(this.onPluginLoad_.bind(this));
- this.plugin_.setViewportChangedCallback(
- this.onPreviewVisualStateChange_.bind(this));
- this.plugin_.resetPrintPreviewMode(srcUrl, grayscale, pageNumbers,
- this.documentInfo_.isModifiable);
- } else {
- global['onPreviewPluginLoad'] = this.onPluginLoad_.bind(this);
- (/** @type {print_preview.PDFPlugin} */(this.plugin_)).
- onload('onPreviewPluginLoad()');
-
- global['onPreviewPluginVisualStateChange'] =
- this.onPreviewVisualStateChange_.bind(this);
- this.plugin_.onScroll('onPreviewPluginVisualStateChange()');
- this.plugin_.onPluginSizeChanged('onPreviewPluginVisualStateChange()');
-
- this.plugin_.removePrintButton();
- this.plugin_.grayscale(!this.printTicketStore_.color.getValue());
- }
+ var pageNumbers =
+ this.printTicketStore_.pageRange.getPageNumberSet().asArray();
+ var grayscale = !this.printTicketStore_.color.getValue();
+ this.plugin_.setLoadCallback(this.onPluginLoad_.bind(this));
+ this.plugin_.setViewportChangedCallback(
+ this.onPreviewVisualStateChange_.bind(this));
+ this.plugin_.resetPrintPreviewMode(srcUrl, grayscale, pageNumbers,
+ this.documentInfo_.isModifiable);
},
/**
@@ -665,19 +593,12 @@ cr.define('print_preview', function() {
if (!this.plugin_) {
this.createPlugin_(event.previewUrl);
} else {
- if (this.pluginType_ == PreviewArea.PluginType_.OUT_OF_PROCESS) {
- var grayscale = !this.printTicketStore_.color.getValue();
- var pageNumbers =
- this.printTicketStore_.pageRange.getPageNumberSet().asArray();
- var url = event.previewUrl;
- this.plugin_.resetPrintPreviewMode(url, grayscale, pageNumbers,
- this.documentInfo_.isModifiable);
- } else if (this.pluginType_ == PreviewArea.PluginType_.IN_PROCESS) {
- this.plugin_.goToPage('0');
- this.plugin_.resetPrintPreviewUrl(event.previewUrl);
- this.plugin_.reload();
- this.plugin_.grayscale(!this.printTicketStore_.color.getValue());
- }
+ var grayscale = !this.printTicketStore_.color.getValue();
+ var pageNumbers =
+ this.printTicketStore_.pageRange.getPageNumberSet().asArray();
+ var url = event.previewUrl;
+ this.plugin_.resetPrintPreviewMode(url, grayscale, pageNumbers,
+ this.documentInfo_.isModifiable);
}
cr.dispatchSimpleEvent(
this, PreviewArea.EventType.PREVIEW_GENERATION_IN_PROGRESS);
@@ -729,23 +650,6 @@ cr.define('print_preview', function() {
this.loadingTimeout_ = null;
}
- if (this.pluginType_ == PreviewArea.PluginType_.IN_PROCESS) {
- // Setting the plugin's page count can only be called after the plugin
- // is loaded and the document must be modifiable.
- if (this.documentInfo_.isModifiable) {
- this.plugin_.printPreviewPageCount(
- this.printTicketStore_.pageRange.getPageNumberSet().size);
- }
- this.plugin_.setPageNumbers(JSON.stringify(
- this.printTicketStore_.pageRange.getPageNumberSet().asArray()));
- if (this.zoomLevel_ != null && this.pageOffset_ != null) {
- this.plugin_.setZoomLevel(this.zoomLevel_);
- this.plugin_.setPageXOffset(this.pageOffset_.x);
- this.plugin_.setPageYOffset(this.pageOffset_.y);
- } else {
- this.plugin_.fitToHeight();
- }
- }
this.setOverlayVisible_(false);
this.isPluginReloaded_ = true;
this.dispatchPreviewGenerationDoneIfReady_();
@@ -762,46 +666,12 @@ cr.define('print_preview', function() {
pageWidth,
viewportWidth,
viewportHeight) {
- if (this.pluginType_ == PreviewArea.PluginType_.IN_PROCESS) {
- if (this.isPluginReloaded_) {
- this.zoomLevel_ = this.plugin_.getZoomLevel();
- this.pageOffset_ = new print_preview.Coordinate2d(
- this.plugin_.pageXOffset(), this.plugin_.pageYOffset());
- }
-
- var pageLocationNormalizedStr =
- this.plugin_.getPageLocationNormalized();
- if (!pageLocationNormalizedStr) {
- return;
- }
- var normalized = pageLocationNormalizedStr.split(';');
- var pluginWidth = this.plugin_.getWidth();
- var pluginHeight = this.plugin_.getHeight();
- var verticalScrollbarThickness =
- this.plugin_.getVerticalScrollbarThickness();
- var horizontalScrollbarThickness =
- this.plugin_.getHorizontalScrollbarThickness();
-
- var translationTransform = new print_preview.Coordinate2d(
- parseFloat(normalized[0]) * pluginWidth,
- parseFloat(normalized[1]) * pluginHeight);
- this.marginControlContainer_.updateTranslationTransform(
- translationTransform);
- var pageWidthInPixels = parseFloat(normalized[2]) * pluginWidth;
- this.marginControlContainer_.updateScaleTransform(
- pageWidthInPixels / this.documentInfo_.pageSize.width);
- this.marginControlContainer_.updateClippingMask(
- new print_preview.Size(
- pluginWidth - verticalScrollbarThickness,
- pluginHeight - horizontalScrollbarThickness));
- } else if (this.pluginType_ == PreviewArea.PluginType_.OUT_OF_PROCESS) {
- this.marginControlContainer_.updateTranslationTransform(
- new print_preview.Coordinate2d(pageX, pageY));
- this.marginControlContainer_.updateScaleTransform(
- pageWidth / this.documentInfo_.pageSize.width);
- this.marginControlContainer_.updateClippingMask(
- new print_preview.Size(viewportWidth, viewportHeight));
- }
+ this.marginControlContainer_.updateTranslationTransform(
+ new print_preview.Coordinate2d(pageX, pageY));
+ this.marginControlContainer_.updateScaleTransform(
+ pageWidth / this.documentInfo_.pageSize.width);
+ this.marginControlContainer_.updateClippingMask(
+ new print_preview.Size(viewportWidth, viewportHeight));
},
/**
diff --git a/chromium/chrome/browser/resources/print_preview/print_preview.html b/chromium/chrome/browser/resources/print_preview/print_preview.html
index 2c8e44eb417..bbcb5a1544a 100644
--- a/chromium/chrome/browser/resources/print_preview/print_preview.html
+++ b/chromium/chrome/browser/resources/print_preview/print_preview.html
@@ -36,6 +36,7 @@
<link rel="stylesheet" href="search/destination_list_item.css">
<link rel="stylesheet" href="search/destination_search.css">
<link rel="stylesheet" href="search/fedex_tos.css">
+ <link rel="stylesheet" href="search/provisional_destination_resolver.css">
<script src="chrome://resources/js/action_link.js"></script>
<script src="chrome://resources/js/cr.js"></script>
@@ -103,6 +104,7 @@
<include src="search/destination_list.html">
<include src="search/destination_list_item.html">
<include src="search/fedex_tos.html">
+ <include src="search/provisional_destination_resolver.html">
<script src="chrome://resources/js/i18n_template.js"></script>
</body>
diff --git a/chromium/chrome/browser/resources/print_preview/print_preview.js b/chromium/chrome/browser/resources/print_preview/print_preview.js
index cb2434132c1..96336e85c6e 100644
--- a/chromium/chrome/browser/resources/print_preview/print_preview.js
+++ b/chromium/chrome/browser/resources/print_preview/print_preview.js
@@ -1314,6 +1314,7 @@ cr.define('print_preview', function() {
<include src="search/destination_list_item.js">
<include src="search/destination_search.js">
<include src="search/fedex_tos.js">
+<include src="search/provisional_destination_resolver.js">
window.addEventListener('DOMContentLoaded', function() {
printPreview = new print_preview.PrintPreview();
diff --git a/chromium/chrome/browser/resources/print_preview/print_preview_focus_manager.js b/chromium/chrome/browser/resources/print_preview/print_preview_focus_manager.js
index be4c22d06d0..b5d74efdc21 100644
--- a/chromium/chrome/browser/resources/print_preview/print_preview_focus_manager.js
+++ b/chromium/chrome/browser/resources/print_preview/print_preview_focus_manager.js
@@ -21,8 +21,11 @@ cr.define('print_preview', function() {
/** @override */
getFocusParent: function() {
- return document.querySelector('.overlay:not([hidden])') ||
- document.body;
+ var el = document.body;
+ var newEl = null;
+ while (newEl = el.querySelector('.overlay:not([hidden])'))
+ el = newEl;
+ return el;
}
};
diff --git a/chromium/chrome/browser/resources/print_preview/search/destination_list.css b/chromium/chrome/browser/resources/print_preview/search/destination_list.css
index 58c5743c250..2ebdb9ac55c 100644
--- a/chromium/chrome/browser/resources/print_preview/search/destination_list.css
+++ b/chromium/chrome/browser/resources/print_preview/search/destination_list.css
@@ -49,5 +49,5 @@
}
.destination-list .total {
- color: #999;
+ color: #777;
}
diff --git a/chromium/chrome/browser/resources/print_preview/search/destination_list.js b/chromium/chrome/browser/resources/print_preview/search/destination_list.js
index 861125801ef..351d3118498 100644
--- a/chromium/chrome/browser/resources/print_preview/search/destination_list.js
+++ b/chromium/chrome/browser/resources/print_preview/search/destination_list.js
@@ -52,7 +52,7 @@ cr.define('print_preview', function() {
/**
* Set of destination ids.
- * @type {!Object<string, boolean>}
+ * @type {!Object<boolean>}
* @private
*/
this.destinationIds_ = {};
diff --git a/chromium/chrome/browser/resources/print_preview/search/destination_list_item.css b/chromium/chrome/browser/resources/print_preview/search/destination_list_item.css
index 3501f28cf02..c98dc8f9733 100644
--- a/chromium/chrome/browser/resources/print_preview/search/destination_list_item.css
+++ b/chromium/chrome/browser/resources/print_preview/search/destination_list_item.css
@@ -82,7 +82,7 @@
.extension-name {
-webkit-margin-start: 1em;
- color: #999;
+ color: #777;
line-height: 24px;
overflow: hidden;
text-overflow: ellipsis;
diff --git a/chromium/chrome/browser/resources/print_preview/search/destination_search.css b/chromium/chrome/browser/resources/print_preview/search/destination_search.css
index ea76b84d8da..113fd652f0d 100644
--- a/chromium/chrome/browser/resources/print_preview/search/destination_search.css
+++ b/chromium/chrome/browser/resources/print_preview/search/destination_search.css
@@ -12,7 +12,7 @@
pointer-events: none;
}
-#destination-search .page {
+#destination-search > .page {
width: 640px;
}
diff --git a/chromium/chrome/browser/resources/print_preview/search/destination_search.js b/chromium/chrome/browser/resources/print_preview/search/destination_search.js
index 601022408df..0922bca647f 100644
--- a/chromium/chrome/browser/resources/print_preview/search/destination_search.js
+++ b/chromium/chrome/browser/resources/print_preview/search/destination_search.js
@@ -66,6 +66,14 @@ cr.define('print_preview', function() {
this.registerPromoShownMetricRecorded_ = false;
/**
+ * Child overlay used for resolving a provisional destination. The overlay
+ * is shown when the user attempts to select a provisional destination.
+ * Set only when a destination is being resolved.
+ * @private {?print_preview.ProvisionalDestinationResolver}
+ */
+ this.provisionalDestinationResolver_ = null;
+
+ /**
* Search box used to search through the destination lists.
* @type {!print_preview.SearchBox}
* @private
@@ -153,6 +161,8 @@ cr.define('print_preview', function() {
// Collapse all destination lists
this.localList_.setIsShowAll(false);
this.cloudList_.setIsShowAll(false);
+ if (this.provisionalDestinationResolver_)
+ this.provisionalDestinationResolver_.cancel();
this.resetSearch_();
}
},
@@ -232,6 +242,11 @@ cr.define('print_preview', function() {
this.destinationStore_,
print_preview.DestinationStore.EventType.DESTINATION_SEARCH_DONE,
this.onDestinationSearchDone_.bind(this));
+ this.tracker.add(
+ this.destinationStore_,
+ print_preview.DestinationStore.EventType
+ .PROVISIONAL_DESTINATION_RESOLVED,
+ this.onDestinationsInserted_.bind(this));
this.tracker.add(
this.invitationStore_,
@@ -544,14 +559,68 @@ cr.define('print_preview', function() {
},
/**
- * Called when a destination is selected. Clears the search and hides the
- * widget.
+ * Handler for {@code print_preview.DestinationListItem.EventType.SELECT}
+ * event, which is called when a destinationi list item is selected.
* @param {Event} evt Contains the selected destination.
* @private
*/
onDestinationSelect_: function(evt) {
+ this.handleOnDestinationSelect_(evt.destination);
+ },
+
+ /**
+ * Called when a destination is selected. Clears the search and hides the
+ * widget. If The destination is provisional, it runs provisional
+ * destination resolver first.
+ * @param {!print_preview.Destination} destination The selected destination.
+ * @private
+ */
+ handleOnDestinationSelect_: function(destination) {
+ if (destination.isProvisional) {
+ assert(!this.provisionalDestinationResolver_,
+ 'Provisional destination resolver already exists.');
+ this.provisionalDestinationResolver_ =
+ print_preview.ProvisionalDestinationResolver.create(
+ this.destinationStore_, destination);
+ assert(!!this.provisionalDestinationResolver_,
+ 'Unable to create provisional destination resolver');
+
+ var lastFocusedElement = document.activeElement;
+ this.addChild(this.provisionalDestinationResolver_);
+ this.provisionalDestinationResolver_.run(this.getElement())
+ .then(
+ /**
+ * @param {!print_preview.Destination} resolvedDestination
+ * Destination to which the provisional destination was
+ * resolved.
+ */
+ function(resolvedDestination) {
+ this.handleOnDestinationSelect_(resolvedDestination);
+ }.bind(this))
+ .catch(
+ function() {
+ console.log('Failed to resolve provisional destination: ' +
+ destination.id);
+ })
+ .then(
+ function() {
+ this.removeChild(this.provisionalDestinationResolver_);
+ this.provisionalDestinationResolver_ = null;
+
+ // Restore focus to the previosly focused element if it's
+ // still shown in the search.
+ if (lastFocusedElement &&
+ this.getIsVisible() &&
+ getIsVisible(lastFocusedElement) &&
+ this.getElement().contains(lastFocusedElement)) {
+ lastFocusedElement.focus();
+ }
+ }.bind(this));
+ return;
+ }
+
this.setIsVisible(false);
- this.destinationStore_.selectDestination(evt.destination);
+ this.destinationStore_.selectDestination(destination);
this.metrics_.record(print_preview.Metrics.DestinationSearchBucket.
DESTINATION_CLOSED_CHANGED);
},
diff --git a/chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.css b/chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.css
new file mode 100644
index 00000000000..4d487aa2f7e
--- /dev/null
+++ b/chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.css
@@ -0,0 +1,40 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+.usb-permission-page .throbber-placeholder {
+ height: 16px;
+ margin: 4px;
+ width: 16px;
+}
+
+.usb-permission-message {
+ margin: 0;
+ padding-bottom: 35px;
+}
+
+.usb-permission-prompt {
+ padding: 35px 20px;
+ width: 360px;
+}
+
+.usb-permission-extension-desc {
+ display: flex;
+}
+
+.usb-permission-extension-icon {
+ background-position: center;
+ background-repeat: none;
+ height: 24px;
+ width: 24px;
+}
+
+.usb-permission-extension-name {
+ flex: 1;
+ line-height: 24px;
+ overflow-wrap: break-word;
+}
+
+.usb-permission-page > .action-area {
+ margin: 0 3px 10px;
+}
diff --git a/chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.html b/chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.html
new file mode 100644
index 00000000000..f0e141d426c
--- /dev/null
+++ b/chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.html
@@ -0,0 +1,22 @@
+<div id="extension-usb-resolver" class="overlay transparent" hidden>
+ <div class="page usb-permission-page">
+ <div class="close-button"></div>
+ <div class="usb-permission-prompt">
+ <p class="usb-permission-message"></p>
+ <div class="usb-permission-extension-desc">
+ <div class="throbber-placeholder" role="img" alt=""></div>
+ <div class="usb-permission-extension-icon" role="img" alt=""></div>
+ <div class="usb-permission-extension-name"></div>
+ </div>
+ </div>
+ <div class="action-area">
+ <div class="button-strip">
+ <button class="cancel" i18n-content="goBackButton">
+ </button>
+ <button class="usb-permission-ok-button default"
+ i18n-content="selectButton">
+ </button>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.js b/chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.js
new file mode 100644
index 00000000000..a78732f0ee8
--- /dev/null
+++ b/chromium/chrome/browser/resources/print_preview/search/provisional_destination_resolver.js
@@ -0,0 +1,252 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+cr.define('print_preview', function() {
+ 'use strict';
+
+ /** @enum {string} */
+ var ResolverState = {
+ INITIAL: 'INITIAL',
+ ACTIVE: 'ACTIVE',
+ GRANTING_PERMISSION: 'GRANTING_PERMISSION',
+ ERROR: 'ERROR',
+ DONE: 'DONE'
+ };
+
+ /**
+ * Utility class for bundling a promise object with it's resolver methods.
+ * @param {!Promise<!print_preview.Destination>} promise A promise returning
+ * a destination.
+ * @param {function(!print_preview.Destination)} resolve Function resolving
+ * the promise.
+ * @param {function()} reject Function for rejecting the promise.
+ * @constructor @struct
+ */
+ function PromiseResolver(promise, resolve, reject) {
+ /** @type {!Promise<!print_preview.Destination>} */
+ this.promise = promise;
+ /** @type {function(!print_preview.Destination)} */
+ this.resolve = resolve;
+ /** @type {function()} */
+ this.reject = reject;
+ }
+
+ /**
+ * Create a Promise and an associated PromiseResolver.
+ * @return {!PromiseResolver}
+ */
+ PromiseResolver.create = function() {
+ var reject = null;
+ var resolve = null;
+ /** @type {!Promise<!print_preview.Destination>} */
+ var promise = new Promise(function(resolvePromise, rejectPromise) {
+ resolve = /** @type {function(!print_preview.Destination)}*/(
+ resolvePromise);
+ reject = /** @type {function()} */(rejectPromise);
+ });
+
+ return new PromiseResolver(promise, resolve, reject);
+ };
+
+ /**
+ * Overlay used to resolve a provisional extension destination. The user is
+ * prompted to allow print preview to grant a USB device access to an
+ * extension associated with the destination. If user agrees destination
+ * resolvement is attempted (which includes granting the extension USB access
+ * and requesting destination description from the extension). The overlay is
+ * hidden when destination resolving is done.
+ *
+ * @param {!print_preview.DestinationStore} destinationStore The destination
+ * store containing the destination. Used as a proxy to native layer for
+ * resolving the destination.
+ * @param {!print_preview.Destination} destination The destination that has
+ * to be resolved.
+ * @constructor
+ * @extends {print_preview.Overlay}
+ */
+ function ProvisionalDestinationResolver(destinationStore, destination) {
+ print_preview.Overlay.call(this);
+
+ /** @private {!print_preview.DestinationStore} */
+ this.destinationStore_ = destinationStore;
+ /** @private {!print_preview.Destination} */
+ this.destination_ = destination;
+
+ /** @private {ResolverState} */
+ this.state_ = ResolverState.INITIAL;
+
+ /**
+ * Promise resolver for promise returned by {@code this.run}.
+ * @private {?PromiseResolver}
+ */
+ this.promiseResolver_ = null;
+ }
+
+ /**
+ * @param {!print_preview.DestinationStore} store
+ * @param {!print_preview.Destination} destination
+ * @return {?ProvisionalDestinationResolver}
+ */
+ ProvisionalDestinationResolver.create = function(store, destination) {
+ if (destination.provisionalType !=
+ print_preview.Destination.ProvisionalType.NEEDS_USB_PERMISSION) {
+ return null;
+ }
+ return new ProvisionalDestinationResolver(store, destination);
+ };
+
+ ProvisionalDestinationResolver.prototype = {
+ __proto__: print_preview.Overlay.prototype,
+
+ /** @override */
+ enterDocument: function() {
+ print_preview.Overlay.prototype.enterDocument.call(this);
+
+ this.tracker.add(
+ this.getChildElement('.usb-permission-ok-button'),
+ 'click',
+ this.startResolveDestination_.bind(this));
+ this.tracker.add(
+ this.getChildElement('.cancel'),
+ 'click',
+ this.cancel.bind(this));
+
+ this.tracker.add(
+ this.destinationStore_,
+ print_preview.DestinationStore.EventType
+ .PROVISIONAL_DESTINATION_RESOLVED,
+ this.onDestinationResolved_.bind(this));
+ },
+
+ /** @override */
+ onSetVisibleInternal: function(visible) {
+ if (visible) {
+ assert(this.state_ == ResolverState.INITIAL,
+ 'Showing overlay while not in initial state.');
+ assert(!this.promiseResolver_, 'Promise resolver already set.');
+ this.setState_(ResolverState.ACTIVE);
+ this.promiseResolver_ = PromiseResolver.create();
+ this.getChildElement('.default').focus();
+ } else if (this.state_ != ResolverState.DONE) {
+ assert(this.state_ != ResolverState.INITIAL, 'Hiding in initial state');
+ this.setState_(ResolverState.DONE);
+ this.promiseResolver_.reject();
+ this.promiseResolver_ = null;
+ }
+ },
+
+ /** @override */
+ createDom: function() {
+ this.setElementInternal(this.cloneTemplateInternal(
+ 'extension-usb-resolver'));
+
+ var extNameEl = this.getChildElement('.usb-permission-extension-name');
+ extNameEl.title = this.destination_.extensionName;
+ extNameEl.textContent = this.destination_.extensionName;
+
+ var extIconEl = this.getChildElement('.usb-permission-extension-icon');
+ extIconEl.style.backgroundImage = '-webkit-image-set(' +
+ 'url(chrome://extension-icon/' +
+ this.destination_.extensionId + '/24/1) 1x,' +
+ 'url(chrome://extension-icon/' +
+ this.destination_.extensionId + '/48/1) 2x)';
+ },
+
+ /**
+ * Handler for click on OK button. It initiates destination resolving.
+ * @private
+ */
+ startResolveDestination_: function() {
+ assert(this.state_ == ResolverState.ACTIVE,
+ 'Invalid state in request grant permission');
+
+ this.setState_(ResolverState.GRANTING_PERMISSION);
+ this.destinationStore_.resolveProvisionalDestination(this.destination_);
+ },
+
+ /**
+ * Handler for PROVISIONAL_DESTINATION_RESOLVED event. It finalizes the
+ * resolver state once the destination associated with the resolver gets
+ * resolved.
+ * @param {Event} event
+ * @private
+ */
+ onDestinationResolved_: function(event) {
+ if (this.state_ == ResolverState.DONE)
+ return;
+
+ if (event.provisionalId != this.destination_.id)
+ return;
+
+ if (event.destination) {
+ this.setState_(ResolverState.DONE);
+ this.promiseResolver_.resolve(event.destination);
+ this.promiseResolver_ = null;
+ this.setIsVisible(false);
+ } else {
+ this.setState_(ResolverState.ERROR);
+ }
+ },
+
+ /**
+ * Sets new resolver state and updates the UI accordingly.
+ * @param {ResolverState} state
+ * @private
+ */
+ setState_: function(state) {
+ if (this.state_ == state)
+ return;
+
+ this.state_ = state;
+ this.updateUI_();
+ },
+
+ /**
+ * Updates the resolver overlay UI to match the resolver state.
+ * @private
+ */
+ updateUI_: function() {
+ this.getChildElement('.usb-permission-ok-button').hidden =
+ this.state_ == ResolverState.ERROR;
+ this.getChildElement('.usb-permission-ok-button').disabled =
+ this.state_ != ResolverState.ACTIVE;
+
+ // If OK button is disabled, make sure Cancel button gets focus.
+ if (this.state_ != ResolverState.ACTIVE)
+ this.getChildElement('.cancel').focus();
+
+ this.getChildElement('.throbber-placeholder').classList.toggle(
+ 'throbber',
+ this.state_ == ResolverState.GRANTING_PERMISSION);
+
+ this.getChildElement('.usb-permission-extension-desc').hidden =
+ this.state_ == ResolverState.ERROR;
+
+ this.getChildElement('.usb-permission-message').textContent =
+ this.state_ == ResolverState.ERROR ?
+ loadTimeData.getStringF('resolveExtensionUSBErrorMessage',
+ this.destination_.extensionName) :
+ loadTimeData.getString('resolveExtensionUSBPermissionMessage');
+ },
+
+ /**
+ * Initiates and shows the resolver overlay.
+ * @param {!HTMLElement} parent The element that should parent the resolver
+ * UI.
+ * @return {!Promise<!print_preview.Destination>} Promise that will be
+ * fulfilled when the destination resolving is finished.
+ */
+ run: function(parent) {
+ this.render(parent);
+ this.setIsVisible(true);
+
+ assert(this.promiseResolver_, 'Promise resolver not created.');
+ return this.promiseResolver_.promise;
+ }
+ };
+
+ return {
+ ProvisionalDestinationResolver: ProvisionalDestinationResolver
+ };
+});
diff --git a/chromium/chrome/browser/resources/profile_signin_confirmation.html b/chromium/chrome/browser/resources/profile_signin_confirmation.html
index bc081eae9c3..2c6de33ca39 100644
--- a/chromium/chrome/browser/resources/profile_signin_confirmation.html
+++ b/chromium/chrome/browser/resources/profile_signin_confirmation.html
@@ -15,7 +15,7 @@
<h1 id="dialog-title" i18n-content="dialogTitle"></h1>
<p id="dialog-message"></p>
<a i18n-content="learnMoreText"
- href="http://support.google.com/chromeos/bin/answer.py?hl=en&answer=1331549"
+ href="https://support.google.com/chromebook/answer/1331549"
target="_blank">
</a>
<p id="dialog-prompt"></p>
diff --git a/chromium/chrome/browser/resources/safe_browsing/images/2x/malware_icon_v2.png b/chromium/chrome/browser/resources/safe_browsing/images/2x/malware_icon_v2.png
index a7687b51062..31d8d8bf1e1 100644
--- a/chromium/chrome/browser/resources/safe_browsing/images/2x/malware_icon_v2.png
+++ b/chromium/chrome/browser/resources/safe_browsing/images/2x/malware_icon_v2.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/security_warnings/extended_reporting.js b/chromium/chrome/browser/resources/security_warnings/extended_reporting.js
index 51b4b21c4f9..817b3ff6346 100644
--- a/chromium/chrome/browser/resources/security_warnings/extended_reporting.js
+++ b/chromium/chrome/browser/resources/security_warnings/extended_reporting.js
@@ -10,10 +10,11 @@ var SB_DISPLAY_CHECK_BOX = 'displaycheckbox';
// This sets up the Extended Safe Browsing Reporting opt-in, either for
// reporting malware or invalid certificate chains. Does nothing if the
-// interstitial type is not SAFEBROWSING or SSL.
+// interstitial type is not SAFEBROWSING or SSL or CAPTIVE_PORTAL.
function setupExtendedReportingCheckbox() {
var interstitialType = loadTimeData.getString('type');
- if (interstitialType != 'SAFEBROWSING' && interstitialType != 'SSL') {
+ if (interstitialType != 'SAFEBROWSING' && interstitialType != 'SSL' &&
+ interstitialType != 'CAPTIVE_PORTAL') {
return;
}
diff --git a/chromium/chrome/browser/resources/security_warnings/images/1x/brokenssl_red.png b/chromium/chrome/browser/resources/security_warnings/images/1x/brokenssl_red.png
index ddaabb1970e..cc4b1b39159 100644
--- a/chromium/chrome/browser/resources/security_warnings/images/1x/brokenssl_red.png
+++ b/chromium/chrome/browser/resources/security_warnings/images/1x/brokenssl_red.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/security_warnings/images/1x/captive_portal_page_icon.png b/chromium/chrome/browser/resources/security_warnings/images/1x/captive_portal_page_icon.png
index 7fb63e73e1e..11332a04312 100644
--- a/chromium/chrome/browser/resources/security_warnings/images/1x/captive_portal_page_icon.png
+++ b/chromium/chrome/browser/resources/security_warnings/images/1x/captive_portal_page_icon.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/security_warnings/images/1x/clock.png b/chromium/chrome/browser/resources/security_warnings/images/1x/clock.png
index 247068a6d90..1b1baf20f3d 100644
--- a/chromium/chrome/browser/resources/security_warnings/images/1x/clock.png
+++ b/chromium/chrome/browser/resources/security_warnings/images/1x/clock.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/security_warnings/images/1x/stop_sign.png b/chromium/chrome/browser/resources/security_warnings/images/1x/stop_sign.png
index 901c6f4db5f..f260d3310b3 100644
--- a/chromium/chrome/browser/resources/security_warnings/images/1x/stop_sign.png
+++ b/chromium/chrome/browser/resources/security_warnings/images/1x/stop_sign.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/security_warnings/images/2x/brokenssl_red.png b/chromium/chrome/browser/resources/security_warnings/images/2x/brokenssl_red.png
index b3d53b19b2c..bc4fa0a8578 100644
--- a/chromium/chrome/browser/resources/security_warnings/images/2x/brokenssl_red.png
+++ b/chromium/chrome/browser/resources/security_warnings/images/2x/brokenssl_red.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/security_warnings/images/2x/captive_portal_page_icon.png b/chromium/chrome/browser/resources/security_warnings/images/2x/captive_portal_page_icon.png
index 571b3fc49a1..b54ce21fecb 100644
--- a/chromium/chrome/browser/resources/security_warnings/images/2x/captive_portal_page_icon.png
+++ b/chromium/chrome/browser/resources/security_warnings/images/2x/captive_portal_page_icon.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/security_warnings/images/2x/clock.png b/chromium/chrome/browser/resources/security_warnings/images/2x/clock.png
index 7a10d5df354..1f30a85dc2c 100644
--- a/chromium/chrome/browser/resources/security_warnings/images/2x/clock.png
+++ b/chromium/chrome/browser/resources/security_warnings/images/2x/clock.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/security_warnings/images/2x/stop_sign.png b/chromium/chrome/browser/resources/security_warnings/images/2x/stop_sign.png
index 2e5db6a1177..d91aa9cf6ee 100644
--- a/chromium/chrome/browser/resources/security_warnings/images/2x/stop_sign.png
+++ b/chromium/chrome/browser/resources/security_warnings/images/2x/stop_sign.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/security_warnings/interstitial_v2.js b/chromium/chrome/browser/resources/security_warnings/interstitial_v2.js
index bd192725247..c8a1ce52c41 100644
--- a/chromium/chrome/browser/resources/security_warnings/interstitial_v2.js
+++ b/chromium/chrome/browser/resources/security_warnings/interstitial_v2.js
@@ -23,6 +23,8 @@ var CMD_OPEN_LOGIN = 7;
var CMD_DO_REPORT = 8;
var CMD_DONT_REPORT = 9;
var CMD_OPEN_REPORTING_PRIVACY = 10;
+// Report a phishing error.
+var CMD_REPORT_PHISHING_ERROR = 11;
/**
* A convenience method for sending commands to the parent page.
@@ -172,6 +174,15 @@ function setupEvents() {
});
}
+ // TODO(felt): This should be simplified once the Finch trial is no longer
+ // needed.
+ if (interstitialType == 'SAFEBROWSING' &&
+ loadTimeData.getBoolean('phishing') && $('report-error-link')) {
+ $('report-error-link').addEventListener('click', function(event) {
+ sendCommand(CMD_REPORT_PHISHING_ERROR);
+ });
+ }
+
preventDefaultOnPoundLinkClicks();
setupExtendedReportingCheckbox();
setupSSLDebuggingInfo();
diff --git a/chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html b/chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html
index 17395b6bc2d..a0e67bf69dd 100644
--- a/chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html
+++ b/chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html
@@ -1,5 +1,5 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
<link rel="import" href="chrome://md-settings/checkbox/checkbox.html">
<dom-module id="cr-settings-a11y-page">
@@ -10,69 +10,56 @@
<paper-material>
<div class="more-a11y-link">
<a href="https://chrome.google.com/webstore/category/collection/accessibility"
- target="_blank" i18n-content="accessibilityMoreFeaturesLink"></a>
+ target="_blank" i18n-content="moreFeaturesLink"></a>
</div>
<if expr="chromeos">
- <cr-settings-checkbox
- pref="{{prefs.settings.a11y.enable_menu}}"
- i18n-values="label:accessibilityOptionsInMenuLabel">
+ <cr-settings-checkbox i18n-values="label:optionsInMenuLabel"
+ pref="{{prefs.settings.a11y.enable_menu}}">
</cr-settings-checkbox>
- <cr-settings-checkbox
- pref="{{prefs.settings.a11y.large_cursor_enabled}}"
- i18n-values="label:accessibilityLargeMouseCursorLabel">
+ <cr-settings-checkbox i18n-values="label:largeMouseCursorLabel"
+ pref="{{prefs.settings.a11y.large_cursor_enabled}}">
</cr-settings-checkbox>
- <cr-settings-checkbox
- pref="{{prefs.settings.a11y.high_contrast_enabled}}"
- i18n-values="label:accessibilityHighContrastLabel">
+ <cr-settings-checkbox i18n-values="label:highContrastLabel"
+ pref="{{prefs.settings.a11y.high_contrast_enabled}}">
</cr-settings-checkbox>
<cr-settings-checkbox
pref="{{prefs.settings.a11y.sticky_keys_enabled}}"
- i18n-values="label:accessibilityStickyKeysLabel;
- subLabel:accessibilityStickyKeysSublabel">
+ i18n-values="label:stickyKeysLabel; subLabel:stickyKeysSublabel">
</cr-settings-checkbox>
<cr-settings-checkbox pref="{{prefs.settings.accessibility}}"
- i18n-values="label:accessibilityChromeVoxLabel;
- subLabel:accessibilityChromeVoxSublabel">
+ i18n-values="label:chromeVoxLabel; subLabel:chromeVoxSublabel">
</cr-settings-checkbox>
- <cr-settings-checkbox
- pref="{{prefs.settings.a11y.screen_magnifier}}"
- i18n-values="label:accessibilityScreenMagnifierLabel">
+ <cr-settings-checkbox i18n-values="label:screenMagnifierLabel"
+ pref="{{prefs.settings.a11y.screen_magnifier}}">
</cr-settings-checkbox>
- <cr-settings-checkbox
- pref="{{prefs.settings.touchpad.enable_tap_dragging}}"
- i18n-values="label:accessibilityTapDraggingLabel">
+ <cr-settings-checkbox i18n-values="label:tapDraggingLabel"
+ pref="{{prefs.settings.touchpad.enable_tap_dragging}}">
</cr-settings-checkbox>
- <cr-settings-checkbox pref="{{prefs.settings.a11y.autoclick}}"
- i18n-values="label:accessibilityClickOnStopLabel">
+ <cr-settings-checkbox i18n-values="label:clickOnStopLabel"
+ pref="{{prefs.settings.a11y.autoclick}}">
</cr-settings-checkbox>
<div class="autoclick-delay-label"
- hidden$="{{!prefs.settings.a11y.autoclick}}">
- <span i18n-content="accessibilityDelayBeforeClickLabel"></span>
+ hidden$="[[!prefs.settings.a11y.autoclick]]">
+ <span i18n-content="delayBeforeClickLabel"></span>
<select id="autoclickDropdown"
value="{{prefs.settings.a11y.autoclick_delay_ms::change}}">
- <option value="200"
- i18n-content="accessibilityDelayBeforeClickExtremelyShort">
+ <option value="200" i18n-content="delayBeforeClickExtremelyShort">
</option>
- <option value="400"
- i18n-content="accessibilityDelayBeforeClickVeryShort">
+ <option value="400" i18n-content="delayBeforeClickVeryShort">
</option>
- <option value="600"
- i18n-content="accessibilityDelayBeforeClickShort">
+ <option value="600" i18n-content="delayBeforeClickShort">
</option>
- <option value="800"
- i18n-content="accessibilityDelayBeforeClickLong">
+ <option value="800" i18n-content="delayBeforeClickLong">
</option>
- <option value="1000"
- i18n-content="accessibilityDelayBeforeClickVeryLong">
+ <option value="1000" i18n-content="delayBeforeClickVeryLong">
</option>
</select>
</div>
- <cr-settings-checkbox
- pref="{{prefs.settings.a11y.virtual_keyboard}}"
- i18n-values="label:accessibilityOnScreenKeyboardLabel">
+ <cr-settings-checkbox pref="{{prefs.settings.a11y.virtual_keyboard}}"
+ i18n-values="label:onScreenKeyboardLabel">
</cr-settings-checkbox>
</if>
diff --git a/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.css b/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.css
new file mode 100644
index 00000000000..b22440b2225
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.css
@@ -0,0 +1,30 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+ #change-home-page-section {
+ -webkit-margin-start: 40px;
+ font-size: 90%;
+}
+
+/* TODO(jhawkins): This does not span the width of the entire paper-material
+ * element because our styling of all paper-material includes a fixed margin.
+ * This can be fixed by creating a generic content container inside of each
+ * paper-material which would have this margin instead.
+ *
+ * TODO(jhawkins): Share this rule set at a higher level, e.g., to share with
+ * the device page.
+ */
+hr {
+ width: 100%;
+}
+
+#action-container {
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-end;
+}
+
+#action-container > paper-button {
+ text-transform: upper-case;
+} \ No newline at end of file
diff --git a/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.html b/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.html
new file mode 100644
index 00000000000..0727be83921
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.html
@@ -0,0 +1,43 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
+<link rel="import" href="chrome://md-settings/checkbox/checkbox.html">
+
+<dom-module id="cr-settings-appearance-page">
+ <link rel="import" type="css"
+ href="chrome://md-settings/settings_page/settings_page.css">
+ <link rel="import" type="css"
+ href="chrome://md-settings/appearance_page/appearance_page.css">
+ <link rel="import" type="css" href="chrome://resources/css/widgets.css">
+ <link rel="import" href="chrome://resources/html/action_link.html">
+ <template>
+ <paper-material>
+ <div id="action-container">
+ <cr-button i18n-content="setWallpaper"></cr-button>
+ <cr-button id="get-themes" i18n-content="getThemes"
+ on-click="openThemesGallery_">
+ </cr-button>
+ <cr-button id="resetTheme" i18n-content="resetToDefaultTheme" disabled
+ on-click="resetTheme_">
+ </cr-button>
+ </div>
+ <hr>
+ <cr-settings-checkbox pref="{{prefs.browser.show_home_button}}"
+ i18n-values="label:showHomeButton">
+ </cr-settings-checkbox>
+ <div id="change-home-page-section"
+ hidden$="[[!prefs.browser.show_home_button.value]]">
+ <div id="change-home-page-section-container">
+ <span id="home-page-ntp" i18n-content="homePageNtp"></span>
+ <span id="home-page-url"></span>
+ <a is="action-link" id="change-home-page"
+ i18n-content="changeHomePage">
+ </a>
+ </div>
+ </div>
+ <cr-settings-checkbox pref="{{prefs.bookmark_bar.show_on_all_tabs}}"
+ i18n-values="label:showBookmarksBar">
+ </cr-settings-checkbox>
+ </paper-material>
+ </template>
+ <script src="appearance_page.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.js b/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.js
new file mode 100644
index 00000000000..03230651dd8
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.js
@@ -0,0 +1,101 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+
+/**
+ * 'cr-settings-appearance-page' is the settings page containing appearance
+ * settings.
+ *
+ * Example:
+ *
+ * <iron-animated-pages>
+ * <cr-settings-appearance-page prefs="{{prefs}}">
+ * </cr-settings-appearance-page>
+ * ... other pages ...
+ * </iron-animated-pages>
+ *
+ * @group Chrome Settings Elements
+ * @element cr-settings-appearance-page
+ */
+Polymer({
+ is: 'cr-settings-appearance-page',
+
+ /** @override */
+ attached: function() {
+ // Query the initial state.
+ cr.sendWithCallback('getResetThemeEnabled', undefined,
+ this.setResetThemeEnabled.bind(this));
+
+ // Set up the change event listener.
+ cr.addWebUIListener('reset-theme-enabled-changed',
+ this.setResetThemeEnabled.bind(this));
+ },
+
+ properties: {
+ /**
+ * Preferences state.
+ */
+ prefs: {
+ type: Object,
+ notify: true,
+ },
+
+ /**
+ * Route for the page.
+ */
+ route: String,
+
+ /**
+ * Whether the page is a subpage.
+ */
+ subpage: {
+ type: Boolean,
+ value: false,
+ readOnly: true,
+ },
+
+ /**
+ * ID of the page.
+ */
+ PAGE_ID: {
+ type: String,
+ value: 'appearance',
+ readOnly: true,
+ },
+
+ /**
+ * Title for the page header and navigation menu.
+ */
+ pageTitle: {
+ type: String,
+ value: function() {
+ return loadTimeData.getString('appearancePageTitle');
+ },
+ },
+
+ /**
+ * Name of the 'iron-icon' to show.
+ */
+ icon: {
+ type: String,
+ value: 'home',
+ readOnly: true,
+ },
+ },
+
+ setResetThemeEnabled: function(enabled) {
+ this.$.resetTheme.disabled = !enabled;
+ },
+
+ /** @private */
+ openThemesGallery_: function() {
+ window.open(loadTimeData.getString('themesGalleryUrl'));
+ },
+
+ /** @private */
+ resetTheme_: function() {
+ chrome.send('resetTheme');
+ },
+});
diff --git a/chromium/chrome/browser/resources/settings/checkbox/checkbox.css b/chromium/chrome/browser/resources/settings/checkbox/checkbox.css
index 0acbdbd9744..ad35bc55961 100644
--- a/chromium/chrome/browser/resources/settings/checkbox/checkbox.css
+++ b/chromium/chrome/browser/resources/settings/checkbox/checkbox.css
@@ -2,18 +2,20 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
+:host {
+ display: block;
+ margin-bottom: 10px;
+ margin-top: 10px;
+}
+
#checkbox {
-webkit-margin-end: 10px;
}
-core-label {
+.main-label {
-webkit-margin-end: 10px;
- -webkit-margin-start: 0;
- margin-bottom: 10px;
- margin-top: 10px;
}
.sub-label {
- -webkit-margin-start: 10px;
color: rgba(0, 0, 0, .5);
}
diff --git a/chromium/chrome/browser/resources/settings/checkbox/checkbox.html b/chromium/chrome/browser/resources/settings/checkbox/checkbox.html
index ea3784d66f4..d2aa431a0e3 100644
--- a/chromium/chrome/browser/resources/settings/checkbox/checkbox.html
+++ b/chromium/chrome/browser/resources/settings/checkbox/checkbox.html
@@ -1,6 +1,6 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/cr_elements/v0_8/cr_checkbox/cr_checkbox.html">
-<link rel="import" href="chrome://resources/cr_elements/v0_8/cr_events/cr_events.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_checkbox/cr_checkbox.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_events/cr_events.html">
<link rel="import" href="chrome://md-settings/pref_tracker/pref_tracker.html">
<dom-module id="cr-settings-checkbox">
@@ -9,9 +9,9 @@
<cr-events id="events"></cr-events>
<cr-settings-pref-tracker pref="[[pref]]"></cr-settings-pref-tracker>
- <cr-checkbox id="checkbox" checked="{{pref.value}}"
- disabled="[[pref.disabled]]">
- <span>{{label}}</span>
+ <cr-checkbox id="checkbox" checked="{{checked}}"
+ disabled="[[disabled]]">
+ <span class="main-label">{{label}}</span>
<span class="sub-label">{{subLabel}}</span>
</cr-checkbox>
</template>
diff --git a/chromium/chrome/browser/resources/settings/checkbox/checkbox.js b/chromium/chrome/browser/resources/settings/checkbox/checkbox.js
index 6e0860cf00b..d4bdeb4fc37 100644
--- a/chromium/chrome/browser/resources/settings/checkbox/checkbox.js
+++ b/chromium/chrome/browser/resources/settings/checkbox/checkbox.js
@@ -19,11 +19,22 @@ Polymer({
properties: {
/**
* The boolean preference object to control.
- * @type {?chrome.settingsPrivate.PrefObject}
+ * @type {?PrefObject}
*/
pref: {
type: Object,
- notify: true,
+ notify: true
+ },
+
+ inverted: {
+ type: Boolean,
+ value: false
+ },
+
+ checked: {
+ type: Boolean,
+ value: false,
+ observer: 'checkedChanged_'
},
label: {
@@ -37,8 +48,32 @@ Polymer({
},
},
+ observers: [
+ 'prefValueChanged_(pref.value)'
+ ],
+
/** @override */
ready: function() {
this.$.events.forward(this.$.checkbox, ['change']);
},
+
+ /** @private */
+ prefValueChanged_: function(prefValue) {
+ // prefValue is initially undefined when Polymer initializes pref.
+ if (prefValue !== undefined) {
+ this.checked = this.getNewValue_(prefValue);
+ }
+ },
+
+ /** @private */
+ checkedChanged_: function() {
+ if (this.pref) {
+ this.pref.value = this.getNewValue_(this.checked);
+ }
+ },
+
+ /** @private */
+ getNewValue_: function(val) {
+ return this.inverted ? !val : val;
+ }
});
diff --git a/chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html b/chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html
index f3c177efdb2..0fb7597a8df 100644
--- a/chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html
+++ b/chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html
@@ -1,7 +1,7 @@
<link rel="import" href="chrome://md-settings/checkbox/checkbox.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/iron-flex-layout/classes/iron-flex-layout.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
<dom-module id="cr-settings-date-time-page">
<link rel="import" type="css" href="date_time_page.css">
@@ -9,13 +9,13 @@
<template>
<paper-material class="layout veritcal">
<div class="horizontal layout center">
- <span class="time-zone-label" i18n-content="dateTimeTimeZoneLabel"></span>
+ <span class="time-zone-label" i18n-content="timeZone"></span>
</div>
- <cr-settings-checkbox
- pref="{{prefs.settings.clock.use_24hour_clock}}"
- i18n-values="label:dateTime24HourClockLabel">
+ <cr-settings-checkbox pref="{{prefs.settings.clock.use_24hour_clock}}"
+ i18n-values="label:use24HourClock">
</cr-settings-checkbox>
- <span id="setAutomatically" i18n-content="dateTimeAutomaticallySet"></span>
+ <span id="setAutomatically" i18n-content="dateTimeSetAutomatically">
+ </span>
</paper-material>
</template>
<script src="date_time_page.js"></script>
diff --git a/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html b/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html
index b270b5de5cc..dcecd14524b 100644
--- a/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html
+++ b/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html
@@ -1,9 +1,9 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/iron-flex-layout/classes/iron-flex-layout.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-input/paper-input.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-material/paper-material.html">
-<link rel="import" href="chrome://resources/cr_elements/v0_8/cr_button/cr_button.html">
-<link rel="import" href="chrome://resources/cr_elements/v0_8/cr_input/cr_input.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_button/cr_button.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_input/cr_input.html">
<link rel="import" href="chrome://md-settings/checkbox/checkbox.html">
<dom-module id="cr-settings-downloads-page">
@@ -13,19 +13,18 @@
<paper-material>
<div class="horizontal layout center">
<div class="layout horizontal center">
- <div id="locationLabel" i18n-content="downloadsLocationLabel"></div>
+ <div id="locationLabel" i18n-content="downloadLocation"></div>
<cr-input id="downloadsPath" floating-label="false"
- value="{{prefs.download.default_directory.value}}"
- readonly aria-labelledby="locationLabel">
+ value="{{prefs.download.default_directory.value}}"
+ readonly aria-labelledby="locationLabel">
</cr-input>
</div>
<cr-button id="changeDownloadsPath" on-click="selectDownloadLocation_"
- i18n-content="downloadsChangeLocationButton">
+ i18n-content="changeDownloadLocation">
</cr-button>
</div>
- <cr-settings-checkbox
- pref="{{prefs.download.prompt_for_download}}"
- i18n-values="label:downloadsPromptForDownloadLabel">
+ <cr-settings-checkbox pref="{{prefs.download.prompt_for_download}}"
+ i18n-values="label:promptForDownload">
</cr-settings-checkbox>
</paper-material>
</template>
diff --git a/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.js b/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.js
index c252bc58470..9451611ca4c 100644
--- a/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.js
+++ b/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.js
@@ -75,8 +75,6 @@ Polymer({
/** @private */
selectDownloadLocation_: function() {
- // TODO(orenb): Communicate with the C++ to actually display a folder
- // picker.
- this.$.downloadsPath.value = '/Downloads';
+ chrome.send('selectDownloadLocation');
},
});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page_style.html b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.css
index 19c8c8ee019..cf7a39455c6 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page_style.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.css
@@ -1,7 +1,10 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/core-style/core-style.html">
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
-<core-style id="internetDetailPageStyle">
+#outerDiv {
+ -webkit-margin-end: 40px;
+}
#networkIcon {
height: 32px;
@@ -23,16 +26,18 @@
color: green;
}
-#connectionButtonDiv {
- -webkit-margin-end: 30px;
-}
-
-#detailDiv {
+#infoDiv {
margin: 10px 0 0 45px;
}
-#detailDiv span {
+#infoDiv cr-checkbox {
margin-bottom: 10px;
}
-</core-style>
+#proxyDiv {
+ max-width: 500px;
+}
+
+cr-collapse {
+ margin: 10px;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html
index dd32da2924a..f5d811ba0cb 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html
@@ -1,49 +1,110 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_onc/cr_onc_data.html">
-<link rel="import" href="internet_detail_page_style.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_checkbox/cr_checkbox.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_collapse/cr_collapse.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_expand_button/cr_expand_button.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_network_icon/cr_network_icon.html">
+<link rel="import" href="network_ip_config.html">
+<link rel="import" href="network_nameservers.html">
+<link rel="import" href="network_property_list.html">
+<link rel="import" href="network_proxy.html">
-<polymer-element name="cr-settings-internet-detail-page">
+<dom-module id="cr-settings-internet-detail-page">
+ <link rel="import" type="css" href="chrome://md-settings/settings_page/settings_page.css">
+ <link rel="import" type="css" href="internet_detail_page.css">
<template>
- <link rel="stylesheet" href="chrome://md-settings/settings_page/settings_page.css">
- <core-style ref="internetDetailPageStyle"></core-style>
- <paper-shadow layout vertical cross-fade>
- <div vertical layout>
- <div id="titleDiv" horizontal layout>
- <div center horizontal layout flex>
- <cr-network-icon id="networkIcon" networkState="{{networkState}}">
+ <paper-material class="layout vertical">
+ <div id="outerDiv" class="layout vertical">
+ <div id="titleDiv" class="layout horizontal">
+ <div class="layout center horizontal flex">
+ <cr-network-icon id="networkIcon" network-state="[[networkState]]">
</cr-network-icon>
- <span id="networkName">{{getStateName_(networkState)}}</span>
- <span id="networkState"
- class="{{ {connected: isConnectedState_(networkState)} | tokenList }}">
- {{getStateText_(networkState)}}
- </span>
+ <span id="networkName">[[getStateName_(networkState)]]</span>
+ <span id="networkState" class="[[getStateClass_(networkState)]]"
+ >[[getStateText_(networkState)]]</span>
</div>
- <div center horizontal layout center-justified
- id="connectionButtonDiv">
- <cr-button hidden?="{{!canDisconnect_(networkState)}}"
- on-click="{{onDisconnectClicked_}}">
+ </div>
+
+ <div id="infoDiv" class="layout vertical">
+ <cr-checkbox id="autoconnect" checked="{{autoConnect}}"
+ hidden$="[[!showAutoConnect_(networkState)]]">
+ Automatically connect to this network
+ </cr-checkbox>
+
+ <network-property-list
+ fields="[[getInfoFields_(networkState)]]"
+ network-state="[[networkState]]">
+ </network-property-list>
+
+ <div class="layout vertical"
+ hidden$="[[!hasNetworkSection_(networkState)]]">
+ <network-ip-config editable
+ network-state="[[networkState]]"
+ on-changed="onIPConfigChanged_">
+ </network-ip-config>
+ <network-nameservers editable
+ network-state="[[networkState]]"
+ on-changed="onIPConfigChanged_">
+ </network-nameservers>
+ </div>
+
+ <div class="layout horizontal center">
+ <cr-button toggles active="{{advancedExpanded}}"
+ hidden$="[[!hasAdvancedOrDeviceFields_(networkState)]]">
+ Advanced
+ </cr-button>
+ <span class="flex"></span>
+ <cr-button hidden$="[[!canDisconnect_(networkState)]]"
+ on-click="onDisconnectClicked_">
Disconnect
</cr-button>
- <cr-button hidden?="{{!canConnect_(networkState)}}"
- on-click="{{onConnectClicked_}}">
+ <cr-button hidden$="[[!canConnect_(networkState)]]"
+ on-click="onConnectClicked_">
Connect
</cr-button>
</div>
- </div>
- <div id="detailDiv" vertical layout>
- <div vertical layout hidden?="{{!isConnectedState_(networkState)}}">
- <span>{{getProperty_(networkState, 'MacAddress')}}</span>
- </div>
- <div vertical layout hidden?="{{networkState.data.Type != 'WiFi'}}">
- <span>{{getProperty_(networkState, 'WiFi.Security')}}</span>
- <span>{{getProperty_(networkState, 'WiFi.SSID')}}</span>
- <span>{{getProperty_(networkState, 'WiFi.BSSID')}}</span>
- <span>{{getProperty_(networkState, 'WiFi.SignalStrength')}}</span>
- <span>{{getProperty_(networkState, 'WiFi.Frequency')}}</span>
+
+ <div id="advancedDiv" class="layout vertical"
+ hidden$="[[!hasAdvancedOrDeviceFields_(networkState)]]">
+ <cr-collapse opened="[[advancedExpanded]]">
+ <network-property-list
+ fields="[[getAdvancedFields_(networkState)]]"
+ network-state="[[networkState]]">
+ </network-property-list>
+
+ <div class="layout vertical"
+ hidden$="[[!hasNetworkSection_(networkState)]]">
+ <cr-button toggles active="{{proxyExpanded}}">
+ Proxy
+ </cr-button>
+ <cr-collapse opened="[[proxyExpanded]]">
+ <div id="proxyDiv" class="layout vertical flex">
+ <network-proxy editable
+ network-state="[[networkState]]"
+ on-changed="onProxyChanged_">
+ </network-proxy>
+ </div>
+ </cr-collapse>
+ </div>
+
+ <div class="layout vertical"
+ hidden$="[[!hasDeviceFields_(networkState)]]">
+ <cr-button toggles active="{{deviceExpanded}}">
+ Device
+ </cr-button>
+ <cr-collapse opened="[[deviceExpanded]]">
+ <network-property-list
+ fields="[[getDeviceFields_(networkState)]]"
+ network-state="[[networkState]]">
+ </network-property-list>
+ </cr-collapse>
+ </div>
+ </cr-collapse>
</div>
</div>
</div>
</paper-shadow>
</template>
<script src="internet_detail_page.js"></script>
-</polymer-element>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js
index 9e7d359a3a1..5ca940df7d9 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js
@@ -10,74 +10,98 @@
* @group Chrome Settings Elements
* @element cr-settings-internet-detail
*/
-(function() {
-/** @typedef {chrome.networkingPrivate.NetworkStateProperties} */
-var NetworkStateProperties;
+Polymer({
+ is: 'cr-settings-internet-detail-page',
-Polymer('cr-settings-internet-detail-page', {
- publish: {
+ properties: {
/**
* ID of the page.
- *
* @attribute PAGE_ID
* @const {string}
*/
- PAGE_ID: 'internet-detail',
+ PAGE_ID: {
+ type: String,
+ value: 'internet-detail',
+ readOnly: true
+ },
/**
* Route for the page.
- *
- * @attribute route
- * @type {string}
- * @default ''
*/
- route: '',
+ route: {
+ type: String,
+ value: ''
+ },
/**
* Whether the page is a subpage.
- *
- * @attribute subpage
- * @type {boolean}
- * @default false
*/
- subpage: false,
+ subpage: {
+ type: Boolean,
+ value: false
+ },
/**
* Title for the page header and navigation menu.
- *
- * @attribute pageTitle
- * @type {string}
*/
- pageTitle: loadTimeData.getString('internetDetailPageTitle'),
+ pageTitle: {
+ type: String,
+ value: function() {
+ return loadTimeData.getString('internetDetailPageTitle');
+ }
+ },
+
+ /**
+ * Reflects the selected settings page. We use this to extract guid from
+ * window.location.href when this page is navigated to. This is a
+ * workaround for a bug in the 1.0 version of more-routing where
+ * selected-params='{{params}}' is not correctly setting params in
+ * settings_main.html. TODO(stevenjb): Remove once more-routing is fixed.
+ */
+ selectedPage: {
+ type: String,
+ value: '',
+ observer: 'selectedPageChanged_'
+ },
/**
* Name of the 'core-icon' to show. TODO(stevenjb): Update this with the
- * icon for the network.
- *
- * @attribute icon
- * @type {string}
- * @default 'settings-ethernet'
+ * icon for the active internet connection.
*/
- icon: 'settings-ethernet',
+ icon: {
+ type: String,
+ value: 'settings-ethernet',
+ readOnly: true
+ },
/**
* The network GUID to display details for.
- *
- * @attribute guid
- * @type {string}
- * @default ''
*/
- guid: '',
+ guid: {
+ type: String,
+ value: '',
+ observer: 'guidChanged_',
+ },
/**
* The current state for the network matching |guid|.
- *
- * @attribute networkState
- * @type {?CrOncDataElement}
- * @default null
+ * @type {?CrOnc.NetworkStateProperties}
+ */
+ networkState: {
+ type: Object,
+ value: null,
+ observer: 'networkStateChanged_'
+ },
+
+ /**
+ * The network AutoConnect state.
*/
- networkState: null,
+ autoConnect: {
+ type: Boolean,
+ value: false,
+ observer: 'autoConnectChanged_'
+ },
},
/**
@@ -103,11 +127,51 @@ Polymer('cr-settings-internet-detail-page', {
/**
* Polymer guid changed method.
*/
- guidChanged: function() {
+ guidChanged_: function() {
+ if (!this.guid)
+ return;
this.getNetworkDetails_();
},
/**
+ * Polymer guid changed method. TODO(stevenjb): Remove, see TODO above.
+ */
+ selectedPageChanged_: function() {
+ if ((this.selectedPage && this.selectedPage.PAGE_ID) != this.PAGE_ID)
+ return;
+ var href = window.location.href;
+ var idx = href.lastIndexOf('/');
+ var guid = href.slice(idx + 1);
+ this.guid = guid;
+ },
+
+ /**
+ * Polymer networkState changed method.
+ */
+ networkStateChanged_: function() {
+ if (!this.networkState)
+ return;
+ console.debug('DetailPage.networkStateChanged:');
+ console.debug(this.networkState);
+ // Update autoConnect if it has changed. Default value is false.
+ var autoConnect =
+ CrOnc.getActiveTypeValue(this.networkState, 'AutoConnect') || false;
+ if (autoConnect != this.autoConnect)
+ this.autoConnect = autoConnect;
+ },
+
+ /**
+ * Polymer autoConnect changed method.
+ */
+ autoConnectChanged_: function() {
+ if (!this.networkState || !this.guid)
+ return;
+ var onc = { Type: this.networkState.Type };
+ CrOnc.setTypeProperty(onc, 'AutoConnect', this.autoConnect);
+ this.setNetworkProperties_(onc);
+ },
+
+ /**
* networkingPrivate.onNetworksChanged event callback.
* @param {!Array<string>} networkIds The list of changed network GUIDs.
* @private
@@ -130,71 +194,88 @@ Polymer('cr-settings-internet-detail-page', {
/**
* networkingPrivate.getProperties callback.
- * @param {!NetworkStateProperties} state The network state properties.
+ * @param {!CrOnc.NetworkStateProperties} state The network state properties.
* @private
*/
getPropertiesCallback_: function(state) {
- this.networkState = CrOncDataElement.create(state);
+ console.debug('DetailPage.getPropertiesCallback:');
+ this.networkState = state;
+ },
+
+ /**
+ * @param {!chrome.networkingPrivate.NetworkConfigProperties} onc The ONC
+ * network properties.
+ * @private
+ */
+ setNetworkProperties_: function(onc) {
+ console.debug('DetailPage.networkingPrivate.setProperties:');
+ console.debug(onc);
+ chrome.networkingPrivate.setProperties(this.guid, onc, function() {
+ if (chrome.runtime.lastError) {
+ console.debug('networkingPrivate.setProperties error:');
+ console.debug(chrome.runtime.lastError);
+ // An error typically indicates invalid input; request the properties
+ // to update any invalid fields.
+ this.getNetworkDetails_();
+ }
+ }.bind(this));
},
/**
- * @param {?CrOncDataElement} state The network state properties.
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
* @return {string} The text to display for the network name.
* @private
*/
getStateName_: function(state) {
- return state && state.data.Name;
+ return (state && state.Name) || '';
},
/**
- * @param {?CrOncDataElement} state The network state properties.
- * @return {string} The text to display for the network connection state.
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {string} The text to display for the network name.
* @private
*/
- getStateText_: function(state) {
- // TODO(stevenjb): Localize.
- return state && state.data.ConnectionState;
+ getStateClass_: function(state) {
+ return this.isConnectedState_(state) ? 'connected' : '';
},
/**
- * @param {?CrOncDataElement} state The network state properties.
- * @param {string} property The property name.
- * @return {string} The text to display for the property, including the label.
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {string} The text to display for the network connection state.
* @private
*/
- getProperty_: function(state, property) {
- if (!state)
- return '';
+ getStateText_: function(state) {
// TODO(stevenjb): Localize.
- var value = state.getProperty(property) || '';
- return property + ': ' + value;
+ return (state && state.ConnectionState) || '';
},
/**
- * @param {?CrOncDataElement} state The network state properties.
- * @return {boolean} Whether or not the state is connected.
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {boolean} True if the state is connected.
* @private
*/
isConnectedState_: function(state) {
- return state && state.connected();
+ return state && state.ConnectionState == CrOnc.ConnectionState.CONNECTED;
},
/**
- * @param {?CrOncDataElement} state The network state properties.
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
* @return {boolean} Whether or not the network can be connected.
* @private
*/
canConnect_: function(state) {
- return state && state.data.Type != 'Ethernet' && state.disconnected();
+ return state && state.Type != 'Ethernet' &&
+ state.ConnectionState == CrOnc.ConnectionState.NOT_CONNECTED;
},
/**
- * @param {?CrOncDataElement} state The network state properties.
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
* @return {boolean} Whether or not the network can be disconnected.
* @private
*/
canDisconnect_: function(state) {
- return state && state.data.Type != 'Ethernet' && !state.disconnected();
+ return state && state.Type != 'Ethernet' &&
+ state.ConnectionState != CrOnc.ConnectionState.NOT_CONNECTED;
},
/**
@@ -212,5 +293,201 @@ Polymer('cr-settings-internet-detail-page', {
onDisconnectClicked_: function() {
chrome.networkingPrivate.startDisconnect(this.guid);
},
+
+ /**
+ * Event triggered when the IP Config or NameServers element changes.
+ * @param {!{detail: { field: string,
+ * value: string|CrOnc.IPConfigProperties}}} event
+ * The network-ip-config or network-nameservers changed event.
+ * @private
+ */
+ onIPConfigChanged_: function(event) {
+ if (!this.networkState)
+ return;
+
+ var field = event.detail.field;
+ var value = event.detail.value;
+ console.debug('DetailPage.IPConfigChanged: ' + field);
+ console.debug(value);
+
+ // Set just the IP Config properties that need to change.
+ var onc = {};
+ if (field == 'IPAddressConfigType') {
+ if (onc.IPAddressConfigType == value)
+ return;
+ onc.IPAddressConfigType = value;
+ } else if (field == 'NameServersConfigType') {
+ if (onc.NameServersConfigType == value)
+ return;
+ onc.NameServersConfigType = value;
+ } else if (field == 'StaticIPConfig') {
+ if (onc.IPAddressConfigType == 'Static' && onc.StaticIPConfig) {
+ var matches = true;
+ for (var key in value) {
+ if (onc.StaticIPConfig[key] != value[key]) {
+ matches = false;
+ break;
+ }
+ }
+ if (matches)
+ return;
+ }
+ onc.IPAddressConfigType = 'Static';
+ onc.StaticIPConfig = onc.StaticIPConfig || {};
+ for (key in value)
+ onc.StaticIPConfig[key] = value[key];
+ } else if (field == 'NameServers') {
+ if (onc.NameServersConfigType == 'Static' && onc.StaticIPConfig &&
+ onc.StaticIPConfig.NameServers == value) {
+ return;
+ }
+ onc.NameServersConfigType = 'Static';
+ onc.StaticIPConfig = onc.StaticIPConfig || {};
+ onc.StaticIPConfig.NameServers = value;
+ } else {
+ console.error('Unexpected changed field: ' + field);
+ return;
+ }
+ // setValidStaticIPConfig will fill in any other properties from
+ // networkState. This is necessary since we update IP Address and
+ // NameServers independently.
+ CrOnc.setValidStaticIPConfig(onc, this.networkState);
+ this.setNetworkProperties_(onc);
+ },
+
+ /**
+ * Event triggered when the Proxy configuration element changes.
+ * @param {!{detail: { field: string, value: CrOnc.ProxySettings}}} event
+ * The network-proxy changed event.
+ * @private
+ */
+ onProxyChanged_: function(event) {
+ var field = event.detail.field;
+ var value = event.detail.value;
+ console.debug('DetailPage.ProxyChanged: ' + field);
+ console.debug(value);
+ if (field != 'ProxySettings')
+ return;
+ var onc = { ProxySettings: value };
+ this.setNetworkProperties_(onc);
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {boolean} True if the AutoConnect checkbox should be shown.
+ * @private
+ */
+ showAutoConnect_: function(state) {
+ return state && state.Type != 'Ethernet';
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {!Array<string>} The fields to display in the info section.
+ * @private
+ */
+ getInfoFields_: function(state) {
+ /** @type {!Array<string>} */ var fields = [];
+ if (!state)
+ return fields;
+ if (state.Type == 'Cellular') {
+ fields = fields.concat([
+ 'Cellular.ActivationState',
+ 'Cellular.RoamingState',
+ 'RestrictedConnectivity',
+ 'Cellular.ServingOperator.Name',
+ ]);
+ }
+ return fields;
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {!Array<string>} The fields to display in the Advanced section.
+ * @private
+ */
+ getAdvancedFields_: function(state) {
+ /** @type {!Array<string>} */ var fields = [];
+ if (!state)
+ return fields;
+ fields.push('MacAddress');
+ if (state.Type == 'Cellular') {
+ fields = fields.concat([
+ 'Cellular.Carrier',
+ 'Cellular.Family',
+ 'Cellular.NetworkTechnology',
+ 'Cellular.ServingOperator.Code'
+ ]);
+ }
+
+ if (state.Type == 'WiFi') {
+ fields = fields.concat([
+ 'WiFi.SSID',
+ 'WiFi.BSSID',
+ 'WiFi.Security',
+ 'WiFi.SignalStrength',
+ 'WiFi.Frequency'
+ ]);
+ }
+ return fields;
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {!Array<string>} The fields to display in the device section.
+ * @private
+ */
+ getDeviceFields_: function(state) {
+ /** @type {!Array<string>} */ var fields = [];
+ if (!state)
+ return fields;
+ if (state.Type == 'Cellular') {
+ fields = fields.concat([
+ 'Cellular.HomeProvider.Name',
+ 'Cellular.HomeProvider.Country',
+ 'Cellular.HomeProvider.Code',
+ 'Cellular.Manufacturer',
+ 'Cellular.ModelID',
+ 'Cellular.FirmwareRevision',
+ 'Cellular.HardwareRevision',
+ 'Cellular.ESN',
+ 'Cellular.ICCID',
+ 'Cellular.IMEI',
+ 'Cellular.IMSI',
+ 'Cellular.MDN',
+ 'Cellular.MEID',
+ 'Cellular.MIN',
+ 'Cellular.PRLVersion',
+ ]);
+ }
+ return fields;
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {boolean} True if there are any advanced fields to display.
+ * @private
+ */
+ hasAdvancedOrDeviceFields_: function(state) {
+ return this.getAdvancedFields_(state).length > 0 || this.hasDeviceFields_();
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {boolean} True if there are any device fields to display.
+ * @private
+ */
+ hasDeviceFields_: function(state) {
+ var fields = this.getDeviceFields_(state);
+ return fields.length > 0;
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @return {boolean} True if the network section should be shown.
+ * @private
+ */
+ hasNetworkSection_: function(state) {
+ return state && state.Type != 'VPN';
+ }
});
-})();
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_page.html b/chromium/chrome/browser/resources/settings/internet_page/internet_page.html
index 0b1b285cff4..284dd4c88a0 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_page.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_page.html
@@ -1,12 +1,12 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<link rel="import" href="network_summary.html">
-<polymer-element name="cr-settings-internet-page">
+<dom-module id="cr-settings-internet-page">
+ <link rel="import" type="css" href="chrome://md-settings/settings_page/settings_page.css">
<template>
- <link rel="stylesheet" href="chrome://md-settings/settings_page/settings_page.css">
- <paper-shadow layout vertical cross-fade>
- <cr-network-summary></cr-network-summary>
- </paper-shadow>
+ <paper-material class="layout vertical">
+ <network-summary></network-summary>
+ </paper-material>
</template>
<script src="internet_page.js"></script>
-</polymer-element>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_page.js b/chromium/chrome/browser/resources/settings/internet_page/internet_page.js
index 6c3c8721dcc..51740f36cd5 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_page.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_page.js
@@ -10,7 +10,7 @@
* Example:
*
* <core-animated-pages>
- * <cr-settings-internet-page prefs="{{prefs}}">
+ * <cr-settings-internet-page prefs='{{prefs}}'>
* </cr-settings-internet-page>
* ... other pages ...
* </core-animated-pages>
@@ -18,50 +18,52 @@
* @group Chrome Settings Elements
* @element cr-settings-internet-page
*/
-Polymer('cr-settings-internet-page', {
- publish: {
+Polymer({
+ is: 'cr-settings-internet-page',
+
+ properties: {
/**
* ID of the page.
- *
- * @attribute PAGE_ID
- * @const {string}
*/
- PAGE_ID: 'internet',
+ PAGE_ID: {
+ type: String,
+ value: 'internet',
+ readOnly: true
+ },
/**
* Route for the page.
- *
- * @attribute route
- * @type {string}
- * @default ''
*/
- route: '',
+ route: {
+ type: String,
+ value: ''
+ },
/**
* Whether the page is a subpage.
- *
- * @attribute subpage
- * @type {boolean}
- * @default false
*/
- subpage: false,
+ subpage: {
+ type: Boolean,
+ value: false,
+ readOnly: true
+ },
/**
* Title for the page header and navigation menu.
- *
- * @attribute pageTitle
- * @type {string}
*/
- pageTitle: loadTimeData.getString('internetPageTitle'),
+ pageTitle: {
+ type: String,
+ value: function() { return loadTimeData.getString('internetPageTitle'); }
+ },
/**
* Name of the 'core-icon' to show. TODO(stevenjb): Update this with the
* icon for the active internet connection.
- *
- * @attribute icon
- * @type {string}
- * @default 'settings-ethernet'
*/
- icon: 'settings-ethernet',
+ icon: {
+ type: String,
+ value: 'settings-ethernet',
+ readOnly: true
+ },
},
});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.css b/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.css
new file mode 100644
index 00000000000..ef0dd9b8eb5
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.css
@@ -0,0 +1,11 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+cr-checkbox {
+ margin-bottom: 10px;
+}
+
+network-property-list {
+ margin-left: 28px;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.html b/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.html
new file mode 100644
index 00000000000..164418f1ce1
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.html
@@ -0,0 +1,21 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_checkbox/cr_checkbox.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
+<link rel="import" href="network_property_list.html">
+
+<dom-module id="network-ip-config">
+ <link rel="import" type="css" href="network_ip_config.css">
+ <template>
+ <div id="outer" class="layout vertical">
+ <cr-checkbox checked="{{automatic}}" disabled="[[!editable]]">
+ Configure IP Address Automatically
+ </cr-checkbox>
+ <network-property-list
+ fields="[[ipConfigFields_]]" network-state="[[ipConfig]]"
+ edit-field-types="[[getIPEditFields_(ipConfig, editable, automatic)]]"
+ on-changed="onIPChanged_">
+ </network-property-list>
+ </div>
+ </template>
+ <script src="network_ip_config.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.js b/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.js
new file mode 100644
index 00000000000..82bc34ca0b9
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_ip_config.js
@@ -0,0 +1,207 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Polymer element for displaying the IP Config properties for
+ * a network state. TODO(stevenjb): Allow editing of static IP configurations
+ * when 'editable' is true.
+ */
+Polymer({
+ is: 'network-ip-config',
+
+ properties: {
+ /**
+ * The current state containing the IP Config properties to display and
+ * modify.
+ * @type {?CrOnc.NetworkStateProperties}
+ */
+ networkState: {
+ type: Object,
+ value: null,
+ observer: 'networkStateChanged_'
+ },
+
+ /**
+ * Whether or not the IP Address can be edited.
+ * TODO(stevenjb): Implement editing.
+ */
+ editable: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * State of 'Configure IP Addresses Automatically'.
+ */
+ automatic: {
+ type: Boolean,
+ value: false,
+ observer: 'automaticChanged_'
+ },
+
+ /**
+ * The currently visible IP Config property dictionary. The 'RoutingPrefix'
+ * property is a human-readable mask instead of a prefix length.
+ * @type {{
+ * ipv4: !CrOnc.IPConfigUIProperties,
+ * ipv6: !CrOnc.IPConfigUIProperties
+ * }}
+ */
+ ipConfig: {
+ type: Object,
+ value: function() { return {ipv4: {}, ipv6: {}}; }
+ },
+
+ /**
+ * Array of properties to pass to the property list.
+ */
+ ipConfigFields_: {
+ type: Array,
+ value: function() {
+ return [
+ 'ipv4.IPAddress',
+ 'ipv4.RoutingPrefix',
+ 'ipv4.Gateway',
+ 'ipv6.IPAddress'
+ ];
+ },
+ readOnly: true
+ },
+ },
+
+ /**
+ * Saved static IP configuration properties when switching to 'automatic'.
+ * @type {?CrOnc.IPConfigUIProperties}
+ */
+ savedStaticIp_: null,
+
+ /**
+ * Polymer networkState changed method.
+ */
+ networkStateChanged_: function(newValue, oldValue) {
+ if (this.networkState === undefined || this.ipConfig === undefined)
+ return;
+
+ if (newValue.GUID != (oldValue && oldValue.GUID))
+ this.savedStaticIp_ = null;
+
+ // Update the 'automatic' property.
+ var ipConfigType =
+ CrOnc.getActiveValue(this.networkState, 'IPAddressConfigType');
+ this.automatic = (ipConfigType != CrOnc.IPConfigType.STATIC);
+
+ // Update the 'ipConfig' property.
+ var ipv4 = CrOnc.getIPConfigForType(this.networkState, CrOnc.IPType.IPV4);
+ var ipv6 = CrOnc.getIPConfigForType(this.networkState, CrOnc.IPType.IPV6);
+ this.ipConfig = {
+ ipv4: this.getIPConfigUIProperties_(ipv4),
+ ipv6: this.getIPConfigUIProperties_(ipv6)
+ };
+ },
+
+ /**
+ * Polymer automatic changed method.
+ */
+ automaticChanged_: function() {
+ if (this.automatic === undefined || this.ipConfig === undefined)
+ return;
+ console.debug('IP.automaticChanged: ' + this.automatic);
+ if (this.automatic || !this.savedStaticIp_) {
+ // Save the static IP configuration when switching to automatic.
+ this.savedStaticIp_ = this.ipConfig.ipv4;
+ this.fire('changed', {
+ field: 'IPAddressConfigType',
+ value: this.automatic ? 'DHCP' : 'Static'
+ });
+ } else {
+ // Restore the saved static IP configuration.
+ var ipconfig = {
+ Gateway: this.savedStaticIp_.Gateway,
+ IPAddress: this.savedStaticIp_.IPAddress,
+ RoutingPrefix: this.savedStaticIp_.RoutingPrefix,
+ Type: this.savedStaticIp_.Type
+ };
+ this.fire('changed', {
+ field: 'StaticIPConfig',
+ value: this.getIPConfigProperties_(ipconfig)
+ });
+ }
+ },
+
+ /**
+ * @param {?CrOnc.IPConfigProperties} ipconfig The IP Config properties.
+ * @return {!CrOnc.IPConfigUIProperties} A new IPConfigUIProperties object
+ * with RoutingPrefix expressed as a string mask instead of a prefix
+ * length. Returns an empty object if |ipconfig| is undefined.
+ * @private
+ */
+ getIPConfigUIProperties_: function(ipconfig) {
+ var result = {};
+ if (!ipconfig)
+ return result;
+ for (var key in ipconfig) {
+ var value = ipconfig[key];
+ if (key == 'RoutingPrefix')
+ result.RoutingPrefix = CrOnc.getRoutingPrefixAsNetmask(value);
+ else
+ result[key] = value;
+ }
+ return result;
+ },
+
+ /**
+ * @param {!CrOnc.IPConfigUIProperties} ipconfig The IP Config UI properties.
+ * @return {!CrOnc.IPConfigProperties} A new IPConfigProperties object with
+ * RoutingPrefix expressed as a a prefix length.
+ * @private
+ */
+ getIPConfigProperties_: function(ipconfig) {
+ var result = {};
+ for (var key in ipconfig) {
+ var value = ipconfig[key];
+ if (key == 'RoutingPrefix')
+ result.RoutingPrefix = CrOnc.getRoutingPrefixAsLength(value);
+ else
+ result[key] = value;
+ }
+ return result;
+ },
+
+ /**
+ * @param {!CrOnc.IPConfigUIProperties} ipConfig The IP Config properties.
+ * @param {boolean} editable The editable property.
+ * @param {boolean} automatic The automatic property.
+ * @return {Object} An object with the edit type for each editable field.
+ * @private
+ */
+ getIPEditFields_: function(ipConfig, editable, automatic) {
+ if (!editable || automatic)
+ return {};
+ return {
+ 'ipv4.IPAddress': 'String',
+ 'ipv4.RoutingPrefix': 'String',
+ 'ipv4.Gateway': 'String'
+ };
+ },
+
+ /**
+ * Event triggered when the network property list changes.
+ * @param {!{detail: { field: string, value: string}}} event The
+ * network-property-list changed event.
+ * @private
+ */
+ onIPChanged_: function(event) {
+ event.stopPropagation();
+
+ var field = event.detail.field;
+ var value = event.detail.value;
+ console.debug('IP.onIPChanged: ' + field + ' -> ' + value);
+ // Note: |field| includes the 'ipv4.' prefix.
+ this.set('ipConfig.' + field, value);
+ this.fire('changed', {
+ field: 'StaticIPConfig',
+ value: this.getIPConfigProperties_(this.ipConfig.ipv4)
+ });
+ },
+});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_list.css b/chromium/chrome/browser/resources/settings/internet_page/network_list.css
new file mode 100644
index 00000000000..b4d5de05e8f
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_list.css
@@ -0,0 +1,15 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+#container {
+ border: 1px solid;
+ max-height: 1000px;
+ min-height: 50px;
+ overflow-y: auto;
+}
+
+/* Note: the 'flex' attribute on core-list doesn't work as expected. */
+#networkList {
+ flex: 1;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_list.html b/chromium/chrome/browser/resources/settings/internet_page/network_list.html
new file mode 100644
index 00000000000..6e42c5dd334
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_list.html
@@ -0,0 +1,20 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_collapse/cr_collapse.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
+<link rel="import" href="network_list_item.html">
+
+<dom-module id="network-list">
+ <link rel="import" type="css" href="network_list.css">
+ <template>
+ <cr-collapse on-core-resize="onResized_" opened="{{opened}}">
+ <div id="container" class="layout vertical flex">
+ <template is="dom-repeat" items="[[networks]]">
+ <network-list-item network-state="[[item]]" is-list-item
+ on-click="onSelected_">
+ </network-list-item>
+ </template>
+ </div>
+ </cr-collapse>
+ </template>
+ <script src="network_list.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_list.js b/chromium/chrome/browser/resources/settings/internet_page/network_list.js
new file mode 100644
index 00000000000..f025903ff04
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_list.js
@@ -0,0 +1,73 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Polymer element for displaying a collapsable list of networks.
+ */
+
+(function() {
+
+/**
+ * Polymer class definition for 'network-list'.
+ * TODO(stevenjb): Update with iron-list(?) once implemented in Polymer 1.0.
+ * @element network-list
+ */
+Polymer({
+ is: 'network-list',
+
+ properties: {
+ /**
+ * The maximum height in pixels for the list.
+ */
+ maxHeight: {
+ type: Number,
+ value: 1000,
+ observer: 'maxHeightChanged_'
+ },
+
+ /**
+ * The list of network state properties for the items to display.
+ *
+ * @type {!Array<!CrOnc.NetworkStateProperties>}
+ */
+ networks: {
+ type: Array,
+ value: function() { return []; }
+ },
+
+ /**
+ * True if the list is opened.
+ */
+ opened: {
+ type: Boolean,
+ value: true
+ }
+ },
+
+ /**
+ * Polymer maxHeight changed method.
+ */
+ maxHeightChanged_: function() {
+ this.$.container.style.maxHeight = this.maxHeight + 'px';
+ },
+
+ /**
+ * Called when the cr-collapse element changes size (i.e. is opened).
+ * @private
+ */
+ onResized_: function() {
+ if (this.opened)
+ this.$.networkList.updateSize();
+ },
+
+ /**
+ * Event triggered when a list item is selected.
+ * @param {!{target: !NetworkListItem}} event
+ * @private
+ */
+ onSelected_: function(event) {
+ this.fire('selected', event.model.item);
+ }
+});
+})();
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_list_item.css b/chromium/chrome/browser/resources/settings/internet_page/network_list_item.css
new file mode 100644
index 00000000000..f5f9e5afce4
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_list_item.css
@@ -0,0 +1,59 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+span {
+ cursor: pointer;
+}
+
+#divOuter {
+ border-style: none;
+ display: flex;
+ flex-direction: row;
+ margin: 0;
+ padding: 4px;
+}
+
+#divOuter.list-item:hover {
+ background-color: lightgrey;
+}
+
+#divIcon {
+ display: flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ justify-content: center;
+}
+
+#icon {
+ height: 32px;
+ width: 32px;
+}
+
+#divDetail {
+ display: flex;
+ flex: 1 0 auto;
+ flex-direction: row;
+}
+
+#divText {
+ display: flex;
+ flex: 1 0 auto;
+ flex-direction: column;
+ justify-content: center;
+}
+
+#networkName {
+ -webkit-margin-start: 8px;
+ font-size: 16px;
+}
+
+#networkStateText {
+ -webkit-margin-start: 8px;
+ color: grey;
+ font-size: 14px;
+}
+
+.connected {
+ font-weight: bold;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_list_item.html b/chromium/chrome/browser/resources/settings/internet_page/network_list_item.html
new file mode 100644
index 00000000000..0cbee66831d
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_list_item.html
@@ -0,0 +1,21 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_network_icon/cr_network_icon.html">
+
+<dom-module id="network-list-item">
+ <link rel="import" type="css" href="network_list_item.css">
+ <template>
+ <div id="divOuter" class$="[[isListItemClass_(isListItem)]]">
+ <div id="divIcon">
+ <cr-network-icon id="icon" isListItem="[[isListItem]]"
+ network-state="[[networkState]]">
+ </cr-network-icon>
+ </div>
+ <div id="divText">
+ <span id="networkName"></span>
+ <span id="networkStateText" hidden$="[[isListItem]]"></span>
+ </div>
+ </div>
+ </template>
+ <script src="network_list_item.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_list_item.js b/chromium/chrome/browser/resources/settings/internet_page/network_list_item.js
new file mode 100644
index 00000000000..491931761f6
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_list_item.js
@@ -0,0 +1,115 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Polymer element for displaying information about a network
+ * in a list or summary based on ONC state properties.
+ */
+(function() {
+
+/**
+ * TODO(stevenjb): Replace getText with a proper localization function that
+ * handles string substitution.
+ * Performs argument substitution, replacing %1, %2, etc in 'text' with
+ * corresponding entries in |args|.
+ * @param {string} text The string to perform the substitution on.
+ * @param {?Array<string>} args The arguments to replace %1, %2, etc with.
+ */
+function getText(text, args) {
+ var res = text;
+ if (!args)
+ return res;
+ for (var i = 0; i < args.length; ++i) {
+ var key = '%' + (i + 1);
+ res = res.replace(key, args[i]);
+ }
+ return res;
+}
+
+/**
+ * Returns the appropriate connection state text.
+ * @param {string} state The connection state.
+ * @param {string} name The name of the network.
+ */
+function getConnectionStateText(state, name) {
+ if (state == 'Connected')
+ return getText('Connected to %1', [name]);
+ if (state == 'Connecting')
+ return getText('Connecting to %1...', [name]);
+ if (state == 'NotConnected')
+ return getText('Not Connected');
+ return getText(state);
+};
+
+/**
+ * Polymer class definition for 'network-list-item'.
+ * @element network-list-item
+ */
+Polymer({
+ is: 'network-list-item',
+
+ properties: {
+ /**
+ * The ONC data properties used to display the list item.
+ *
+ * @type {?CrOnc.NetworkStateProperties}
+ */
+ networkState: {
+ type: Object,
+ value: null,
+ observer: 'networkStateChanged_'
+ },
+
+ /**
+ * If true, the element is part of a list of networks and only displays
+ * the network icon and name. Otherwise the element is assumed to be a
+ * stand-alone item (e.g. as part of a summary) and displays the name
+ * of the network type plus the network name and connection state.
+ */
+ isListItem: {
+ type: Boolean,
+ value: false,
+ observer: 'networkStateChanged_'
+ },
+ },
+
+ /**
+ * Polymer networkState changed method. Updates the element based on the
+ * network state.
+ */
+ networkStateChanged_: function() {
+ if (!this.networkState)
+ return;
+
+ var network = this.networkState;
+ var isDisconnected =
+ network.ConnectionState == CrOnc.ConnectionState.NOT_CONNECTED;
+ if (this.isListItem) {
+ var name = getText(network.Name) || getText(network.Type);
+ this.$.networkName.textContent = name;
+ this.$.networkName.classList.toggle('connected', !isDisconnected);
+ } else if (network.Name && network.ConnectionState) {
+ this.$.networkName.textContent = getText(network.Type);
+ this.$.networkName.classList.toggle('connected', false);
+ this.$.networkStateText.textContent =
+ getConnectionStateText(network.ConnectionState, network.Name);
+ this.$.networkStateText.classList.toggle('connected', !isDisconnected);
+ } else {
+ this.$.networkName.textContent = getText(network.Type);
+ this.$.networkName.classList.toggle('connected', false);
+ this.$.networkStateText.textContent = getText('Disabled');
+ this.$.networkStateText.classList.toggle('connected', false);
+ }
+ },
+
+ /**
+ * @param {string} isListItem The value of this.isListItem.
+ * @return {string} The class name based on isListItem.
+ * @private
+ */
+ isListItemClass_: function(isListItem) {
+ return isListItem ? 'list-item' : '';
+ }
+});
+})();
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.css b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.css
new file mode 100644
index 00000000000..25282595616
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.css
@@ -0,0 +1,14 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+select {
+ font-size: 16px;
+ margin-bottom: 10px;
+ margin-top: 10px;
+ padding: 5px;
+}
+
+paper-input-container {
+ margin: -10px 5px 0 5px;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.html b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.html
new file mode 100644
index 00000000000..9a2476be991
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.html
@@ -0,0 +1,44 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
+
+<dom-module id="network-nameservers">
+ <link rel="import" type="css" href="network_nameservers.css">
+ <template>
+ <div id="outer" class="layout vertical">
+ <div>
+ <!-- TODO(stevenjb): Use cr-dropdown-menu once available. -->
+ <select id="type" on-change="onTypeChanged_">
+ <template is="dom-repeat" items="[[nameserverTypeNames_]]">
+ <option>[[nameserverTypeDesc_(item)]]</option>
+ </template>
+ </select>
+ </div>
+ <div class="layout horizontal">
+ <paper-input-container no-label-float>
+ <input id="nameserver0" is="iron-input" value="[[nameservers.0]]"
+ disabled="[[!canEdit_(editable, nameserversType)]]"
+ on-blur="onValueChanged_">
+ </paper-input-container>
+ <paper-input-container no-label-float>
+ <input id="nameserver1" is="iron-input" value="[[nameservers.1]]"
+ disabled="[[!canEdit_(editable, nameserversType)]]"
+ on-blur="onValueChanged_">
+ </paper-input-container>
+ </div>
+ <div class="layout horizontal">
+ <paper-input-container no-label-float>
+ <input id="nameserver2" is="iron-input" value="[[nameservers.2]]"
+ disabled="[[!canEdit_(editable, nameserversType)]]"
+ on-blur="onValueChanged_">
+ </paper-input-container>
+ <paper-input-container no-label-float>
+ <input id="nameserver3" is="iron-input" value="[[nameservers.3]]"
+ disabled="[[!canEdit_(editable, nameserversType)]]"
+ on-blur="onValueChanged_">
+ </paper-input-container>
+ </div>
+ </div>
+ </template>
+ <script src="network_nameservers.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.js b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.js
new file mode 100644
index 00000000000..7e097868ccb
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_nameservers.js
@@ -0,0 +1,205 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Polymer element for displaying network nameserver options.
+ */
+Polymer({
+ is: 'network-nameservers',
+
+ properties: {
+ /**
+ * The current state containing the IP Config properties to display and
+ * modify.
+ * @type {?CrOnc.NetworkStateProperties}
+ */
+ networkState: {
+ type: Object,
+ value: null,
+ observer: 'networkStateChanged_'
+ },
+
+ /**
+ * Whether or not the nameservers can be edited.
+ */
+ editable: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * Array of nameserver addresses stored as strings.
+ * @type {!Array<string>}
+ */
+ nameservers: {
+ type: Array,
+ value: function() { return []; }
+ },
+
+ /**
+ * The selected nameserver type.
+ */
+ nameserversType: {
+ type: String,
+ value: 'automatic'
+ },
+
+ /**
+ * Array of nameserver types.
+ */
+ nameserverTypeNames_: {
+ type: Array,
+ value: ['automatic', 'google', 'custom'],
+ readOnly: true
+ },
+ },
+
+ /** @const */ GoogleNameservers: ['8.8.4.4', '8.8.8.8'],
+
+ /**
+ * Saved nameservers when switching to 'automatic'.
+ * @type {!Array<string>}
+ */
+ savedNameservers_: [],
+
+ /**
+ * Polymer networkState changed method.
+ */
+ networkStateChanged_: function(newValue, oldValue) {
+ if (!this.networkState)
+ return;
+
+ if (!oldValue || newValue.GUID != oldValue.GUID)
+ this.savedNameservers_ = [];
+
+ // Update the 'nameservers' property.
+ var nameservers = [];
+ var ipv4 = CrOnc.getIPConfigForType(this.networkState, CrOnc.IPType.IPV4);
+ if (ipv4 && ipv4.NameServers)
+ nameservers = ipv4.NameServers;
+
+ // Update the 'nameserversType' property.
+ var configType =
+ CrOnc.getActiveValue(this.networkState, 'NameServersConfigType');
+ var type;
+ if (configType == 'Static') {
+ if (nameservers.join(',') == this.GoogleNameservers.join(','))
+ type = 'google';
+ else
+ type = 'custom';
+ } else {
+ type = 'automatic';
+ }
+ this.nameserversType = type;
+ this.$$('#type').selectedIndex = this.getSelectedIndex_(type);
+
+ this.nameservers = nameservers;
+ },
+
+ /**
+ * @param {string} nameserversType The nameservers type.
+ * @return {number} The selected index for |nameserversType|.
+ * @private
+ */
+ getSelectedIndex_: function(nameserversType) {
+ var idx = this.nameserverTypeNames_.indexOf(nameserversType);
+ if (idx != -1)
+ return idx;
+ console.error('Unexpected type: ' + nameserversType);
+ return 0;
+ },
+
+ /**
+ * @param {string} nameserversType The nameservers type.
+ * @return {string} The description for |nameserversType|.
+ * @private
+ */
+ nameserverTypeDesc_: function(nameserversType) {
+ // TODO(stevenjb): Translate.
+ if (nameserversType == 'custom')
+ return 'Custom name servers';
+ if (nameserversType == 'google')
+ return 'Google name servers';
+ return 'Automatic name servers';
+ },
+
+ /**
+ * @param {boolean} editable The editable state.
+ * @param {string} nameserversType The nameservers type.
+ * @return {boolean} True if the nameservers are editable.
+ * @private
+ */
+ canEdit_: function(editable, nameserversType) {
+ return editable && nameserversType == 'custom';
+ },
+
+ /**
+ * Event triggered when the selected type changes. Updates nameservers and
+ * sends the changed value if necessary.
+ * @param {Event} event The select node changed event.
+ * @private
+ */
+ onTypeChanged_: function(event) {
+ if (this.nameserversType == 'custom')
+ this.savedNameservers_ = this.nameservers;
+ var type = this.nameserverTypeNames_[event.target.selectedIndex];
+ this.nameserversType = type;
+ if (type == 'custom') {
+ if (this.savedNameservers_.length == 0)
+ return; // Don't change nameservers until onValueChanged_().
+ // Restore the saved nameservers and send them.
+ this.nameservers = this.savedNameservers_;
+ }
+ this.sendNameServers_();
+ },
+
+ /**
+ * Event triggered when a nameserver value changes.
+ * @private
+ */
+ onValueChanged_: function() {
+ if (this.nameserversType != 'custom') {
+ // If a user inputs Google nameservers in the custom nameservers fields,
+ // |nameserversType| will change to 'google' so don't send the values.
+ return;
+ }
+ this.sendNameServers_();
+ },
+
+ /**
+ * Sends the current nameservers type (for automatic) or value.
+ * @private
+ */
+ sendNameServers_: function() {
+ var type = this.nameserversType;
+ console.debug('NameServers.sendNameServers: ' + type);
+
+ var nameservers;
+ if (type == 'custom') {
+ nameservers = [];
+ for (var i = 0; i < 4; ++i) {
+ var id = 'nameserver' + i;
+ var nameserver = this.$$('#' + id).value;
+ if (nameserver)
+ nameservers.push(nameserver);
+ }
+ this.fire('changed', {
+ field: 'NameServers',
+ value: nameservers
+ });
+ } else if (type == 'google') {
+ nameservers = this.GoogleNameservers;
+ this.fire('changed', {
+ field: 'NameServers',
+ value: nameservers
+ });
+ } else {
+ // automatic
+ this.fire('changed', {
+ field: 'NameServersConfigType',
+ value: 'DHCP'
+ });
+ }
+ },
+});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_property_list.css b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.css
new file mode 100644
index 00000000000..f743ad568b2
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.css
@@ -0,0 +1,20 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+span {
+ @apply(--paper-font-subhead);
+ @apply(--paper-input-container-input);
+ margin: 0 0 10px 5px;
+}
+
+span.fill {
+ border-bottom-color: grey;
+ border-bottom-style: dotted;
+ border-width: thin;
+ min-width: 20px;
+}
+
+paper-input-container {
+ margin: -8px 0 2px 5px;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_property_list.html b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.html
new file mode 100644
index 00000000000..c1c6e5c2997
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.html
@@ -0,0 +1,39 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/paper-styles.html">
+
+<dom-module name="network-property-list">
+ <link rel="import" type="css" href="network_property_list.css">
+ <template>
+ <div class="layout horizontal">
+ <div class="layout vertical">
+ <template is="dom-repeat" items="[[fields]]">
+ <div class="layout horizontal"
+ hidden$="[[!hasPropertyValue_(networkState, item)]]">
+ <span>[[getPropertyLabel_(item)]]</span>
+ <span class="flex fill"></span>
+ </div>
+ </template>
+ </div>
+ <div class="layout vertical">
+ <template is="dom-repeat" items="[[fields]]">
+ <div class="layout horizontal"
+ hidden$="[[!showNoEdit_(networkState, editFieldTypes, item)]]">
+ <span>[[getPropertyValue_(networkState, item)]]</span>
+ </div>
+ <div class="layout horizontal" hidden$=
+ "[[!showEdit_(networkState, editFieldTypes, item, 'String')]]">
+ <paper-input-container no-label-float>
+ <input id="[[item]]" is="iron-input"
+ value="[[getPropertyValue_(networkState, item)]]"
+ on-blur="onValueChanged_">
+ </paper-input-container>
+ </div>
+ <!-- TODO(stevenjb): Support non-string types. -->
+ </template>
+ </div>
+ </div>
+ </template>
+ <script src="network_property_list.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_property_list.js b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.js
new file mode 100644
index 00000000000..f82be31ca58
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_property_list.js
@@ -0,0 +1,135 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Polymer element for displaying a list of network state
+ * properties in a list in the format:
+ * Key1.........Value1
+ * KeyTwo.......ValueTwo
+ * This also supports editing fields inline for fields listed in editFieldTypes:
+ * KeyThree....._________
+ * TODO(stevenjb): Translate the keys and (where appropriate) values.
+ */
+Polymer({
+ is: 'network-property-list',
+
+ properties: {
+ /**
+ * The network state containing the properties to display.
+ * @type {?CrOnc.NetworkStateProperties}
+ */
+ networkState: {
+ type: Object,
+ value: null
+ },
+
+ /**
+ * Fields to display.
+ * @type {!Array<string>}
+ */
+ fields: {
+ type: Array,
+ value: function() { return []; }
+ },
+
+ /**
+ * Edit type of editable fields. May contain a property for any field in
+ * |fields|. Other properties will be ignored. Property values can be:
+ * 'String' - A text input will be displayed.
+ * TODO(stevenjb): Support types with custom validation, e.g. IPAddress.
+ * TODO(stevenjb): Support 'Number'.
+ * When a field changes, the 'changed' event will be fired with
+ * the field name and the new value provided in the event detail.
+ */
+ editFieldTypes: {
+ type: Object,
+ value: function() { return {}; }
+ },
+ },
+
+ /**
+ * Event triggered when an input field changes. Fires a 'changed' event with
+ * the field (property) name set to the target id, and the value set to the
+ * target input value.
+ * @param {Event} event The input changed event.
+ * @private
+ */
+ onValueChanged_: function(event) {
+ var field = event.target.id;
+ var curValue = CrOnc.getActiveValue(this.networkState, field);
+ var newValue = event.target.value;
+ if (newValue == curValue)
+ return;
+ this.fire('changed', { field: field, value: newValue });
+ },
+
+ /**
+ * @param {string} key The property key.
+ * @return {string} The text to display for the property label.
+ * @private
+ */
+ getPropertyLabel_: function(key) {
+ // TODO(stevenjb): Localize.
+ return key;
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @param {string} key The property key.
+ * @return {boolean} Whether or not the property exists in |state|.
+ * @private
+ */
+ hasPropertyValue_: function(state, key) {
+ if (!state)
+ return false;
+ var value = this.get(key, state);
+ return (value !== undefined && value !== '');
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @param {Object} editFields The editFieldTypes object.
+ * @param {string} key The property key.
+ * @return {boolean} True if |key| exists in |state| and is not editable.
+ * @private
+ */
+ showNoEdit_: function(state, editFieldTypes, key) {
+ if (!this.hasPropertyValue_(state, key))
+ return false;
+ var editType = editFieldTypes[key];
+ return !editType;
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @param {Object} editFields The editFieldTypes object.
+ * @param {string} key The property key.
+ * @param {string} type The field type.
+ * @return {boolean} True if |key| exists in |state| and is of editable
+ * type |type|.
+ * @private
+ */
+ showEdit_: function(state, editFieldTypes, key, type) {
+ if (!this.hasPropertyValue_(state, key))
+ return false;
+ var editType = editFieldTypes[key];
+ return editType == type;
+ },
+
+ /**
+ * @param {?CrOnc.NetworkStateProperties} state The network state properties.
+ * @param {string} key The property key.
+ * @return {string} The text to display for the property value.
+ * @private
+ */
+ getPropertyValue_: function(state, key) {
+ if (!state)
+ return '';
+ var value = CrOnc.getActiveValue(state, key);
+ if (value === undefined)
+ return '';
+ // TODO(stevenjb): Localize.
+ return value;
+ },
+});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy.css b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.css
new file mode 100644
index 00000000000..0c3f801bc54
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.css
@@ -0,0 +1,28 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+:host {
+ display: inline-block;
+}
+
+select {
+ font-size: 16px;
+ margin-bottom: 10px;
+ margin-top: 10px;
+ padding: 5px;
+}
+
+span {
+ @apply(--paper-font-subhead);
+ @apply(--paper-input-container-input);
+ margin: 5px;
+}
+
+cr-checkbox {
+ margin-bottom: 10px;
+}
+
+cr-input {
+ margin: -9px 5px 0 5px;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy.html b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.html
new file mode 100644
index 00000000000..36e3ce67055
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.html
@@ -0,0 +1,81 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/paper-styles.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_checkbox/cr_checkbox.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_input/cr_input.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
+<link rel="import" href="network_property_list.html">
+<link rel="import" href="network_proxy_input.html">
+<link rel="import" href="network_proxy_exclusions.html">
+
+<dom-module id="network-proxy">
+ <link rel="import" type="css" href="network_proxy.css">
+ <template>
+ <div id="outer" class="layout vertical flex">
+ <!-- TODO(stevenjb): Use cr-dropdown-menu once available. -->
+ <div>
+ <select id="selectType" on-change="onTypeChange_">
+ <template is="dom-repeat" items="[[proxyTypes_]]">
+ <option value="[[item]]">[[proxyTypeDesc_(item)]]</option>
+ </template>
+ </select>
+ </div>
+
+ <div hidden$="[[!matches_(proxy.Type, ProxySettingsType.PAC)]]"
+ class="layout horizontal">
+ <span>Autoconfiguration URL:</span>
+ <cr-input no-label-float class="flex" value="{{proxy.PAC}}"
+ on-blur="onProxyInputChanged_">
+ </cr-input>
+ </div>
+
+ <div hidden$="[[!matches_(proxy.Type, ProxySettingsType.WPAD)]]"
+ class="layout horizontal">
+ <span>Web Proxy Auto Discovery URL:</span><span>[[WPAD]]</span>
+ </div>
+
+ <div hidden$="[[!matches_(proxy.Type, ProxySettingsType.MANUAL)]]"
+ class="layout vertical">
+ <cr-checkbox id="useUrl" checked="{{useSameProxy}}">
+ Use the same proxy for all protocols
+ </cr-checkbox>
+ <div hidden$="[[!useSameProxy]]" class="layout vertical">
+ <network-proxy-input editable="[[editable]]"
+ value="{{proxy.Manual.HTTPProxy}}"
+ label="Proxy" on-changed="onProxyInputChanged_">
+ </network-proxy-input>
+ </div>
+ <div hidden$="[[useSameProxy]]" class="layout vertical">
+ <network-proxy-input editable="[[editable]]"
+ value="{{proxy.Manual.HTTPProxy}}"
+ label="HTTP Proxy" on-changed="onProxyInputChanged_">
+ </network-proxy-input>
+ <network-proxy-input editable="[[editable]]"
+ value="{{proxy.Manual.SecureHTTPProxy}}"
+ label="Secure HTTP Proxy" on-changed="onProxyInputChanged_">
+ </network-proxy-input>
+ <network-proxy-input editable="[[editable]]"
+ value="{{proxy.Manual.FTPProxy}}"
+ label="FTP Proxy" on-changed="onProxyInputChanged_">
+ </network-proxy-input>
+ <network-proxy-input editable="[[editable]]"
+ value="{{proxy.Manual.SOCKS}}"
+ label="SOCKS host" on-changed="onProxyInputChanged_">
+ </network-proxy-input>
+ </div>
+
+ <span>Do not use the proxy settings for these hosts and domains:</span>
+ <network-proxy-exclusions exclusions="{{proxy.ExcludeDomains}}"
+ on-changed="onProxyExclusionsChanged_">
+ </network-proxy-exclusions>
+ <div class="layout horizontal baseline">
+ <cr-input id="proxyExclusion" class="flex" no-label-float>
+ </cr-input>
+ <cr-button on-click="onAddProxyExclusion_">
+ Add Exception
+ </cr-button>
+ </div>
+ </div>
+ </div>
+ </template>
+ <script src="network_proxy.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy.js b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.js
new file mode 100644
index 00000000000..b4e9ca0744d
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy.js
@@ -0,0 +1,259 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Polymer element for displaying and editing network proxy
+ * values.
+ */
+Polymer({
+ is: 'network-proxy',
+
+ properties: {
+ /**
+ * The current state containing the IP Config properties to display and
+ * modify.
+ * @type {?CrOnc.NetworkStateProperties}
+ */
+ networkState: {
+ type: Object,
+ value: null,
+ observer: 'networkStateChanged_'
+ },
+
+ /**
+ * Whether or not the proxy values can be edited.
+ */
+ editable: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * UI visible / edited proxy configuration.
+ * @type {!CrOnc.ProxySettings}
+ */
+ proxy: {
+ type: Object,
+ value: function() { return this.createDefaultProxySettings_(); }
+ },
+
+ /**
+ * The Web Proxy Auto Discovery URL extracted from networkState.
+ */
+ WPAD: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * Whetner or not to use the same manual proxy for all protocols.
+ */
+ useSameProxy: {
+ type: Boolean,
+ value: false,
+ observer: 'useSameProxyChanged_'
+ },
+
+ /**
+ * Array of proxy configuration types.
+ * @type {!Array<string>}
+ * @const
+ */
+ proxyTypes_: {
+ type: Array,
+ value: [
+ CrOnc.ProxySettingsType.DIRECT,
+ CrOnc.ProxySettingsType.PAC,
+ CrOnc.ProxySettingsType.WPAD,
+ CrOnc.ProxySettingsType.MANUAL
+ ],
+ readOnly: true
+ },
+
+ /**
+ * Object providing proxy type values for data binding.
+ * @type {!Object}
+ * @const
+ */
+ ProxySettingsType: {
+ type: Object,
+ value: {
+ DIRECT: CrOnc.ProxySettingsType.DIRECT,
+ PAC: CrOnc.ProxySettingsType.PAC,
+ MANUAL: CrOnc.ProxySettingsType.MANUAL,
+ WPAD: CrOnc.ProxySettingsType.WPAD
+ },
+ readOnly: true
+ },
+ },
+
+ /**
+ * Saved Manual properties so that switching to another type does not loose
+ * any set properties while the UI is open.
+ * @type {?CrOnc.ManualProxySettings}
+ */
+ savedManual_: null,
+
+ /**
+ * Saved ExcludeDomains properties so that switching to a non-Manual type does
+ * not loose any set exclusions while the UI is open.
+ * @type {?Array<string>}
+ */
+ savedExcludeDomains_: null,
+
+ /**
+ * Polymer networkState changed method.
+ */
+ networkStateChanged_: function() {
+ console.debug('NetworkProxy.networkStateChanged_');
+ if (!this.networkState)
+ return;
+
+ var defaultProxy = this.createDefaultProxySettings_();
+ var proxy = this.networkState.ProxySettings || {};
+
+ // Ensure that all proxy settings object properties are specified.
+ proxy.ExcludeDomains = proxy.ExcludeDomains || this.savedExcludeDomains_ ||
+ defaultProxy.ExcludeDomains;
+ proxy.Manual = proxy.Manual || this.savedManual_ || {};
+ proxy.Manual.HTTPProxy =
+ proxy.Manual.HTTPProxy || defaultProxy.Manual.HTTPProxy;
+ proxy.Manual.SecureHTTPProxy =
+ proxy.Manual.SecureHTTPProxy || defaultProxy.Manual.SecureHTTPProxy;
+ proxy.Manual.FTPProxy =
+ proxy.Manual.FTPProxy || defaultProxy.Manual.FTPProxy;
+ proxy.Manual.SOCKS = proxy.Manual.SOCKS || defaultProxy.Manual.SOCKS;
+ proxy.PAC = proxy.PAC || defaultProxy.PAC;
+ proxy.Type = proxy.Type || defaultProxy.Type;
+
+ this.set('proxy', proxy);
+ this.$.selectType.value = proxy.Type;
+
+ // Set the Web Proxy Auto Discovery URL.
+ var ipv4 = CrOnc.getIPConfigForType(this.networkState, CrOnc.IPType.IPV4);
+ this.WPAD = (ipv4 && ipv4.WebProxyAutoDiscoveryUrl) || '';
+ },
+
+ /**
+ * @return {CrOnc.ProxySettings} An empty/default proxy settings object.
+ */
+ createDefaultProxySettings_: function() {
+ return {
+ Type: CrOnc.ProxySettingsType.DIRECT,
+ ExcludeDomains: [],
+ Manual: {
+ HTTPProxy: { Host: '', Port: 80 },
+ SecureHTTPProxy: { Host: '', Port: 80 },
+ FTPProxy: { Host: '', Port: 80 },
+ SOCKS: { Host: '', Port: 1080 }
+ },
+ PAC: ''
+ };
+ },
+
+ /**
+ * Polymer useSameProxy changed method.
+ */
+ useSameProxyChanged_: function() {
+ this.sendProxyChanged_();
+ },
+
+ /**
+ * Called when the proxy is changed in the UI.
+ */
+ sendProxyChanged_: function() {
+ if (this.proxy.Type == CrOnc.ProxySettingsType.MANUAL) {
+ if (this.useSameProxy) {
+ var defaultProxy = this.proxy.Manual.HTTPProxy;
+ this.set('proxy.Manual.SecureHTTPProxy',
+ Object.assign({}, defaultProxy));
+ this.set('proxy.Manual.FTPProxy', Object.assign({}, defaultProxy));
+ this.set('proxy.Manual.SOCKS', Object.assign({}, defaultProxy));
+ }
+ this.savedManual_ = this.proxy.Manual;
+ this.savedExcludeDomains_ = this.proxy.ExcludeDomains;
+ }
+ this.fire('changed', {
+ field: 'ProxySettings',
+ value: this.proxy
+ });
+ },
+
+ /**
+ * Event triggered when the selected proxy type changes.
+ * @param {Event} event The select node changed event.
+ * @private
+ */
+ onTypeChange_: function(event) {
+ var type = this.proxyTypes_[event.target.selectedIndex];
+ console.debug('Proxy type changed: ' + type);
+ this.set('proxy.Type', type);
+ if (type != CrOnc.ProxySettingsType.MANUAL ||
+ this.savedManual_) {
+ this.sendProxyChanged_();
+ }
+ },
+
+ /**
+ * Event triggered when a proxy value changes.
+ * @param {Event} event The proxy value changed event.
+ * @private
+ */
+ onProxyInputChanged_: function(event) {
+ console.debug('Proxy input changed');
+ console.debug(this.proxy);
+ this.sendProxyChanged_();
+ },
+
+ /**
+ * Event triggered when a proxy exclusion is added.
+ * @param {Event} event The add proxy exclusion event.
+ * @private
+ */
+ onAddProxyExclusion_: function(event) {
+ var value = this.$.proxyExclusion.value;
+ if (!value)
+ return;
+ this.push('proxy.ExcludeDomains', value);
+ // Clear input.
+ this.$.proxyExclusion.value = '';
+ this.sendProxyChanged_();
+ },
+
+ /**
+ * Event triggered when the proxy exclusion list has changed.
+ * @param {Event} event The remove proxy exclusions changed event.
+ * @private
+ */
+ onProxyExclusionsChanged_: function(event) {
+ console.debug('onRemoveProxyExclusion');
+ this.sendProxyChanged_();
+ },
+
+ /**
+ * @param {string} proxyType The proxy type.
+ * @return {string} The description for |proxyType|.
+ * @private
+ */
+ proxyTypeDesc_: function(proxyType) {
+ // TODO(stevenjb): Translate.
+ if (proxyType == CrOnc.ProxySettingsType.MANUAL)
+ return 'Manual proxy configuration';
+ if (proxyType == CrOnc.ProxySettingsType.PAC)
+ return 'Automatic proxy configuration';
+ if (proxyType == CrOnc.ProxySettingsType.WPAD)
+ return 'Web proxy autodiscovery';
+ return 'Direct Internet connection';
+ },
+
+ /**
+ * @param {string} property The property to test
+ * @param {string} value The value to test against
+ * @return {boolean} True if property == value
+ * @private
+ */
+ matches_: function(property, value) {
+ return property == value;
+ }
+});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.css b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.css
new file mode 100644
index 00000000000..ad9a23955aa
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.css
@@ -0,0 +1,18 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+span {
+ margin: 5px;
+}
+
+iron-icon {
+ margin: 5px;
+}
+
+div#container {
+ border: 1px solid lightgrey;
+ height: 100px;
+ margin: 5px;
+ overflow-y: auto;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html
new file mode 100644
index 00000000000..07b9273001a
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html
@@ -0,0 +1,18 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/paper-styles.html">
+
+<dom-module id="network-proxy-exclusions">
+ <link rel="import" type="css" href="network_proxy_exclusions.css">
+ <template>
+ <div id="container" class="layout vertical">
+ <template is="dom-repeat" items="[[exclusions]]">
+ <div class="layout horizontal">
+ <span class="flex">[[item]]</span>
+ <iron-icon icon="clear" on-click="removeItem_"></iron-icon>
+ </div>
+ </template>
+ </div>
+ </template>
+ <script src="network_proxy_exclusions.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js
new file mode 100644
index 00000000000..ca8f2d323ed
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js
@@ -0,0 +1,38 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Polymer element for displaying a list of proxy exclusions.
+ * Includes UI for adding, changing, and removing entries.
+ */
+
+(function() {
+
+Polymer({
+ is: 'network-proxy-exclusions',
+
+ properties: {
+ /**
+ * The list of exclusions.
+ * @type {!Array<string>}
+ */
+ exclusions: {
+ type: Array,
+ value: function() { return []; },
+ notify: true
+ }
+ },
+
+ /**
+ * Event triggered when an item is removed.
+ * @private
+ */
+ removeItem_: function(event) {
+ var index = event.model.index;
+ this.splice('exclusions', index, 1);
+ console.debug('network-proxy-exclusions: removed: ' + index);
+ this.fire('changed');
+ }
+});
+})();
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.css b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.css
new file mode 100644
index 00000000000..1edd5c9e20c
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.css
@@ -0,0 +1,17 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+#port {
+ width: 50px;
+}
+
+span {
+ @apply(--paper-font-subhead);
+ @apply(--paper-input-container-input);
+ margin-right: 5px;
+}
+
+cr-input {
+ margin: -9px 5px 0 5px;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.html b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.html
new file mode 100644
index 00000000000..88a3ceedbe7
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.html
@@ -0,0 +1,20 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_input/cr_input.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/paper-styles.html">
+
+<dom-module id="network-proxy-input">
+ <link rel="import" type="css" href="network_proxy_input.css">
+ <template>
+ <div id="outer" class="layout horizontal">
+ <span class="flex">[[label]]</span>
+ <cr-input no-label-float id="url" disabled="[[!editable]]"
+ value="{{value.Host}}" on-blur="onValueChanged_">
+ </cr-input>
+ <span>Port</span>
+ <cr-input no-label-float id="port" disabled="[[!editable]]"
+ value="{{value.Port}}" on-blur="onValueChanged_">
+ </cr-input>
+ </div>
+ </template>
+ <script src="network_proxy_input.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.js b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.js
new file mode 100644
index 00000000000..a4806ff1467
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_input.js
@@ -0,0 +1,53 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Polymer element for displaying and editing a single
+ * network proxy value. When the URL or port changes, a 'changed' event is
+ * fired with the combined url and port values passed as a single string,
+ * url:port.
+ */
+Polymer({
+ is: 'network-proxy-input',
+
+ properties: {
+ /**
+ * Whether or not the proxy value can be edited.
+ */
+ editable: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * A label for the proxy value.
+ */
+ label: {
+ type: String,
+ value: 'Proxy'
+ },
+
+ /**
+ * The proxy object.
+ * @type {?CrOnc.ProxyLocation}
+ */
+ value: {
+ type: Object,
+ value: function() { return { Host: '', Port: 80 }; },
+ notify: true
+ },
+ },
+
+ /**
+ * Event triggered when an input value changes.
+ * @private
+ */
+ onValueChanged_: function() {
+ var port = parseInt(this.value.Port);
+ if (isNaN(port))
+ port = 80;
+ this.value.Port = port;
+ this.fire('changed', { value: this.value });
+ }
+});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary.css b/chromium/chrome/browser/resources/settings/internet_page/network_summary.css
new file mode 100644
index 00000000000..8ef22124226
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary.css
@@ -0,0 +1,7 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+#summary {
+ padding-right: 40px;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary.html b/chromium/chrome/browser/resources/settings/internet_page/network_summary.html
index 8feb964e7ef..95fc8dbd836 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_summary.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary.html
@@ -1,49 +1,47 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/core-style/core-style.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_onc/cr_onc_data.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/more-routing/more-routing.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/more-routing/more-routing.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_onc/cr_onc_types.html">
<link rel="import" href="network_summary_item.html">
-<link rel="import" href="network_summary_style.html">
-<polymer-element name="cr-network-summary">
+<dom-module id="network-summary">
+ <link rel="import" type="css" href="network_summary.css">
<template>
- <core-style ref="networkSummaryStyle"></core-style>
- <div id="summary" vertical layout>
- <cr-network-summary-item
- deviceState="{{deviceStates.Ethernet}}"
- networkState="{{networkStates.Ethernet}}"
- networkStateList="{{networkStateLists.Ethernet}}"
- on-selected="{{onSelected_}}">
- </cr-network-summary-item>
- <cr-network-summary-item
- deviceState="{{deviceStates.WiFi}}"
- networkState="{{networkStates.WiFi}}"
- networkStateList="{{networkStateLists.WiFi}}"
- on-expanded="{{onWiFiExpanded_}}"
- on-selected="{{onSelected_}}"
- on-device-enabled-toggled="{{onDeviceEnabledToggled_}}">
- </cr-network-summary-item>
- <cr-network-summary-item
- deviceState="{{deviceStates.Cellular}}"
- networkState="{{networkStates.Cellular}}"
- networkStateList="{{networkStateLists.Cellular}}"
- on-selected="{{onSelected_}}"
- on-device-enabled-toggled="{{onDeviceEnabledToggled_}}">
- </cr-network-summary-item>
- <cr-network-summary-item
- deviceState="{{deviceStates.WiMAX}}"
- networkState="{{networkStates.WiMAX}}"
- networkStateList="{{networkStateLists.WiMAX}}"
- on-selected="{{onSelected_}}"
- on-device-enabled-toggled="{{onDeviceEnabledToggled_}}">
- </cr-network-summary-item>
- <cr-network-summary-item
- deviceState="{{deviceStates.VPN}}"
- networkState="{{networkStates.VPN}}"
- networkStateList="{{networkStateLists.VPN}}"
- on-selected="{{onSelected_}}">
- </cr-network-summary-item>
+ <div id="summary" class="layout vertical">
+ <network-summary-item id="ethernet"
+ device-state="[[deviceStates.Ethernet]]"
+ network-state="[[networkStates.Ethernet]]"
+ network-state-list="[[networkStateLists.Ethernet]]"
+ on-selected="onSelected_">
+ </network-summary-item>
+ <network-summary-item id="wifi"
+ device-state="[[deviceStates.WiFi]]"
+ network-state="[[networkStates.WiFi]]"
+ network-state-list="[[networkStateLists.WiFi]]"
+ on-expanded="onWiFiExpanded_"
+ on-selected="onSelected_"
+ on-device-enabled-toggled="onDeviceEnabledToggled_">
+ </network-summary-item>
+ <network-summary-item id="cellular"
+ device-state="[[deviceStates.Cellular]]"
+ network-state="[[networkStates.Cellular]]"
+ network-state-list="[[networkStateLists.Cellular]]"
+ on-selected="onSelected_"
+ on-device-enabled-toggled="onDeviceEnabledToggled_">
+ </network-summary-item>
+ <network-summary-item id="wimax"
+ device-state="[[deviceStates.WiMAX]]"
+ network-state="[[networkStates.WiMAX]]"
+ network-state-list="[[networkStateLists.WiMAX]]"
+ on-selected="onSelected_"
+ on-device-enabled-toggled="onDeviceEnabledToggled_">
+ </network-summary-item>
+ <network-summary-item id="vpn"
+ device-state="[[deviceStates.VPN]]"
+ network-state="[[networkStates.VPN]]"
+ network-state-list="[[networkStateLists.VPN]]"
+ on-selected="onSelected_">
+ </network-summary-item>
</div>
</template>
<script src="network_summary.js"></script>
-</polymer-element>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary.js b/chromium/chrome/browser/resources/settings/internet_page/network_summary.js
index 186b885c93d..314afb4af83 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_summary.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary.js
@@ -11,9 +11,6 @@
/** @typedef {chrome.networkingPrivate.DeviceStateProperties} */
var DeviceStateProperties;
-/** @typedef {chrome.networkingPrivate.NetworkStateProperties} */
-var NetworkStateProperties;
-
/**
* @typedef {{
* Ethernet: (DeviceStateProperties|undefined),
@@ -27,22 +24,22 @@ var DeviceStateObject;
/**
* @typedef {{
- * Ethernet: (CrOncDataElement|undefined),
- * WiFi: (CrOncDataElement|undefined),
- * Cellular: (CrOncDataElement|undefined),
- * WiMAX: (CrOncDataElement|undefined),
- * VPN: (CrOncDataElement|undefined)
+ * Ethernet: (?CrOnc.NetworkStateProperties|undefined),
+ * WiFi: (?CrOnc.NetworkStateProperties|undefined),
+ * Cellular: (?CrOnc.NetworkStateProperties|undefined),
+ * WiMAX: (?CrOnc.NetworkStateProperties|undefined),
+ * VPN: (?CrOnc.NetworkStateProperties|undefined)
* }}
*/
var NetworkStateObject;
/**
* @typedef {{
- * Ethernet: (Array<CrOncDataElement>|undefined),
- * WiFi: (Array<CrOncDataElement>|undefined),
- * Cellular: (Array<CrOncDataElement>|undefined),
- * WiMAX: (Array<CrOncDataElement>|undefined),
- * VPN: (Array<CrOncDataElement>|undefined)
+ * Ethernet: (Array<CrOnc.NetworkStateProperties>|undefined),
+ * WiFi: (Array<CrOnc.NetworkStateProperties>|undefined),
+ * Cellular: (Array<CrOnc.NetworkStateProperties>|undefined),
+ * WiMAX: (Array<CrOnc.NetworkStateProperties>|undefined),
+ * VPN: (Array<CrOnc.NetworkStateProperties>|undefined)
* }}
*/
var NetworkStateListObject;
@@ -50,34 +47,36 @@ var NetworkStateListObject;
/** @const {!Array<string>} */
var NETWORK_TYPES = ['Ethernet', 'WiFi', 'Cellular', 'WiMAX', 'VPN'];
-Polymer('cr-network-summary', {
- publish: {
+Polymer({
+ is: 'network-summary',
+
+ properties: {
/**
* The device state for each network device type.
- *
- * @attribute deviceStates
- * @type {?DeviceStateObject}
- * @default null
+ * @type {DeviceStateObject}
*/
- deviceStates: null,
+ deviceStates: {
+ type: Object,
+ value: function() { return {}; },
+ },
/**
* Network state data for each network type.
- *
- * @attribute networkStates
- * @type {?NetworkStateObject}
- * @default null
+ * @type {NetworkStateObject}
*/
- networkStates: null,
+ networkStates: {
+ type: Object,
+ value: function() { return {}; },
+ },
/**
* List of network state data for each network type.
- *
- * @attribute networkStateLists
- * @type {?NetworkStateListObject}
- * @default null
+ * @type {NetworkStateListObject}
*/
- networkStateLists: null,
+ networkStateLists: {
+ type: Object,
+ value: function() { return {}; },
+ }
},
/**
@@ -110,15 +109,9 @@ Polymer('cr-network-summary', {
networkIds_: null,
/** @override */
- created: function() {
- this.deviceStates = {};
- this.networkStates = {};
- this.networkStateLists = {};
+ attached: function() {
this.networkIds_ = {};
- },
- /** @override */
- attached: function() {
this.getNetworkLists_();
this.networkListChangedListener_ =
@@ -149,7 +142,7 @@ Polymer('cr-network-summary', {
},
/**
- * Event triggered when the WiFi cr-network-summary-item is expanded.
+ * Event triggered when the WiFi network-summary-item is expanded.
* @param {!{detail: {expanded: boolean, type: string}}} event
* @private
*/
@@ -159,21 +152,21 @@ Polymer('cr-network-summary', {
},
/**
- * Event triggered when a cr-network-summary-item is selected.
- * @param {!{detail: !CrOncDataElement}} event
+ * Event triggered when a network-summary-item is selected.
+ * @param {!{detail: !CrOnc.NetworkStateProperties}} event
* @private
*/
onSelected_: function(event) {
- var onc = event.detail;
- if (onc.disconnected()) {
- this.connectToNetwork_(onc);
+ var state = event.detail;
+ if (state.ConnectionState == CrOnc.ConnectionState.NOT_CONNECTED) {
+ this.connectToNetwork_(state);
return;
}
- MoreRouting.navigateTo('internet-detail', {guid: onc.data.GUID});
+ MoreRouting.navigateTo('internet-detail', {guid: state.GUID});
},
/**
- * Event triggered when the enabled state of a cr-network-summary-item is
+ * Event triggered when the enabled state of a network-summary-item is
* toggled.
* @param {!{detail: {enabled: boolean, type: string}}} event
* @private
@@ -214,11 +207,11 @@ Polymer('cr-network-summary', {
/**
* Handles UI requests to connect to a network.
* TODO(stevenjb): Handle Cellular activation, etc.
- * @param {!CrOncDataElement} state The network state.
+ * @param {!CrOnc.NetworkStateProperties} state The network state.
* @private
*/
connectToNetwork_: function(state) {
- chrome.networkingPrivate.startConnect(state.data.GUID);
+ chrome.networkingPrivate.startConnect(state.GUID);
},
/**
@@ -266,8 +259,8 @@ Polymer('cr-network-summary', {
/**
* networkingPrivate.getNetworksState callback.
- * @param {!Array<!NetworkStateProperties>} states The state properties for
- * all visible networks.
+ * @param {!Array<!CrOnc.NetworkStateProperties>} states The state properties
+ * for all visible networks.
* @private
*/
getNetworksCallback_: function(states) {
@@ -276,7 +269,7 @@ Polymer('cr-network-summary', {
// Get the first (active) state for each type.
var foundTypes = {};
- /** @type {!NetworkStateListObject} */ var oncNetworks = {
+ /** @type {!NetworkStateListObject} */ var networkStateLists = {
Ethernet: [],
WiFi: [],
Cellular: [],
@@ -289,32 +282,31 @@ Polymer('cr-network-summary', {
foundTypes[type] = true;
this.updateNetworkState_(type, state);
}
- oncNetworks[type].push(CrOncDataElement.create(state));
+ networkStateLists[type].push(state);
}, this);
// Set any types not found to a default value or null.
NETWORK_TYPES.forEach(function(type) {
if (!foundTypes[type]) {
- /** @type {NetworkStateProperties} */ var defaultState = null;
+ /** @type {CrOnc.NetworkStateProperties} */ var defaultState = null;
if (this.deviceStates[type])
- defaultState = { GUID: '', Type: 'WiFi' };
+ defaultState = { GUID: '', Type: type };
this.updateNetworkState_(type, defaultState);
}
}, this);
- // Set the network list for each type.
- NETWORK_TYPES.forEach(function(type) {
- this.networkStateLists[type] = oncNetworks[type];
- }, this);
+ this.networkStateLists = networkStateLists;
// Create a VPN entry in deviceStates if there are any VPN networks.
- if (this.networkStateLists.VPN && this.networkStateLists.VPN.length > 0)
- this.deviceStates.VPN = { Type: 'VPN', State: 'Enabled' };
+ if (networkStateLists.VPN && networkStateLists.VPN.length > 0) {
+ var vpn = { Type: 'VPN', State: 'Enabled' };
+ this.set('deviceStates.VPN', vpn);
+ }
},
/**
* networkingPrivate.getState callback.
- * @param {!NetworkStateProperties} state The network state properties.
+ * @param {!CrOnc.NetworkStateProperties} state The network state properties.
* @private
*/
getStateCallback_: function(state) {
@@ -325,17 +317,16 @@ Polymer('cr-network-summary', {
},
/**
- * Creates a CrOncDataElement from the network state (if not null) for 'type'.
- * Sets 'networkStates[type]' which will update the cr-network-list-item
+ * Sets 'networkStates[type]' which will update the network-list-item
* associated with 'type'.
* @param {string} type The network type.
- * @param {?NetworkStateProperties} state The state properties for the network
- * to associate with |type|. May be null if there are no networks matching
- * |type|.
+ * @param {?CrOnc.NetworkStateProperties} state The state properties for the
+ * network to associate with |type|. May be null if there are no networks
+ * matching |type|.
* @private
*/
updateNetworkState_: function(type, state) {
- this.networkStates[type] = state ? CrOncDataElement.create(state) : null;
+ this.set('networkStates.' + type, state);
if (state)
this.networkIds_[state.GUID] = true;
},
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.css b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.css
new file mode 100644
index 00000000000..45b0994e32a
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.css
@@ -0,0 +1,28 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+#details.selectable:hover {
+ background-color: lightgrey;
+}
+
+#detailsItem {
+ margin-bottom: 10px;
+}
+
+#buttons {
+ align-items: center;
+}
+
+.invisible {
+ visibility: hidden;
+}
+
+#deviceEnabledButton {
+ margin: 0 10px;
+}
+
+#networkList {
+ margin: 0 70px 10px 40px;
+ max-height: 400px;
+}
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html
index ea2dffd5912..7fd17809e90 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html
@@ -1,38 +1,36 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_network_list/cr_network_list.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_network_list_item/cr_network_list_item.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_onc/cr_onc_data.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_expand_button/cr_expand_button.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_toggle_button/cr_toggle_button.html">
-<link rel="import" href="network_summary_item_style.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_expand_button/cr_expand_button.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_toggle_button/cr_toggle_button.html">
+<link rel="import" href="network_list.html">
+<link rel="import" href="network_list_item.html">
-<polymer-element name="cr-network-summary-item">
+<dom-module name="network-summary-item">
+ <link rel="import" type="css" href="network_summary_item.css">
<template>
- <core-style ref="networkSummaryStyle"></core-style>
- <div vertical layout hidden?="{{!deviceState}}">
- <div id="details" horizontal layout on-click="{{onDetailsClicked_}}">
- <cr-network-list-item id="detailsItem" flex
- networkState="{{networkState}}">
- </cr-network-list-item>
- <div id="buttons" horizontal layout>
+ <div class="layout vertical" hidden$="[[isHidden]]">
+ <div id="details" class="layout horizontal" on-click="onDetailsClicked_">
+ <network-list-item id="detailsItem" class="flex"
+ network-state="[[networkState]]">
+ </network-list-item>
+ <div id="buttons" class="layout horizontal">
<cr-expand-button id="expandListButton"
- class="{{ {invisible: !expandIsVisible_(deviceState, networkStateList)} | tokenList }}"
+ class$="[[getExpandButtonClass_(deviceState, networkStateList)]]"
expanded="{{expanded}}">
</cr-expand-button>
<cr-toggle-button id="deviceEnabledButton"
- checked="{{deviceIsEnabled_(deviceState)}}"
- class="{{ {invisible: !deviceEnabledIsVisible_(deviceState)} | tokenList }}"
- on-click="{{onDeviceEnabledToggled_}}">
+ checked="[[deviceIsEnabled_(deviceState)]]"
+ class$="[[getDeviceEnabledButtonClass_(deviceState)]]"
+ on-click="onDeviceEnabledToggled_">
</cr-toggle-button>
</div>
</div>
- <cr-network-list id="networkList" vertical layout
- maxHeight="{{maxHeight}}"
- networks="{{networkStateList}}"
- on-selected="{{onListItemSelected_}}"
+ <network-list id="networkList" class="layout vertical"
+ max-height="[[maxHeight]]"
+ networks="[[networkStateList]]"
+ on-selected="onListItemSelected_"
opened="{{expanded}}">
- </cr-network-list>
+ </network-list>
</div>
</template>
<script src="network_summary_item.js"></script>
-</polymer-element>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js
index c81256c2271..c61b96c4854 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js
@@ -11,58 +11,72 @@
/** @typedef {chrome.networkingPrivate.DeviceStateProperties} */
var DeviceStateProperties;
-Polymer('cr-network-summary-item', {
- publish: {
+Polymer({
+ is: 'network-summary-item',
+
+ properties: {
/**
* True if the list is expanded.
- *
- * @attribute expanded
- * @type {boolean}
- * @default false
*/
- expanded: false,
+ expanded: {
+ type: Boolean,
+ value: false,
+ observer: 'expandedChanged_'
+ },
/**
* The maximum height in pixels for the list of networks.
- *
- * @attribute maxHeight
- * @type {number}
- * @default 200
*/
- maxHeight: 200,
+ maxHeight: {
+ type: Number,
+ value: 200
+ },
+
+ /**
+ * True if this item should be hidden. We need this computed property so
+ * that it can default to true, hiding this element, since no changed event
+ * will be fired for deviceState if it is undefined (in NetworkSummary).
+ */
+ isHidden: {
+ type: Boolean,
+ value: true,
+ computed: 'noDeviceState_(deviceState)'
+ },
/**
* Device state for the network type.
- *
- * @attribute deviceState
* @type {?DeviceStateProperties}
- * @default null
*/
- deviceState: null,
+ deviceState: {
+ type: Object,
+ value: null,
+ observer: 'deviceStateChanged_'
+ },
/**
* Network state for the active network.
- *
- * @attribute networkState
- * @type {?CrOncDataElement}
- * @default null
+ * @type {?CrOnc.NetworkStateProperties}
*/
- networkState: null,
+ networkState: {
+ type: Object,
+ value: null
+ },
/**
* List of all network state data for the network type.
- *
- * @attribute networkStateList
- * @type {?Array<!CrOncDataElement>}
- * @default null
+ * @type {!Array<!CrOnc.NetworkStateProperties>}
*/
- networkStateList: null,
+ networkStateList: {
+ type: Array,
+ value: function() { return []; },
+ observer: 'networkStateListChanged_'
+ }
},
/**
* Polymer expanded changed method.
*/
- expandedChanged: function() {
+ expandedChanged_: function() {
var type = this.deviceState ? this.deviceState.Type : '';
this.fire('expanded', {expanded: this.expanded, type: type});
},
@@ -70,7 +84,7 @@ Polymer('cr-network-summary-item', {
/**
* Polymer deviceState changed method.
*/
- deviceStateChanged: function() {
+ deviceStateChanged_: function() {
this.updateSelectable_();
if (!this.deviceIsEnabled_(this.deviceState))
this.expanded = false;
@@ -79,12 +93,21 @@ Polymer('cr-network-summary-item', {
/**
* Polymer networkStateList changed method.
*/
- networkStateListChanged: function() {
+ networkStateListChanged_: function() {
this.updateSelectable_();
},
/**
* @param {?DeviceStateProperties} deviceState The state of a device.
+ * @return {boolean} True if the device state is not set.
+ * @private
+ */
+ noDeviceState_: function(deviceState) {
+ return !deviceState;
+ },
+
+ /**
+ * @param {?DeviceStateProperties} deviceState The state of a device.
* @return {boolean} Whether or not the device state is enabled.
* @private
*/
@@ -94,22 +117,34 @@ Polymer('cr-network-summary-item', {
/**
* @param {?DeviceStateProperties} deviceState The device state.
- * @return {boolean} Whether or not to show the UI to enable the network.
+ * @return {string} The class value for the device enabled button.
* @private
*/
- deviceEnabledIsVisible_: function(deviceState) {
- return deviceState &&
+ getDeviceEnabledButtonClass_: function(deviceState) {
+ var visible = deviceState &&
deviceState.Type != 'Ethernet' && deviceState.Type != 'VPN';
+ return visible ? '' : 'invisible';
+ },
+
+ /**
+ * @param {?DeviceStateProperties} deviceState The device state.
+ * @param {!Array<!CrOnc.NetworkStateProperties>} networkList
+ * @return {string} The class value for the expand button.
+ * @private
+ */
+ getExpandButtonClass_: function(deviceState, networkList) {
+ var visible = this.expandIsVisible_(deviceState, networkList);
+ return visible ? '' : 'invisible';
},
/**
* @param {?DeviceStateProperties} deviceState The device state.
- * @param {?Array<!CrOncDataElement>} networkList A list of networks.
+ * @param {!Array<!CrOnc.NetworkStateProperties>} networkList
* @return {boolean} Whether or not to show the UI to expand the list.
* @private
*/
expandIsVisible_: function(deviceState, networkList) {
- if (!this.deviceIsEnabled_(deviceState) || !networkList)
+ if (!this.deviceIsEnabled_(deviceState))
return false;
var minLength = (this.type == 'WiFi') ? 1 : 2;
return networkList.length >= minLength;
@@ -136,13 +171,13 @@ Polymer('cr-network-summary-item', {
},
/**
- * Event triggered when a cr-network-item is the network list is selected.
- * @param {!{detail: CrNetworkListItem}} event
+ * Event triggered when a network-list-item is the network list is selected.
+ * @param {!{detail: NetworkListItem}} event
* @private
*/
onListItemSelected_: function(event) {
- var onc = event.detail;
- this.fire('selected', onc);
+ var state = event.detail;
+ this.fire('selected', state);
},
/**
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item_style.html b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item_style.html
deleted file mode 100644
index 8792048aa46..00000000000
--- a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item_style.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/core-style/core-style.html">
-
-<core-style id="networkSummaryStyle">
-
-#details.selectable:hover {
- background-color: lightgrey;
-}
-
-#detailsItem {
- margin-bottom: 10px;
-}
-
-#buttons {
- align-items: center;
-}
-
-.invisible {
- visibility: hidden;
-}
-
-#deviceEnabledButton {
- margin: 0px 10px;
-}
-
-#networkList {
- max-height: 400px;
- margin: 0px 70px 10px 40px;
-}
-
-</core-style>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary_style.html b/chromium/chrome/browser/resources/settings/internet_page/network_summary_style.html
deleted file mode 100644
index 562199655a0..00000000000
--- a/chromium/chrome/browser/resources/settings/internet_page/network_summary_style.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<link rel="import" href="chrome://resources/polymer/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/core-style/core-style.html">
-
-<core-style id="networkSummaryStyle">
-
-#summary {
- padding-right: 40px;
-}
-
-</core-style>
diff --git a/chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.html b/chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.html
index 2636139dfc8..be47e84d6cd 100644
--- a/chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.html
+++ b/chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.html
@@ -1,4 +1,4 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<dom-module id="cr-settings-pref-tracker">
<script src="chrome://md-settings/prefs/prefs_types.js"></script>
diff --git a/chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.js b/chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.js
index b042ecafb33..1d692abdade 100644
--- a/chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.js
+++ b/chromium/chrome/browser/resources/settings/pref_tracker/pref_tracker.js
@@ -41,7 +41,7 @@
properties: {
/**
* The Preference object being tracked.
- * @type {?chrome.settingsPrivate.PrefObject}
+ * @type {?PrefObject}
*/
pref: {
type: Object,
@@ -68,14 +68,11 @@
// HACK ALERT: This is the best clue we have as to the pref key for
// this tracker. This value should not be relied upon anywhere or
// actually used besides for this error message.
- var keyHint = '';
- var parentPrefString = this.parentNode && this.parentNode.host &&
- this.parentNode.host.getAttribute('pref');
- if (parentPrefString) {
- keyHint = parentPrefString.match(/{{([a-z0-9._]+)}}/)[1];
- }
+ var parentControlHTML = this.parentNode && this.parentNode.host &&
+ this.parentNode.host.outerHTML;
- throw new Error('Pref not found. Key Hint: ' + keyHint);
+ throw new Error('Pref not found. Parent control:' +
+ (parentControlHTML || 'Unknown'));
}
});
},
diff --git a/chromium/chrome/browser/resources/settings/prefs/prefs.html b/chromium/chrome/browser/resources/settings/prefs/prefs.html
index 2b5323003d0..1aac5c857de 100644
--- a/chromium/chrome/browser/resources/settings/prefs/prefs.html
+++ b/chromium/chrome/browser/resources/settings/prefs/prefs.html
@@ -1,4 +1,4 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<link rel="import" href="chrome://resources/html/assert.html">
<link rel="import" href="chrome://resources/html/cr.html">
diff --git a/chromium/chrome/browser/resources/settings/prefs/prefs.js b/chromium/chrome/browser/resources/settings/prefs/prefs.js
index febc22d41b1..b68ccea3c5c 100644
--- a/chromium/chrome/browser/resources/settings/prefs/prefs.js
+++ b/chromium/chrome/browser/resources/settings/prefs/prefs.js
@@ -44,8 +44,7 @@
/**
* Called when prefs in the underlying Chrome pref store are changed.
- * @param {!Array<!chrome.settingsPrivate.PrefObject>} prefs The prefs that
- * changed.
+ * @param {!Array<!PrefObject>} prefs The prefs that changed.
* @private
*/
onPrefsChanged_: function(prefs) {
@@ -54,7 +53,7 @@
/**
* Called when prefs are fetched from settingsPrivate.
- * @param {!Array<!chrome.settingsPrivate.PrefObject>} prefs
+ * @param {!Array<!PrefObject>} prefs
* @private
*/
onPrefsFetched_: function(prefs) {
@@ -67,9 +66,9 @@
/**
* Updates the settings model with the given prefs.
- * @param {!Array<!chrome.settingsPrivate.PrefObject>} prefs
- * @param {boolean} shouldObserve Whether to add an ObjectObserver for each
- * of the prefs.
+ * @param {!Array<!PrefObject>} prefs
+ * @param {boolean} shouldObserve Whether each of the prefs should be
+ * observed.
* @private
*/
updatePrefs_: function(prefs, shouldObserve) {
@@ -84,53 +83,79 @@
if (!root.hasOwnProperty(token)) {
let path = 'prefStore.' + tokens.slice(0, i + 1).join('.');
- this.setPathValue(path, {});
+ this.set(path, {});
}
root = root[token];
}
// NOTE: Do this copy rather than just a re-assignment, so that the
- // ObjectObserver fires.
+ // observer fires.
for (let objKey in prefObj) {
let path = 'prefStore.' + prefObj.key + '.' + objKey;
- this.setPathValue(path, prefObj[objKey]);
+
+ // Handle lists specially. We don't want to call this.set()
+ // unconditionally upon updating a list value, since even its contents
+ // are the same as the old list, doing this set() may cause an
+ // infinite update cycle (http://crbug.com/498586).
+ if (objKey == 'value' &&
+ prefObj.type == chrome.settingsPrivate.PrefType.LIST &&
+ !this.shouldUpdateListPrefValue_(root, prefObj['value'])) {
+ continue;
+ }
+
+ this.set(path, prefObj[objKey]);
}
if (shouldObserve) {
- let keyObserver = new ObjectObserver(root);
- keyObserver.open(
- this.propertyChangeCallback_.bind(this, prefObj.key));
+ Object.observe(root, this.propertyChangeCallback_, ['update']);
}
}, this);
},
+
+ /**
+ * @param {Object} root The root object for a pref that contains a list
+ * value.
+ * @param {!Array} newValue The new list value.
+ * @return {boolean} Whether the new value is different from the one in
+ * root, thus necessitating a pref update.
+ */
+ shouldUpdateListPrefValue_: function(root, newValue) {
+ if (root.value == null ||
+ root.value.length != newValue.length) {
+ return true;
+ }
+
+ for (let i = 0; i < newValue.length; i++) {
+ if (root.value != null && root.value[i] != newValue[i]) {
+ return true;
+ }
+ }
+
+ return false;
+ },
+
/**
* Called when a property of a pref changes.
- * @param {string} propertyPath The path before the property names.
- * @param {!Array<string>} added An array of keys which were added.
- * @param {!Array<string>} removed An array of keys which were removed.
- * @param {!Array<string>} changed An array of keys of properties whose
- * values changed.
- * @param {function(string) : *} getOldValueFn A function which takes a
- * property name and returns the old value for that property.
+ * @param {!Array<!Object>} changes An array of objects describing changes.
+ * @see http://www.html5rocks.com/en/tutorials/es7/observe/
* @private
*/
- propertyChangeCallback_: function(
- propertyPath, added, removed, changed, getOldValueFn) {
- for (let property in changed) {
+ propertyChangeCallback_: function(changes) {
+ changes.forEach(function(change) {
// UI should only be able to change the value of a setting for now, not
// disabled, etc.
- assert(property == 'value');
+ assert(change.name == 'value');
- let newValue = changed[property];
+ let newValue = change.object[change.name];
assert(newValue !== undefined);
chrome.settingsPrivate.setPref(
- propertyPath,
+ change.object['key'],
newValue,
/* pageId */ '',
/* callback */ function() {});
- }
+ });
},
});
})();
diff --git a/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.css b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.css
new file mode 100644
index 00000000000..bcd874e4723
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.css
@@ -0,0 +1,7 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+.privacy-buttons {
+ margin-top: 25px;
+} \ No newline at end of file
diff --git a/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.html
new file mode 100644
index 00000000000..b6c4a49282f
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -0,0 +1,69 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_button/cr_button.html">
+<link rel="import" href="chrome://md-settings/checkbox/checkbox.html">
+
+<dom-module id="cr-settings-privacy-page">
+ <link rel="import" type="css"
+ href="chrome://md-settings/settings_page/settings_page.css">
+ <link rel="import" type="css" href="privacy_page.css">
+ <template>
+ <paper-material>
+ <p class="privacy-explanation"
+ i18n-values=".innerHTML:improveBrowsingExperience">
+ </p>
+ <cr-settings-checkbox
+ pref="{{prefs.alternate_error_pages.enabled}}"
+ i18n-values="label:linkDoctorPref">
+ </cr-settings-checkbox>
+ <cr-settings-checkbox
+ pref="{{prefs.search.suggest_enabled}}"
+ i18n-values="label:searchSuggestPref">
+ </cr-settings-checkbox>
+ <cr-settings-checkbox
+ pref="{{prefs.net.network_prediction_options}}"
+ i18n-values="label:networkPredictionEnabled">
+ </cr-settings-checkbox>
+ <cr-settings-checkbox
+ pref="{{prefs.safebrowsing.extended_reporting_enabled}}"
+ i18n-values="label:safeBrowsingEnableExtendedReporting">
+ </cr-settings-checkbox>
+ <cr-settings-checkbox pref="{{prefs.safebrowsing.enabled}}"
+ i18n-values="label:safeBrowsingEnableProtection">
+ </cr-settings-checkbox>
+<if expr="_google_chrome">
+ <cr-settings-checkbox
+ pref="{{prefs.spellcheck.use_spelling_service}}"
+ i18n-values="label:spellingPref">
+ </cr-settings-checkbox>
+<if expr="chromeos">
+ <cr-settings-checkbox
+ pref="{{prefs.cros.metrics.reportingEnabled}}"
+ i18n-values="label:enableLogging">
+ </cr-settings-checkbox>
+</if>
+ <!-- TODO(jlklein): Add non-chromeos metrics box. -->
+</if>
+ <cr-settings-checkbox pref="{{prefs.enable_do_not_track}}"
+ i18n-values="label:doNotTrack">
+ </cr-settings-checkbox>
+<if expr="chromeos">
+ <cr-settings-checkbox
+ pref="{{prefs.cros.device.attestation_for_content_protection_enabled}}"
+ i18n-values="label:enableContentProtectionAttestation">
+ </cr-settings-checkbox>
+ <cr-settings-checkbox
+ pref="{{prefs.settings.internet.wake_on_wifi_ssid}}"
+ i18n-values="label:wakeOnWifi">
+ </cr-settings-checkbox>
+</if>
+ <div class="privacy-buttons layout horizontal end-justified">
+ <cr-button i18n-content="siteSettingsLabel"></cr-button>
+ <cr-button raised i18n-content="clearBrowsingDataLabel">
+ </cr-button>
+ </div>
+ </paper-material>
+ </template>
+ <script src="privacy_page.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.js b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.js
new file mode 100644
index 00000000000..1dce8a821a6
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.js
@@ -0,0 +1,75 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'cr-settings-privacy-page' is the settings page containing privacy and
+ * security settings.
+ *
+ * Example:
+ *
+ * <iron-animated-pages>
+ * <cr-settings-privacy-page prefs="{{prefs}}">
+ * </cr-settings-privacy-page>
+ * ... other pages ...
+ * </iron-animated-pages>
+ *
+ * @group Chrome Settings Elements
+ * @element cr-settings-privacy-page
+ */
+Polymer({
+ is: 'cr-settings-privacy-page',
+
+ properties: {
+ /**
+ * Preferences state.
+ */
+ prefs: {
+ type: Object,
+ notify: true,
+ },
+
+ /**
+ * Route for the page.
+ */
+ route: String,
+
+ /**
+ * Whether the page is a subpage.
+ */
+ subpage: {
+ type: Boolean,
+ value: false,
+ readOnly: true,
+ },
+
+ /**
+ * ID of the page.
+ */
+ PAGE_ID: {
+ type: String,
+ value: 'privacy',
+ readOnly: true,
+ },
+
+ /**
+ * Title for the page header and navigation menu.
+ */
+ pageTitle: {
+ type: String,
+ value: function() {
+ return loadTimeData.getString('privacyPageTitle');
+ },
+ },
+
+ /**
+ * Name of the 'iron-icon' to show.
+ */
+ icon: {
+ type: String,
+ value: 'lock',
+ readOnly: true,
+ },
+ },
+});
diff --git a/chromium/chrome/browser/resources/settings/routes.html b/chromium/chrome/browser/resources/settings/routes.html
index 9d53c9b67a4..5d5328e110a 100644
--- a/chromium/chrome/browser/resources/settings/routes.html
+++ b/chromium/chrome/browser/resources/settings/routes.html
@@ -1,4 +1,4 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/more-routing/more-routing.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/more-routing/more-routing.html">
<!-- Drivers manage how the URL is read, and how to navigate to URLs. "hash"
based driver means URLs like /#!/a11y are generated. This is preferred to
@@ -7,11 +7,15 @@
<more-routing-config driver="hash"></more-routing-config>
<more-route name="a11y" path="/a11y"></more-route>
+<more-route name="appearance" path="/appearance"></more-route>
<more-route name="dateTime" path="/dateTime"></more-route>
<more-route name="downloads" path="/downloads"></more-route>
<more-route name="internet" path="/internet">
<more-route name="internet-detail" path="/detail/:guid"></more-route>
</more-route>
+<more-route name="privacy" path="/privacy"></more-route>
<more-route name="search" path="/search">
<more-route name="search-engines" path="/engines"></more-route>
</more-route>
+<more-route name="sync" path="/sync"></more-route>
+<more-route name="users" path="/users"></more-route>
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_adder.html b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_adder.html
index 2fc5af0fe74..780fad012a7 100644
--- a/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_adder.html
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_adder.html
@@ -1,8 +1,8 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/iron-flex-layout/classes/iron-flex-layout.html">
-<link rel="import" href="chrome://resources/cr_elements/v0_8/cr_button/cr_button.html">
-<link rel="import" href="chrome://resources/cr_elements/v0_8/cr_collapse/cr_collapse.html">
-<link rel="import" href="chrome://resources/cr_elements/v0_8/cr_input/cr_input.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_button/cr_button.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_collapse/cr_collapse.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_input/cr_input.html">
<dom-module id="cr-search-engine-adder">
<link rel="import" type="css" href="search_engine_adder.css">
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.css b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.css
new file mode 100644
index 00000000000..d2b390d6fb5
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.css
@@ -0,0 +1,29 @@
+/* Copyright (c) 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+.icons {
+ display: inline-block;
+ text-align: right;
+ width: 96px;
+}
+
+.inputs {
+ display: inline-block;
+}
+
+.inputs > cr-input {
+ border-bottom: 1px solid gray;
+}
+
+.inputs > cr-input:not(:last-child) {
+ border-right: 1px solid gray;
+}
+
+.narrow-input {
+ width: 140px;
+}
+
+.wide-input {
+ width: 300px;
+}
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.html b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.html
new file mode 100644
index 00000000000..9592d29d08c
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.html
@@ -0,0 +1,31 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_input/cr_input.html">
+
+<dom-module id="cr-search-engine-entry">
+ <link rel="import" type="css" href="search_engine_entry.css">
+ <template>
+ <div class="entry">
+ <div class="inputs">
+ <cr-input id="domainField" class="narrow-input" auto-validate="false"
+ value="{{engine.name}}" on-change="fieldChanged_" disabled required>
+ </cr-input>
+ <cr-input id="keywordField" class="narrow-input" auto-validate="false"
+ value="{{engine.keyword}}" on-change="fieldChanged_" disabled
+ required>
+ </cr-input>
+ <cr-input id="queryURLField" class="wide-input" auto-validate="false"
+ value="{{engine.url}}" on-change="fieldChanged_" disabled required>
+ </cr-input>
+ </div>
+ <div class="icons">
+ <iron-icon id="checkIcon" icon="check" on-click="makeDefault_" hidden>
+ </iron-icon>
+ <iron-icon id="deleteIcon" icon="clear" on-click="deleteEngine_" hidden>
+ </iron-icon>
+ <iron-icon icon="settings" on-click="toggleEditable_"></iron-icon>
+ </div>
+ </div>
+ </template>
+ <script src="search_engine_entry.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.js b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.js
new file mode 100644
index 00000000000..db9e80d623d
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.js
@@ -0,0 +1,66 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview 'cr-search-engine-entry' is a component for showing a search
+ * engine with its name, domain and query URL.
+ *
+ * @group Chrome Settings Elements
+ * @element cr-search-engine-entry
+ */
+Polymer({
+ is: 'cr-search-engine-entry',
+
+ properties: {
+ /** @type {!SearchEngine} */
+ engine: Object
+ },
+
+ /** @private */
+ deleteEngine_: function() {
+ chrome.searchEnginesPrivate.removeSearchEngine(this.engine.guid);
+ },
+
+ /** @private */
+ makeDefault_: function() {
+ chrome.searchEnginesPrivate.setSelectedSearchEngine(this.engine.guid);
+ this.makeNotEditable_();
+ },
+
+ /** @private */
+ toggleEditable_: function() {
+ this.$.domainField.disabled = !this.$.domainField.disabled;
+ this.$.keywordField.disabled = !this.$.keywordField.disabled;
+ this.$.queryURLField.disabled = !this.$.queryURLField.disabled;
+
+ this.$.checkIcon.hidden =
+ !this.$.checkIcon.hidden || this.engine.isSelected;
+ this.$.deleteIcon.hidden =
+ !this.$.deleteIcon.hidden || this.engine.isSelected;
+ },
+
+ /** @private */
+ makeNotEditable_: function() {
+ this.$.domainField.disabled = true;
+ this.$.keywordField.disabled = true;
+ this.$.queryURLField.disabled = true;
+
+ this.$.checkIcon.hidden = true;
+ this.$.deleteIcon.hidden = true;
+ },
+
+ /** @private */
+ fieldChanged_: function() {
+ // NOTE: This currently doesn't fire in response to a change event from the
+ // cr-input, even though it should. This Polymer change should fix the
+ // issue: https://github.com/PolymerElements/paper-input/pull/33
+ chrome.searchEnginesPrivate.updateSearchEngine(
+ this.engine.guid,
+ this.$.domainField.value,
+ this.$.keywordField.value,
+ this.$.queryURLField.value);
+ this.makeNotEditable_();
+ }
+});
+
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.css b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.css
new file mode 100644
index 00000000000..94131eaa6ab
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.css
@@ -0,0 +1,23 @@
+/* Copyright (c) 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+.container {
+ max-height: 400px;
+ overflow-y: auto;
+ width: 760px;
+}
+
+.headers > div {
+ background-color: #6c6c6c;
+ color: white;
+ display: inline-block;
+}
+
+.narrow-label {
+ width: 140px;
+}
+
+.wide-label {
+ width: 300px;
+}
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.html b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.html
new file mode 100644
index 00000000000..85c245c9f5e
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.html
@@ -0,0 +1,24 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_input/cr_input.html">
+<link rel="import" href="search_engine_entry.html">
+
+<dom-module id="cr-search-engines-list">
+ <link rel="import" type="css" href="search_engines_list.css">
+ <template>
+ <div class="container">
+ <div class="headers">
+ <div class="narrow-label" i18n-content="searchEnginesDomainLabel"></div>
+ <div class="narrow-label" i18n-content="searchEnginesKeywordLabel">
+ </div>
+ <div class="wide-label" i18n-content="searchEnginesQueryURLLabel"></div>
+ </div>
+ <div class="entries">
+ <template is="dom-repeat" items="[[engines]]">
+ <cr-search-engine-entry engine="[[item]]"></cr-search-engine-entry>
+ </template>
+ </div>
+ </div>
+ </template>
+ <script src="search_engines_list.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.js b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.js
new file mode 100644
index 00000000000..88259065525
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.js
@@ -0,0 +1,22 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview 'cr-search-engines-list' is a component for showing a list of
+ * search engines.
+ *
+ * @group Chrome Settings Elements
+ * @element cr-search-engines-list
+ */
+Polymer({
+ is: 'cr-search-engines-list',
+
+ properties: {
+ /** @type {!Array<!SearchEngine>} */
+ engines: {
+ type: Array,
+ value: function() { return []; }
+ }
+ },
+});
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.css b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.css
new file mode 100644
index 00000000000..6310bd1aed1
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.css
@@ -0,0 +1,8 @@
+/* Copyright (c) 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+.list-label {
+ margin-bottom: 20px;
+ margin-top: 30px;
+}
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html
index b58eb1f6dd7..a8bbfb697b3 100644
--- a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html
@@ -1,15 +1,23 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
<link rel="import" href="search_engine_adder.html">
+<link rel="import" href="search_engines_list.html">
<dom-module id="cr-settings-search-engines-page">
<link rel="import" type="css" href="chrome://md-settings/settings_page/settings_page.css">
+ <link rel="import" type="css" href="search_engines_page.css">
<template>
<paper-material>
<div class="content">
<cr-search-engine-adder></cr-search-engine-adder>
- <!-- TODO(orenb): Add search engine lists with defaultSearchEngines and
- otherSearchEngines. -->
+
+ <div class="list-label" i18n-content="searchEnginesLabel"></div>
+ <cr-search-engines-list engines="[[defaultEngines]]">
+ </cr-search-engines-list>
+
+ <div class="list-label" i18n-content="searchEnginesOtherLabel"></div>
+ <cr-search-engines-list engines="[[otherEngines]]">
+ </cr-search-engines-list>
</div>
</paper-material>
</template>
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.js b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.js
index b47c20d4d39..a3138291135 100644
--- a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.js
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.js
@@ -64,5 +64,39 @@ Polymer({
value: 'search',
readOnly: true
},
+
+ /** @type {!Array<!SearchEngine>} */
+ defaultEngines: {
+ type: Array,
+ value: function() { return []; }
+ },
+
+ /** @type {!Array<!SearchEngine>} */
+ otherEngines: {
+ type: Array,
+ value: function() { return []; }
+ },
},
+
+ /** @override */
+ ready: function() {
+ chrome.searchEnginesPrivate.onSearchEnginesChanged.addListener(
+ this.enginesChanged_.bind(this));
+ this.enginesChanged_();
+ },
+
+ /** @private */
+ enginesChanged_: function() {
+ chrome.searchEnginesPrivate.getSearchEngines(function(engines) {
+ this.defaultEngines = engines.filter(function(engine) {
+ return engine.type ==
+ chrome.searchEnginesPrivate.SearchEngineType.DEFAULT;
+ }, this);
+
+ this.otherEngines = engines.filter(function(engine) {
+ return engine.type ==
+ chrome.searchEnginesPrivate.SearchEngineType.OTHER;
+ }, this);
+ }.bind(this));
+ }
});
diff --git a/chromium/chrome/browser/resources/settings/search_page/search_page.html b/chromium/chrome/browser/resources/settings/search_page/search_page.html
index 9c457c13b38..4ac90a07b66 100644
--- a/chromium/chrome/browser/resources/settings/search_page/search_page.html
+++ b/chromium/chrome/browser/resources/settings/search_page/search_page.html
@@ -1,7 +1,7 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-material/paper-material.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/more-routing/more-routing.html">
-<link rel="import" href="chrome://resources/cr_elements/v0_8/cr_button/cr_button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/more-routing/more-routing.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_button/cr_button.html">
<link rel="import" href="chrome://md-settings/checkbox/checkbox.html">
<dom-module id="cr-settings-search-page">
@@ -13,7 +13,7 @@
<div class="search-engines">
<select id="searchEnginesMenu" on-change="defaultEngineGuidChanged_">
- <template is="x-repeat" items="[[searchEngines]]">
+ <template is="dom-repeat" items="[[searchEngines]]">
<option value="[[item.guid]]">{{item.name}}</option>
</template>
</select>
diff --git a/chromium/chrome/browser/resources/settings/settings.html b/chromium/chrome/browser/resources/settings/settings.html
index e8f0544604d..b0da7d036f2 100644
--- a/chromium/chrome/browser/resources/settings/settings.html
+++ b/chromium/chrome/browser/resources/settings/settings.html
@@ -1,4 +1,4 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
<link rel="import" href="chrome://md-settings/settings_ui/settings_ui.html">
<link rel="import" href="chrome://md-settings/prefs/prefs.html">
diff --git a/chromium/chrome/browser/resources/settings/settings_drawer/settings_drawer.html b/chromium/chrome/browser/resources/settings/settings_drawer/settings_drawer.html
index 14a943f0e1e..7497270e940 100644
--- a/chromium/chrome/browser/resources/settings/settings_drawer/settings_drawer.html
+++ b/chromium/chrome/browser/resources/settings/settings_drawer/settings_drawer.html
@@ -1,5 +1,5 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
<link rel="import" href="chrome://md-settings/settings_menu/settings_menu.html">
<dom-module id="cr-settings-drawer">
@@ -18,4 +18,4 @@
</cr-settings-menu>
</template>
<script src="settings_drawer.js"></script>
-</polymer-element>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/settings_main/settings_main.css b/chromium/chrome/browser/resources/settings/settings_main/settings_main.css
index b40e1409dc1..ecdabd5564a 100644
--- a/chromium/chrome/browser/resources/settings/settings_main/settings_main.css
+++ b/chromium/chrome/browser/resources/settings/settings_main/settings_main.css
@@ -4,8 +4,13 @@
:host {
background-color: rgb(219, 222, 224);
+ bottom: 0;
color: black;
display: block;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
}
#mainContainer {
diff --git a/chromium/chrome/browser/resources/settings/settings_main/settings_main.html b/chromium/chrome/browser/resources/settings/settings_main/settings_main.html
index c74180e18c8..4218920becd 100644
--- a/chromium/chrome/browser/resources/settings/settings_main/settings_main.html
+++ b/chromium/chrome/browser/resources/settings/settings_main/settings_main.html
@@ -1,17 +1,19 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/iron-pages/iron-pages.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-pages/iron-pages.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/more-routing/more-routing.html">
<link rel="import" href="chrome://md-settings/routes.html">
<link rel="import" href="chrome://md-settings/settings_page/settings_page_header.html">
<link rel="import" href="chrome://md-settings/a11y_page/a11y_page.html">
+<link rel="import" href="chrome://md-settings/appearance_page/appearance_page.html">
<link rel="import" href="chrome://md-settings/date_time_page/date_time_page.html">
<link rel="import" href="chrome://md-settings/downloads_page/downloads_page.html">
+<link rel="import" href="chrome://md-settings/privacy_page/privacy_page.html">
<link rel="import" href="chrome://md-settings/search_engines_page/search_engines_page.html">
<link rel="import" href="chrome://md-settings/search_page/search_page.html">
-
-<!-- TODO: Uncomment pages as they are upgraded.
+<link rel="import" href="chrome://md-settings/sync_page/sync_page.html">
+<link rel="import" href="chrome://md-settings/users_page/users_page.html">
<link rel="import" href="chrome://md-settings/internet_page/internet_page.html">
<link rel="import" href="chrome://md-settings/internet_page/internet_detail_page.html">
--->
<dom-module id="cr-settings-main">
<link rel="import" type="css" href="settings_main.css">
@@ -23,32 +25,35 @@
<more-route-selector selected-params="{{params}}">
<iron-pages id="pageContainer" selected-item="{{selectedPage}}"
on-iron-select="onIronSelect_" attr-for-selected="PAGE_ID">
- <!-- TODO: Uncomment pages as they are upgraded. -->
<if expr="chromeos">
- <!--
<cr-settings-internet-page route="internet">
</cr-settings-internet-page>
- -->
- <!--
<cr-settings-internet-detail-page route="internet-detail"
- subpage="true" guid="{{params.guid}}">
+ subpage="true" guid="[[params.guid]]"
+ selected-page="[[selectedPage]]">
</cr-settings-internet-detail-page>
- -->
</if>
<cr-settings-a11y-page prefs="{{prefs}}" route="a11y">
</cr-settings-a11y-page>
+ <cr-settings-appearance-page prefs="{{prefs}}" route="appearance">
+ </cr-settings-appearance-page>
<if expr="chromeos">
<cr-settings-date-time-page prefs="{{prefs}}" route="dateTime">
</cr-settings-date-time-page>
</if>
+ <cr-settings-privacy-page prefs="{{prefs}}" route="privacy">
+ </cr-settings-privacy-page>
<cr-settings-downloads-page prefs="{{prefs}}" route="downloads">
</cr-settings-downloads-page>
<cr-settings-search-page route="search"></cr-settings-search-page>
<cr-settings-search-engines-page route="search-engines">
</cr-settings-search-engines-page>
+ <cr-settings-sync-page route="sync"></cr-settings-sync-page>
+ <cr-settings-users-page prefs="{{prefs}}" route="users">
+ </cr-settings-users-page>
</iron-pages>
</more-route-selector>
</div>
</template>
<script src="settings_main.js"></script>
-</polymer-element>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/settings_menu/settings_menu.html b/chromium/chrome/browser/resources/settings/settings_menu/settings_menu.html
index fd502b275b7..8d738bc19ca 100644
--- a/chromium/chrome/browser/resources/settings/settings_menu/settings_menu.html
+++ b/chromium/chrome/browser/resources/settings/settings_menu/settings_menu.html
@@ -1,14 +1,14 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/iron-icon/iron-icon.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/iron-icons/iron-icons.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-menu/paper-menu.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-item/paper-icon-item.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/iron-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-menu/paper-menu.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-item/paper-icon-item.html">
<dom-module id="cr-settings-menu">
<link rel="import" type="css" href="settings_menu.css">
<template>
<paper-menu selected="{{selectedId}}" attr-for-selected="data-id">
- <template is="x-repeat" items="[[pages]]">
+ <template is="dom-repeat" items="[[pages]]">
<paper-icon-item data-id$="[[item.PAGE_ID]]" icon-width="34px">
<iron-icon icon="[[item.icon]]" item-icon></iron-icon>
<span>[[item.pageTitle]]</span>
diff --git a/chromium/chrome/browser/resources/settings/settings_page/settings_page.css b/chromium/chrome/browser/resources/settings/settings_page/settings_page.css
index 86a5e93af19..25dd0d8d9d8 100644
--- a/chromium/chrome/browser/resources/settings/settings_page/settings_page.css
+++ b/chromium/chrome/browser/resources/settings/settings_page/settings_page.css
@@ -11,8 +11,16 @@
background-color: white;
display: flex;
flex-direction: column;
- padding-bottom: 40px;
- padding-top: 40px;
+ padding: 40px;
+}
+
+.soft-border {
+ border: 1px solid #c4c4c4;
+ border-radius: 2px;
+}
+
+.page-content {
+ width: 760px;
}
cr-settings-page-header {
diff --git a/chromium/chrome/browser/resources/settings/settings_page/settings_page_header.html b/chromium/chrome/browser/resources/settings/settings_page/settings_page_header.html
index 00361f9a36d..c223ed9800d 100644
--- a/chromium/chrome/browser/resources/settings/settings_page/settings_page_header.html
+++ b/chromium/chrome/browser/resources/settings/settings_page/settings_page_header.html
@@ -1,6 +1,7 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/iron-icon/iron-icon.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/iron-icons/device-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/device-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/more-routing/routing.html">
<dom-module id="cr-settings-page-header">
<link rel="import" type="css" href="settings_page_header.css">
@@ -11,8 +12,8 @@
<iron-icon icon="{{topPageIcon_}}"><iron-icon>
</div>
- <template is="x-repeat" items="{{parentPages_}}">
- <a href="{{urlFor_(item)}}">{{item.pageTitle}}</a>&nbsp;&gt;
+ <template is="dom-repeat" items="{{parentPages_}}">
+ <a href="{{urlFor_(item)}}">{{item.pageTitle}}</a>&nbsp;&gt;&nbsp;
</template>
<span>{{currentPageTitle_}}</span>
diff --git a/chromium/chrome/browser/resources/settings/settings_page/settings_page_header.js b/chromium/chrome/browser/resources/settings/settings_page/settings_page_header.js
index 7a151a8a980..ce1382e2188 100644
--- a/chromium/chrome/browser/resources/settings/settings_page/settings_page_header.js
+++ b/chromium/chrome/browser/resources/settings/settings_page/settings_page_header.js
@@ -81,7 +81,7 @@ Polymer({
* @private
*/
urlFor_: function(page) {
- return page.route ? urlFor(page.route) : '';
+ return page.route ? MoreRouting.urlFor(page.route) : '';
},
/**
@@ -92,7 +92,7 @@ Polymer({
getCurrentPageTitle_: function(pageStack) {
if (pageStack.length == 0)
return '';
- return pageStack[0].pageTitle;
+ return pageStack[pageStack.length - 1].pageTitle;
},
/** @private */
@@ -103,8 +103,6 @@ Polymer({
this.pageStack = this.pageStack.concat(this.selectedPage);
} else if (this.selectedPage) {
this.pageStack = [this.selectedPage];
- } else {
- this.pageStack = [];
}
},
diff --git a/chromium/chrome/browser/resources/settings/settings_resources.grd b/chromium/chrome/browser/resources/settings/settings_resources.grd
index 384ba67e9bd..c19a885dff2 100644
--- a/chromium/chrome/browser/resources/settings/settings_resources.grd
+++ b/chromium/chrome/browser/resources/settings/settings_resources.grd
@@ -23,6 +23,17 @@
<structure name="IDR_SETTINGS_A11Y_PAGE_CSS"
file="a11y_page/a11y_page.css"
type="chrome_html" />
+ <structure name="IDR_SETTINGS_APPEARANCE_PAGE_CSS"
+ file="appearance_page/appearance_page.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_APPEARANCE_PAGE_HTML"
+ file="appearance_page/appearance_page.html"
+ type="chrome_html"
+ flattenhtml="true"
+ allowexternalscript="true" />
+ <structure name="IDR_SETTINGS_APPEARANCE_PAGE_JS"
+ file="appearance_page/appearance_page.js"
+ type="chrome_html" />
<structure name="IDR_SETTINGS_CHECKBOX_HTML"
file="checkbox/checkbox.html"
type="chrome_html" />
@@ -115,8 +126,16 @@
<structure name="IDR_SETTINGS_PREF_TRACKER_JS"
file="pref_tracker/pref_tracker.js"
type="chrome_html" />
- <structure name="IDR_SETTINGS_POLYMER_CONFIG_JS"
- file="polymer_config.js"
+ <structure name="IDR_SETTINGS_PRIVACY_PAGE_CSS"
+ file="privacy_page/privacy_page.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_PRIVACY_PAGE_HTML"
+ file="privacy_page/privacy_page.html"
+ type="chrome_html"
+ flattenhtml="true"
+ allowexternalscript="true" />
+ <structure name="IDR_SETTINGS_PRIVACY_PAGE_JS"
+ file="privacy_page/privacy_page.js"
type="chrome_html" />
<structure name="IDR_SETTINGS_ROUTES_HTML"
file="routes.html"
@@ -132,6 +151,28 @@
<structure name="IDR_SETTINGS_SEARCH_ENGINES_PAGE_SEARCH_ENGINE_ADDER_CSS"
file="search_engines_page/search_engine_adder.css"
type="chrome_html" />
+ <structure name="IDR_SETTINGS_SEARCH_ENGINES_PAGE_SEARCH_ENGINE_ENTRY_JS"
+ file="search_engines_page/search_engine_entry.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_SEARCH_ENGINES_PAGE_SEARCH_ENGINE_ENTRY_HTML"
+ file="search_engines_page/search_engine_entry.html"
+ type="chrome_html"
+ flattenhtml="true"
+ allowexternalscript="true" />
+ <structure name="IDR_SETTINGS_SEARCH_ENGINES_PAGE_SEARCH_ENGINE_ENTRY_CSS"
+ file="search_engines_page/search_engine_entry.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_SEARCH_ENGINES_PAGE_SEARCH_ENGINES_LIST_JS"
+ file="search_engines_page/search_engines_list.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_SEARCH_ENGINES_PAGE_SEARCH_ENGINES_LIST_HTML"
+ file="search_engines_page/search_engines_list.html"
+ type="chrome_html"
+ flattenhtml="true"
+ allowexternalscript="true" />
+ <structure name="IDR_SETTINGS_SEARCH_ENGINES_PAGE_SEARCH_ENGINES_LIST_CSS"
+ file="search_engines_page/search_engines_list.css"
+ type="chrome_html" />
<structure name="IDR_SETTINGS_SEARCH_ENGINES_PAGE_SEARCH_ENGINES_PAGE_JS"
file="search_engines_page/search_engines_page.js"
type="chrome_html" />
@@ -140,6 +181,9 @@
type="chrome_html"
flattenhtml="true"
allowexternalscript="true" />
+ <structure name="IDR_SETTINGS_SEARCH_ENGINES_PAGE_SEARCH_ENGINES_PAGE_CSS"
+ file="search_engines_page/search_engines_page.css"
+ type="chrome_html" />
<structure name="IDR_SETTINGS_SEARCH_PAGE_JS"
file="search_page/search_page.js"
type="chrome_html" />
@@ -151,6 +195,17 @@
<structure name="IDR_SETTINGS_SEARCH_PAGE_CSS"
file="search_page/search_page.css"
type="chrome_html" />
+ <structure name="IDR_SETTINGS_SYNC_PAGE_JS"
+ file="sync_page/sync_page.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_SYNC_PAGE_HTML"
+ file="sync_page/sync_page.html"
+ type="chrome_html"
+ flattenhtml="true"
+ allowexternalscript="true" />
+ <structure name="IDR_SETTINGS_SYNC_PAGE_CSS"
+ file="sync_page/sync_page.css"
+ type="chrome_html" />
<structure name="IDR_SETTINGS_SETTINGS_HTML"
file="settings.html"
type="chrome_html" />
@@ -158,8 +213,8 @@
file="settings.js"
type="chrome_html" />
<if expr="chromeos">
- <structure name="IDR_SETTINGS_INTERNET_DETAIL_PAGE_STYLE_HTML"
- file="internet_page/internet_detail_page_style.html"
+ <structure name="IDR_SETTINGS_INTERNET_DETAIL_PAGE_CSS"
+ file="internet_page/internet_detail_page.css"
type="chrome_html" />
<structure name="IDR_SETTINGS_INTERNET_DETAIL_PAGE_HTML"
file="internet_page/internet_detail_page.html"
@@ -173,8 +228,80 @@
<structure name="IDR_SETTINGS_INTERNET_PAGE_JS"
file="internet_page/internet_page.js"
type="chrome_html" />
- <structure name="IDR_SETTINGS_NETWORK_SUMMARY_STYLE_HTML"
- file="internet_page/network_summary_style.html"
+ <structure name="IDR_SETTINGS_NETWORK_IP_CONFIG_CSS"
+ file="internet_page/network_ip_config.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_IP_CONFIG_HTML"
+ file="internet_page/network_ip_config.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_IP_CONFIG_JS"
+ file="internet_page/network_ip_config.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_LIST_CSS"
+ file="internet_page/network_list.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_LIST_HTML"
+ file="internet_page/network_list.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_LIST_JS"
+ file="internet_page/network_list.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_LIST_ITEM_CSS"
+ file="internet_page/network_list_item.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_LIST_ITEM_HTML"
+ file="internet_page/network_list_item.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_LIST_ITEM_JS"
+ file="internet_page/network_list_item.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_NAMESERVERS_CSS"
+ file="internet_page/network_nameservers.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_NAMESERVERS_HTML"
+ file="internet_page/network_nameservers.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_NAMESERVERS_JS"
+ file="internet_page/network_nameservers.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROPERTY_LIST_CSS"
+ file="internet_page/network_property_list.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROPERTY_LIST_HTML"
+ file="internet_page/network_property_list.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROPERTY_LIST_JS"
+ file="internet_page/network_property_list.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROXY_CSS"
+ file="internet_page/network_proxy.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROXY_HTML"
+ file="internet_page/network_proxy.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROXY_JS"
+ file="internet_page/network_proxy.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROXY_EXCLUSIONS_CSS"
+ file="internet_page/network_proxy_exclusions.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROXY_EXCLUSIONS_HTML"
+ file="internet_page/network_proxy_exclusions.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROXY_EXCLUSIONS_JS"
+ file="internet_page/network_proxy_exclusions.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROXY_INPUT_CSS"
+ file="internet_page/network_proxy_input.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROXY_INPUT_HTML"
+ file="internet_page/network_proxy_input.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_PROXY_INPUT_JS"
+ file="internet_page/network_proxy_input.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_NETWORK_SUMMARY_CSS"
+ file="internet_page/network_summary.css"
type="chrome_html" />
<structure name="IDR_SETTINGS_NETWORK_SUMMARY_HTML"
file="internet_page/network_summary.html"
@@ -182,8 +309,8 @@
<structure name="IDR_SETTINGS_NETWORK_SUMMARY_JS"
file="internet_page/network_summary.js"
type="chrome_html" />
- <structure name="IDR_SETTINGS_NETWORK_SUMMARY_ITEM_STYLE_HTML"
- file="internet_page/network_summary_item_style.html"
+ <structure name="IDR_SETTINGS_NETWORK_SUMMARY_ITEM_CSS"
+ file="internet_page/network_summary_item.css"
type="chrome_html" />
<structure name="IDR_SETTINGS_NETWORK_SUMMARY_ITEM_HTML"
file="internet_page/network_summary_item.html"
@@ -191,6 +318,28 @@
<structure name="IDR_SETTINGS_NETWORK_SUMMARY_ITEM_JS"
file="internet_page/network_summary_item.js"
type="chrome_html" />
+ <structure name="IDR_SETTINGS_USERS_PAGE_USER_LIST_JS"
+ file="users_page/user_list.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_USERS_PAGE_USER_LIST_HTML"
+ file="users_page/user_list.html"
+ type="chrome_html"
+ flattenhtml="true"
+ allowexternalscript="true" />
+ <structure name="IDR_SETTINGS_USERS_PAGE_USER_LIST_CSS"
+ file="users_page/user_list.css"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_USERS_PAGE_JS"
+ file="users_page/users_page.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_USERS_PAGE_HTML"
+ file="users_page/users_page.html"
+ type="chrome_html"
+ flattenhtml="true"
+ allowexternalscript="true" />
+ <structure name="IDR_SETTINGS_USERS_PAGE_CSS"
+ file="users_page/users_page.css"
+ type="chrome_html" />
</if>
</structures>
</release>
diff --git a/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html b/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html
index 0a3a44a8b82..d934d16797f 100644
--- a/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html
+++ b/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html
@@ -1,6 +1,6 @@
-<link rel="import" href="chrome://resources/polymer/v0_8/polymer/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-drawer-panel/paper-drawer-panel.html">
-<link rel="import" href="chrome://resources/polymer/v0_8/paper-icon-button/paper-icon-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-drawer-panel/paper-drawer-panel.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html">
<link rel="import" href="chrome://md-settings/settings_drawer/settings_drawer.html">
<link rel="import" href="chrome://md-settings/settings_main/settings_main.html">
diff --git a/chromium/chrome/browser/resources/settings/sync_page/sync_page.css b/chromium/chrome/browser/resources/settings/sync_page/sync_page.css
new file mode 100644
index 00000000000..3cf92e790e5
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/sync_page/sync_page.css
@@ -0,0 +1,22 @@
+/* Copyright (c) 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+paper-radio-button {
+ display: block;
+}
+
+.checkbox-container {
+ display: flex;
+ flex-flow: column;
+}
+
+.checkbox-container-row {
+ display: flex;
+}
+
+.checkbox-container-row > cr-checkbox {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+} \ No newline at end of file
diff --git a/chromium/chrome/browser/resources/settings/sync_page/sync_page.html b/chromium/chrome/browser/resources/settings/sync_page/sync_page.html
new file mode 100644
index 00000000000..f8743318019
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/sync_page/sync_page.html
@@ -0,0 +1,79 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-radio-button/paper-radio-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-radio-group/paper-radio-group.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_button/cr_button.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_checkbox/cr_checkbox.html">
+<link rel="import" href="chrome://md-settings/checkbox/checkbox.html">
+
+<dom-module id="cr-settings-sync-page">
+ <link rel="import" type="css"
+ href="chrome://md-settings/settings_page/settings_page.css">
+ <link rel="import" type="css" href="sync_page.css">
+ <template>
+ <paper-material>
+ <div i18n-content="syncPageTitle"></div>
+ <select>
+ <option value="sync-everything"
+ i18n-content="syncEverythingMenuOption">
+ </option>
+ <option value="choose-what-to-sync"
+ i18n-content="chooseWhatToSyncMenuOption">
+ </option>
+ </select>
+ <div class="checkbox-container">
+ <div class="checkbox-container-row">
+ <cr-checkbox>
+ <span i18n-content="appCheckboxLabel"></span>
+ </cr-checkbox>
+ <cr-checkbox>
+ <span i18n-content="extensionsCheckboxLabel"></span>
+ </cr-checkbox>
+ <cr-checkbox>
+ <span i18n-content="settingsCheckboxLabel"></span>
+ </cr-checkbox>
+ </div>
+ <div class="checkbox-container-row">
+ <cr-checkbox>
+ <span i18n-content="autofillCheckboxLabel"></span>
+ </cr-checkbox>
+ <cr-checkbox>
+ <span i18n-content="historyCheckboxLabel"></span>
+ </cr-checkbox>
+ <cr-checkbox>
+ <span i18n-content="themesAndWallpapersCheckboxLabel"></span>
+ </cr-checkbox>
+ </div>
+ <div class="checkbox-container-row">
+ <cr-checkbox>
+ <span i18n-content="bookmarksCheckboxLabel"></span>
+ </cr-checkbox>
+ <cr-checkbox>
+ <span i18n-content="passwordsCheckboxLabel"></span>
+ </cr-checkbox>
+ <cr-checkbox>
+ <span i18n-content="openTabsCheckboxLabel"></span>
+ </cr-checkbox>
+ </div>
+ </div>
+ </paper-material>
+ <paper-material>
+ <div i18n-content="encryptionOptionsTitle"></div>
+ <div i18n-content="syncDataEncryptedText"></div>
+ <paper-radio-group selected="encrypt-with-google">
+ <paper-radio-button name="encrypt-with-google"
+ i18n-content="encryptWithGoogleCredentialsLabel">
+ </paper-radio-button>
+ <paper-radio-button name="encrypt-with-passphrase"
+ i18n-content="encryptWithSyncPassphraseLabel">
+ </paper-radio-button>
+ </paper-radio-group>
+ <div>
+ <cr-button i18n-content="useDefaultSettingsButton"></cr-button>
+ <cr-button i18n-content="cancelButton"></cr-button>
+ <cr-button i18n-content="okButton"></cr-button>
+ </div>
+ </paper-material>
+ </template>
+ <script src="sync_page.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/sync_page/sync_page.js b/chromium/chrome/browser/resources/settings/sync_page/sync_page.js
new file mode 100644
index 00000000000..f671e1fdc8f
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/sync_page/sync_page.js
@@ -0,0 +1,69 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'cr-settings-sync-page' is the settings page containing sync settings.
+ *
+ * Example:
+ *
+ * <iron-animated-pages>
+ * <cr-settings-sync-page></cr-settings-sync-page>
+ * ... other pages ...
+ * </iron-animated-pages>
+ *
+ * @group Chrome Settings Elements
+ * @element cr-settings-sync-page
+ */
+Polymer({
+ is: 'cr-settings-sync-page',
+
+ properties: {
+ /**
+ * Route for the page.
+ */
+ route: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * Whether the page is a subpage.
+ * TODO(khorimoto): Make this a subpage once the "People" full page has
+ * landed, since this is supposed to be that page's subpage.
+ */
+ subpage: {
+ type: Boolean,
+ value: false,
+ readOnly: true,
+ },
+
+ /**
+ * ID of the page.
+ */
+ PAGE_ID: {
+ type: String,
+ value: 'sync',
+ readOnly: true,
+ },
+
+ /**
+ * Title for the page header and navigation menu.
+ */
+ pageTitle: {
+ type: String,
+ value: function() { return loadTimeData.getString('syncPageTitle'); },
+ },
+
+ /**
+ * Name of the 'iron-icon' to show.
+ * TODO(khorimoto): Find the correct icon to show.
+ */
+ icon: {
+ type: String,
+ value: 'accessibility',
+ readOnly: true,
+ },
+ },
+});
diff --git a/chromium/chrome/browser/resources/settings/users_page/user_list.css b/chromium/chrome/browser/resources/settings/users_page/user_list.css
new file mode 100644
index 00000000000..bd4ee803521
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/users_page/user_list.css
@@ -0,0 +1,30 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+.clear-icon {
+ color: #6e6e6e;
+}
+
+.clear-icon::shadow iron-icon {
+ height: 18px;
+ width: 18px;
+}
+
+.user {
+ -webkit-padding-end: 8px;
+ -webkit-padding-start: 20px;
+ font-size: 0.75em;
+ height: 34px;
+}
+
+.user:hover {
+ background-color: #f0f0f0;
+}
+
+.user-list {
+ border: 1px solid gray;
+ height: 160px;
+ overflow-y: auto;
+ padding: 10px 0;
+}
diff --git a/chromium/chrome/browser/resources/settings/users_page/user_list.html b/chromium/chrome/browser/resources/settings/users_page/user_list.html
new file mode 100644
index 00000000000..2917afcf957
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/users_page/user_list.html
@@ -0,0 +1,24 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html">
+
+<dom-module id="cr-settings-user-list">
+ <link rel="import" type="css" href="chrome://md-settings/settings_page/settings_page.css">
+ <link rel="import" type="css" href="user_list.css">
+ <template>
+ <div class="user-list soft-border">
+ <template is="dom-repeat" items="[[users]]">
+ <div class="user layout horizontal justified">
+ <div class="layout vertical center-justified">[[item.email]]</div>
+ <div class="close-button"
+ hidden$="[[shouldHideCloseButton_(disabled, item.isOwner)]]">
+ <paper-icon-button icon="clear" class="clear-icon"
+ on-click="removeUser_">
+ </paper-icon-button>
+ </div>
+ </div>
+ </template>
+ </div>
+ </template>
+ <script src="user_list.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/users_page/user_list.js b/chromium/chrome/browser/resources/settings/users_page/user_list.js
new file mode 100644
index 00000000000..dae00f5ba9c
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/users_page/user_list.js
@@ -0,0 +1,71 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'cr-settings-user-list' shows a list of users whitelisted on this Chrome OS
+ * device.
+ *
+ * Example:
+ *
+ * <cr-settings-user-list prefs="{{prefs}}">
+ * </cr-settings-user-list>
+ *
+ * @group Chrome Settings Elements
+ * @element cr-settings-user-list
+ */
+Polymer({
+ is: 'cr-settings-user-list',
+
+ properties: {
+ /**
+ * Current list of whitelisted users.
+ * @type {!Array<!User>}
+ */
+ users: {
+ type: Array,
+ value: function() { return []; },
+ notify: true
+ },
+
+ /**
+ * Whether the user list is disabled, i.e. that no modifications can be
+ * made.
+ * @type {boolean}
+ */
+ disabled: {
+ type: Boolean,
+ value: false
+ }
+ },
+
+ /** @override */
+ ready: function() {
+ chrome.settingsPrivate.onPrefsChanged.addListener(function(prefs) {
+ prefs.forEach(function(pref) {
+ if (pref.key == 'cros.accounts.users') {
+ chrome.usersPrivate.getWhitelistedUsers(function(users) {
+ this.users = users;
+ }.bind(this));
+ }
+ }, this);
+ }.bind(this));
+
+ chrome.usersPrivate.getWhitelistedUsers(function(users) {
+ this.users = users;
+ }.bind(this));
+ },
+
+ /** @private */
+ removeUser_: function(e) {
+ chrome.usersPrivate.removeWhitelistedUser(
+ e.model.item.email, /* callback */ function() {});
+ },
+
+ /** @private */
+ shouldHideCloseButton_: function(disabled, isUserOwner) {
+ return disabled || isUserOwner;
+ }
+});
+
diff --git a/chromium/chrome/browser/resources/settings/users_page/users_page.css b/chromium/chrome/browser/resources/settings/users_page/users_page.css
new file mode 100644
index 00000000000..de1cfa545ae
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/users_page/users_page.css
@@ -0,0 +1,23 @@
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+#addUserInput {
+ width: 100%;
+}
+
+.add-user-button {
+ padding-top: 25px;
+}
+
+.page-content > div {
+ margin-top: 30px;
+}
+
+.users {
+ -webkit-margin-start: 50px;
+}
+
+cr-input {
+ width: 300px;
+}
diff --git a/chromium/chrome/browser/resources/settings/users_page/users_page.html b/chromium/chrome/browser/resources/settings/users_page/users_page.html
new file mode 100644
index 00000000000..2bd2cf75ee4
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/users_page/users_page.html
@@ -0,0 +1,66 @@
+<link rel="import" href="chrome://resources/polymer/v1_0/polymer/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-material/paper-material.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_button/cr_button.html">
+<link rel="import" href="chrome://resources/cr_elements/v1_0/cr_input/cr_input.html">
+<link rel="import" href="chrome://md-settings/checkbox/checkbox.html">
+<link rel="import" href="user_list.html">
+
+<dom-module id="cr-settings-users-page">
+ <link rel="import" type="css" href="chrome://md-settings/settings_page/settings_page.css">
+ <link rel="import" type="css" href="users_page.css">
+ <template>
+ <paper-material>
+ <div class="page-content">
+ <div i18n-content="usersModifiedByOwnerLabel"
+ hidden$="{{computeHideOwnerLabel_(isOwner, isWhitelistManaged)}}">
+ </div>
+ <div i18n-content="settingsManagedLabel"
+ hidden$="{{computeHideManagedLabel_(isOwner, isWhitelistManaged)}}">
+ </div>
+ <div>
+ <cr-settings-checkbox
+ pref="{{prefs.cros.accounts.allowBWSI}}"
+ i18n-values="label:guestBrowsingLabel"
+ disabled="{{editingDisabled}}">
+ </cr-settings-checkbox>
+ <cr-settings-checkbox
+ pref="{{prefs.cros.accounts.supervisedUsersEnabled}}"
+ i18n-values="label:supervisedUsersLabel"
+ disabled="{{editingDisabled}}">
+ </cr-settings-checkbox>
+ <cr-settings-checkbox
+ pref="{{prefs.cros.accounts.showUserNamesOnSignIn}}"
+ i18n-values="label:showOnSigninLabel"
+ disabled="{{editingDisabled}}">
+ </cr-settings-checkbox>
+ <cr-settings-checkbox
+ pref="{{prefs.cros.accounts.allowGuest}}"
+ id="restrictSignIn"
+ i18n-values="label:restrictSigninLabel"
+ disabled="{{editingDisabled}}" inverted>
+ </cr-settings-checkbox>
+ </div>
+ <div class="users">
+ <div>
+ <cr-settings-user-list prefs="[[prefs]]"
+ disabled="[[editingUsersDisabled]]">
+ </cr-settings-user-list>
+ </div>
+ <div>
+ <cr-input id="addUserInput" i18n-values="label:addUsersLabel"
+ disabled="[[editingUsersDisabled]]"></cr-input>
+ <div class="add-user-button layout horizontal end-justified">
+ <cr-button i18n-content="addLabel" on-click="addUser_"
+ disabled="[[editingUsersDisabled]]" raised>
+ </cr-button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </paper-material>
+ </template>
+ <script src="users_page.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/users_page/users_page.js b/chromium/chrome/browser/resources/settings/users_page/users_page.js
new file mode 100644
index 00000000000..8129be60a6b
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/users_page/users_page.js
@@ -0,0 +1,208 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'cr-settings-users-page' is the settings page for managing user accounts on
+ * the device.
+ *
+ * Example:
+ *
+ * <neon-animated-pages>
+ * <cr-settings-users-page prefs="{{prefs}}">
+ * </cr-settings-users-page>
+ * ... other pages ...
+ * </neon-animated-pages>
+ *
+ * @group Chrome Settings Elements
+ * @element cr-settings-users-page
+ */
+Polymer({
+ is: 'cr-settings-users-page',
+
+ behaviors: [
+ Polymer.IronA11yKeysBehavior
+ ],
+
+ properties: {
+ /**
+ * Preferences state.
+ */
+ prefs: {
+ type: Object,
+ notify: true,
+ },
+
+ /**
+ * Route for the page.
+ */
+ route: String,
+
+ /**
+ * Whether the page is a subpage.
+ */
+ subpage: {
+ type: Boolean,
+ value: false,
+ readOnly: true,
+ },
+
+ /**
+ * ID of the page.
+ */
+ PAGE_ID: {
+ type: String,
+ value: 'users',
+ readOnly: true,
+ },
+
+ /**
+ * Title for the page header and navigation menu.
+ */
+ pageTitle: {
+ type: String,
+ value: function() {
+ return loadTimeData.getString('usersPageTitle');
+ },
+ },
+
+ /**
+ * Name of the 'iron-icon' to show.
+ */
+ icon: {
+ type: String,
+ value: 'person',
+ readOnly: true,
+ },
+
+ /** @override */
+ keyEventTarget: {
+ type: Object,
+ value: function() {
+ return this.$.addUserInput;
+ }
+ },
+
+ isOwner: {
+ type: Boolean,
+ value: false
+ },
+
+ isWhitelistManaged: {
+ type: Boolean,
+ value: false
+ },
+
+ editingDisabled: {
+ type: Boolean,
+ computed: 'computeEditingDisabled_(isOwner, isWhitelistManaged)'
+ },
+
+ editingUsersDisabled: {
+ type: Boolean,
+ computed: 'computeEditingUsersDisabled_(isOwner, isWhitelistManaged, ' +
+ 'prefs.cros.accounts.allowGuest.value)'
+ }
+ },
+
+ keyBindings: {
+ 'enter': 'addUser_'
+ },
+
+ /** @override */
+ created: function() {
+ chrome.usersPrivate.isCurrentUserOwner(function(isOwner) {
+ this.isOwner = isOwner;
+ }.bind(this));
+
+ chrome.usersPrivate.isWhitelistManaged(function(isWhitelistManaged) {
+ this.isWhitelistManaged = isWhitelistManaged;
+ }.bind(this));
+ },
+
+ /**
+ * Regular expression for adding a user where the string provided is just the
+ * part before the "@".
+ * Email alias only, assuming it's a gmail address.
+ * e.g. 'john'
+ * @const
+ * @private {string}
+ */
+ nameOnlyString_: '^\\s*([\\w\\.!#\\$%&\'\\*\\+-\\/=\\?\\^`\\{\\|\\}~]+)\\s*$',
+
+ /**
+ * Regular expression for adding a user where the string provided is a full
+ * email address.
+ * e.g. 'john@chromium.org'
+ * @const
+ * @private {string}
+ */
+ emailString_:
+ '^\\s*([\\w\\.!#\\$%&\'\\*\\+-\\/=\\?\\^`\\{\\|\\}~]+)@' +
+ '([A-Za-z0-9\-]{2,63}\\..+)\\s*$',
+
+ /** @private */
+ addUser_: function() {
+ /** @const */ var nameOnlyRegex = new RegExp(this.nameOnlyString_);
+ /** @const */ var emailRegex = new RegExp(this.emailString_);
+
+ var userStr = this.$.addUserInput.value;
+
+ var matches = nameOnlyRegex.exec(userStr);
+ var userEmail;
+ if (matches) {
+ userEmail = matches[1] + '@gmail.com';
+ }
+
+ matches = emailRegex.exec(userStr);
+ if (matches) {
+ userEmail = matches[1] + '@' + matches[2];
+ }
+
+ if (userEmail) {
+ chrome.usersPrivate.addWhitelistedUser(
+ userEmail,
+ /* callback */ function(success) {});
+ this.$.addUserInput.value = '';
+ }
+ },
+
+ /**
+ * @param {boolean} isOwner
+ * @param {boolean} isWhitelistManaged
+ * @private
+ */
+ computeHideOwnerLabel_: function(isOwner, isWhitelistManaged) {
+ return isOwner || isWhitelistManaged;
+ },
+
+ /**
+ * @param {boolean} isOwner
+ * @param {boolean} isWhitelistManaged
+ * @private
+ */
+ computeHideManagedLabel_: function(isOwner, isWhitelistManaged) {
+ return !isWhitelistManaged;
+ },
+
+ /**
+ * @param {boolean} isOwner
+ * @param {boolean} isWhitelistManaged
+ * @private
+ */
+ computeEditingDisabled_: function(isOwner, isWhitelistManaged) {
+ return !isOwner || isWhitelistManaged;
+ },
+
+ /**
+ * @param {boolean} isOwner
+ * @param {boolean} isWhitelistManaged
+ * @param {boolean} allowGuest
+ * @private
+ */
+ computeEditingUsersDisabled_: function(
+ isOwner, isWhitelistManaged, allowGuest) {
+ return !isOwner || isWhitelistManaged || allowGuest;
+ }
+});
diff --git a/chromium/chrome/browser/resources/signin_internals/signin_index.html b/chromium/chrome/browser/resources/signin_internals/signin_index.html
index cca049fb7d9..9ab71977acd 100644
--- a/chromium/chrome/browser/resources/signin_internals/signin_index.html
+++ b/chromium/chrome/browser/resources/signin_internals/signin_index.html
@@ -58,10 +58,12 @@
<table class="signin-details">
<tr class="header">
<td>Email Address</td>
+ <td>Gaia ID</td>
<td>Validity</td>
</tr>
<tr jsselect="cookie_info">
<td jscontent="email"></td>
+ <td jscontent="gaia_id"></td>
<td jscontent="valid"></td>
</tr>
</table>
diff --git a/chromium/chrome/browser/resources/ssl/images/2x/brokenssl_guard.png b/chromium/chrome/browser/resources/ssl/images/2x/brokenssl_guard.png
index 0468eb0fdb9..159312cbf4b 100644
--- a/chromium/chrome/browser/resources/ssl/images/2x/brokenssl_guard.png
+++ b/chromium/chrome/browser/resources/ssl/images/2x/brokenssl_guard.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/ssl/images/2x/roadblock.png b/chromium/chrome/browser/resources/ssl/images/2x/roadblock.png
index 72b5cb4ac20..79b9181a9e3 100644
--- a/chromium/chrome/browser/resources/ssl/images/2x/roadblock.png
+++ b/chromium/chrome/browser/resources/ssl/images/2x/roadblock.png
Binary files differ
diff --git a/chromium/chrome/browser/resources/supervised_user_block_interstitial.css b/chromium/chrome/browser/resources/supervised_user_block_interstitial.css
index ba71f7d364e..20bba42c781 100644
--- a/chromium/chrome/browser/resources/supervised_user_block_interstitial.css
+++ b/chromium/chrome/browser/resources/supervised_user_block_interstitial.css
@@ -70,6 +70,7 @@ a {
#feedback-link {
font-size: 80%;
+ margin-top: 10px;
}
button {
diff --git a/chromium/chrome/browser/resources/supervised_user_block_interstitial.html b/chromium/chrome/browser/resources/supervised_user_block_interstitial.html
index 5ca62ebf769..169662de94b 100644
--- a/chromium/chrome/browser/resources/supervised_user_block_interstitial.html
+++ b/chromium/chrome/browser/resources/supervised_user_block_interstitial.html
@@ -27,7 +27,6 @@
<div id="request-sent-message" i18n-content="requestSentMessage" hidden>
</div>
<div id="block-reason-message" i18n-content="blockReasonMessage"></div>
- <a id="feedback-link" is="action-link" i18n-content="feedbackLink"></a>
</h1>
<div id="button-container">
<button id="back-button" class="custom-appearance"
@@ -37,6 +36,9 @@
i18n-content="requestAccessButton">
</button>
</div>
+ <h1>
+ <a id="feedback-link" is="action-link" i18n-content="feedbackLink"></a>
+ </h1>
</div>
</div>
</div>
diff --git a/chromium/chrome/browser/resources/sync_file_system_internals/utils.js b/chromium/chrome/browser/resources/sync_file_system_internals/utils.js
index 2cec4fcbe28..d1fa7d88864 100644
--- a/chromium/chrome/browser/resources/sync_file_system_internals/utils.js
+++ b/chromium/chrome/browser/resources/sync_file_system_internals/utils.js
@@ -22,7 +22,7 @@ function createElementFromText(elementName, text, opt_attributes) {
/**
* Creates an element with |tagName| containing the content |dict|.
* @param {string} elementName Name of the new element to be created.
- * @param {Object<string, string>} dict Dictionary to be contained in the new
+ * @param {Object<string>} dict Dictionary to be contained in the new
* element.
* @return {HTMLElement} The newly created HTML element.
*/
diff --git a/chromium/chrome/browser/resources/sync_internals/data.js b/chromium/chrome/browser/resources/sync_internals/data.js
index f3729e745ed..7ad8db65d04 100644
--- a/chromium/chrome/browser/resources/sync_internals/data.js
+++ b/chromium/chrome/browser/resources/sync_internals/data.js
@@ -44,7 +44,7 @@ var allFields = [
'SERVER_PARENT_ID',
'IS_DEL',
'SERVER_IS_DEL',
- 'serverModelType',
+ 'modelType',
'SERVER_SPECIFICS',
'SPECIFICS',
];
diff --git a/chromium/chrome/browser/resources/sync_internals/node_browser.html b/chromium/chrome/browser/resources/sync_internals/node_browser.html
index 3b323b0fe0d..6751c0c0af9 100644
--- a/chromium/chrome/browser/resources/sync_internals/node_browser.html
+++ b/chromium/chrome/browser/resources/sync_internals/node_browser.html
@@ -41,7 +41,7 @@ item detail on the lower right. -->
</tr>
<tr>
<td>Type</td>
- <td jscontent="serverModelType"></td>
+ <td jscontent="modelType"></td>
</tr>
<tr>
<td>External ID</td>
diff --git a/chromium/chrome/browser/resources/sync_internals/sync_node_browser.js b/chromium/chrome/browser/resources/sync_internals/sync_node_browser.js
index 369916457a5..1232a4c23f1 100644
--- a/chromium/chrome/browser/resources/sync_internals/sync_node_browser.js
+++ b/chromium/chrome/browser/resources/sync_internals/sync_node_browser.js
@@ -14,17 +14,22 @@
*/
var isTypeRootNode = function(node) {
return node.PARENT_ID == 'r' && node.UNIQUE_SERVER_TAG != '';
- }
+ };
/**
* A helper function to determine if a node is a child of the given parent.
*
- * @param {string} parentId The ID of the parent.
+ * @param {!Object} parent node.
* @param {!Object} node The node to check.
*/
- var isChildOf = function(parentId, node) {
- return node.PARENT_ID == parentId;
- }
+ var isChildOf = function(parentNode, node) {
+ if (node.PARENT_ID != '') {
+ return node.PARENT_ID == parentNode.ID;
+ }
+ else {
+ return node.modelType == parentNode.modelType;
+ }
+ };
/**
* A helper function to sort sync nodes.
@@ -44,7 +49,7 @@
} else {
return nodeA.METAHANDLE - nodeB.METAHANDLE;
}
- }
+ };
/**
* Updates the node detail view with the details for the given node.
@@ -106,7 +111,7 @@
treeItem.expanded_ = true;
var children = treeItem.tree.allNodes.filter(
- isChildOf.bind(undefined, treeItem.entry_.ID));
+ isChildOf.bind(undefined, treeItem.entry_));
children.sort(nodeComparator);
children.forEach(function(node) {
diff --git a/chromium/chrome/browser/resources/sync_internals/sync_search.js b/chromium/chrome/browser/resources/sync_internals/sync_search.js
index 9f491ecd495..48c0e081607 100644
--- a/chromium/chrome/browser/resources/sync_internals/sync_search.js
+++ b/chromium/chrome/browser/resources/sync_internals/sync_search.js
@@ -24,7 +24,7 @@ cr.define('chrome.sync', function() {
* @param {Array of DOM elements} quickLinkArray The <a> object which
* will be given a link to a quick filter option.
* @param {!HTMLInputElement} queryControl The <input> object of
- * type=search where the user types in his query.
+ * type=search where user's query is typed.
*/
var decorateQuickQueryControls = function(quickLinkArray, submitControl,
queryControl) {
@@ -71,9 +71,9 @@ cr.define('chrome.sync', function() {
* Decorates the various search controls.
*
* @param {!HTMLInputElement} queryControl The <input> object of
- * type=search where the user types in his query.
+ * type=search where the user's query is typed.
* @param {!HTMLButtonElement} submitControl The <button> object
- * where the user can click to do his query.
+ * where the user can click to submit the query.
* @param {!HTMLElement} statusControl The <span> object display the
* search status.
* @param {!HTMLElement} listControl The <list> object which holds
diff --git a/chromium/chrome/browser/resources/translate_internals/OWNERS b/chromium/chrome/browser/resources/translate_internals/OWNERS
new file mode 100644
index 00000000000..9b648a10380
--- /dev/null
+++ b/chromium/chrome/browser/resources/translate_internals/OWNERS
@@ -0,0 +1,2 @@
+hajimehoshi@chromium.org
+toyoshim@chromium.org
diff --git a/chromium/chrome/browser/resources/translate_internals/detection_logs.html b/chromium/chrome/browser/resources/translate_internals/detection_logs.html
index b3753d7fbb0..81305647273 100644
--- a/chromium/chrome/browser/resources/translate_internals/detection_logs.html
+++ b/chromium/chrome/browser/resources/translate_internals/detection_logs.html
@@ -19,7 +19,10 @@ found in the LICENSE file.
<th class="detection-logs-is-cld-reliable">
Is CLD reliable?
</th>
- <th class="detection-html-root-language">
+ <th class="detection-logs-has-notranslate">
+ notranslate meta
+ </th>
+ <th class="detection-logs-html-root-language">
html lang attribute
</th>
<th class="detection-logs-adopted-language">Adopted language</th>
diff --git a/chromium/chrome/browser/resources/translate_internals/translate_internals.css b/chromium/chrome/browser/resources/translate_internals/translate_internals.css
index 229d7f43fa6..11626b4e851 100644
--- a/chromium/chrome/browser/resources/translate_internals/translate_internals.css
+++ b/chromium/chrome/browser/resources/translate_internals/translate_internals.css
@@ -84,6 +84,10 @@ td.detection-logs-url {
width: 5%;
}
+.detection-logs-has-notranslate {
+ width: 5%;
+}
+
.detection-logs-html-root-language {
width: 10%;
}
@@ -93,7 +97,7 @@ td.detection-logs-url {
}
.detection-logs-content {
- width: 25%;
+ width: 20%;
}
td.detection-logs-content div {
diff --git a/chromium/chrome/browser/resources/translate_internals/translate_internals.js b/chromium/chrome/browser/resources/translate_internals/translate_internals.js
index 859daa53c0d..e6ecc1b8b98 100644
--- a/chromium/chrome/browser/resources/translate_internals/translate_internals.js
+++ b/chromium/chrome/browser/resources/translate_internals/translate_internals.js
@@ -329,6 +329,7 @@
appendTD(tr, formatLanguageCode(detail['cld_language']),
'detection-logs-cld-language');
appendTD(tr, detail['is_cld_reliable'], 'detection-logs-is-cld-reliable');
+ appendTD(tr, detail['has_notranslate'], 'detection-logs-has-notranslate');
appendTD(tr, formatLanguageCode(detail['html_root_language']),
'detection-logs-html-root-language');
appendTD(tr, formatLanguageCode(detail['adopted_language']),
diff --git a/chromium/chrome/browser/resources/uber/compiled_resources.gyp b/chromium/chrome/browser/resources/uber/compiled_resources.gyp
index 065975d4e91..87b82741801 100644
--- a/chromium/chrome/browser/resources/uber/compiled_resources.gyp
+++ b/chromium/chrome/browser/resources/uber/compiled_resources.gyp
@@ -11,7 +11,7 @@
'../../../../ui/webui/resources/js/compiled_resources.gyp:load_time_data',
'../../../../ui/webui/resources/js/util.js',
],
- 'externs': ['<(CLOSURE_DIR)/externs/chrome_send_externs.js'],
+ 'externs': ['<(EXTERNS_DIR)/chrome_send.js'],
},
'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
},
@@ -24,7 +24,7 @@
'../../../../ui/webui/resources/js/util.js',
'uber_utils.js',
],
- 'externs': ['<(CLOSURE_DIR)/externs/chrome_send_externs.js'],
+ 'externs': ['<(EXTERNS_DIR)/chrome_send.js'],
},
'includes': ['../../../../third_party/closure_compiler/compile_js.gypi'],
},
diff --git a/chromium/chrome/browser/resources/uber/uber_frame.css b/chromium/chrome/browser/resources/uber/uber_frame.css
index 12a399695ce..b14b7beb2cc 100644
--- a/chromium/chrome/browser/resources/uber/uber_frame.css
+++ b/chromium/chrome/browser/resources/uber/uber_frame.css
@@ -64,3 +64,7 @@ button {
.selected > button {
color: rgb(70, 78, 90);
}
+
+html[guestMode='true'] .hide-in-guest {
+ display: none;
+}
diff --git a/chromium/chrome/browser/resources/uber/uber_frame.html b/chromium/chrome/browser/resources/uber/uber_frame.html
index 9992b7a41b3..7e52aae8923 100644
--- a/chromium/chrome/browser/resources/uber/uber_frame.html
+++ b/chromium/chrome/browser/resources/uber/uber_frame.html
@@ -1,5 +1,6 @@
<!doctype html>
-<html i18n-values="dir:textdirection;lang:language" id="uber">
+<html i18n-values="dir:textdirection;lang:language;guestMode:profileIsGuest"
+ id="uber">
<head>
<meta charset="utf-8">
@@ -18,12 +19,12 @@
<h1 i18n-content="shortProductName"></h1>
<ul role="tablist">
<li i18n-values="controls:historyHost;override:overridesHistory;
- group:historyGroup" role="tab" hidden>
+ group:historyGroup" role="tab" class="hide-in-guest" hidden>
<button class="custom-appearance"
i18n-content="historyDisplayName"></button>
</li>
- <li i18n-values="controls:extensionsHost;group:extensionsGroup" role="tab"
- hidden>
+ <li i18n-values="controls:extensionsHost;group:extensionsGroup"
+ class="hide-in-guest" role="tab" hidden>
<button class="custom-appearance"
i18n-content="extensionsDisplayName"></button>
</li>
diff --git a/chromium/chrome/browser/resources/webstore_app/OWNERS b/chromium/chrome/browser/resources/webstore_app/OWNERS
index 63d9eb65573..720e73f269e 100644
--- a/chromium/chrome/browser/resources/webstore_app/OWNERS
+++ b/chromium/chrome/browser/resources/webstore_app/OWNERS
@@ -1,12 +1,11 @@
-# Extensions / Apps team members.
+# Extension and apps team owners. Use file history to guide reviewer selection
+# as this list is randomized. If editing, see chrome/browser/extensions/OWNERS
kalman@chromium.org
finnur@chromium.org
mek@chromium.org
-jyasskin@chromium.org
asargent@chromium.org
benwells@chromium.org
reillyg@chromium.org
-scheib@chromium.org
rockot@chromium.org
miket@chromium.org
rdevlin.cronin@chromium.org