<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:set="http://exslt.org/sets" xmlns:str="http://exslt.org/strings" xmlns:mal="http://projectmallard.org/1.0/">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Informacje o wydaniu GNOME 3.20</title>
<link rel="stylesheet" type="text/css" media="all" href="https://static.gnome.org/css/grass-theme-style.css">
<link rel="stylesheet" type="text/css" media="all" href="/skin/lgo2010.css">
<link rel="icon" type="image/png" href="/skin/gnome-16.png">
<link rel="SHORTCUT ICON" type="image/png" href="/skin/gnome-16.png">
<link rel="search" type="application/opensearchdescription+xml" href="/gnome-library-search.xml" title="GNOME Library Search">
<style type="text/css">
html { height: 100%; }
body {
  font-family: sans-serif;
  margin: 0; padding: 0;
  background-color: #ffffff;
  color: #000000;
  direction: ltr;
}
div.page {
  margin: 1em auto 1em auto;
  max-width: 60em;
  border: solid 1px #babdb6;
}
div.body {
  margin: 0;
  padding-left: 1em;
  padding-right: 1em;
  padding-bottom: 1em;
  min-height: 20em;
  background-color: #ffffff;
}
div.header { margin: 0; }
div.footer { margin: 0; }
div.sect {
  margin-top: 2.4em;
  clear: both;
}
div.sect div.sect {
  margin-top: 1.44em;
  margin-left: 1.72em;
}
div.trails {
  margin: 0;
  padding: 0.5em 1em 0.5em 1em;
  background-color: #f3f3f0;
}
div.trail {
  margin: 0.2em 0 0 0;
  padding: 0 1em 0 1em;
  text-indent: -1em;
  color: #2e3436;
}
a.trail { white-space: nowrap; }
div.hgroup {
  margin: 1em 0 0.5em 0;
  color: #2e3436;
}
div.sect div.hgroup {
  margin-top: 0;
  border-bottom: solid 1px #babdb6;
}
div.sect-links div.hgroup {
  border-bottom: solid 2px #729fcf;
}
div.sect div.sect-links {
  margin-left: 0;
}
div.sect div.sect-links div.hgroup {
  border: none;
}
h1, h2, h3, h4, h5, h6, h7 {
  margin: 0; padding: 0;
  color: #2e3436;
  font-weight: bold;
}
h1 { font-size: 2em; }
h2 { font-size: 1.44em; }
h3.title, h4.title, h5.title, h6.title, h7.title { font-size: 1.2em; }
h3, h4, h5, h6, h7 { font-size: 1em; }

p { line-height: 1.72em; }
div, pre, p { margin: 1em 0 0 0; padding: 0; }
div.contents > *:first-child,
th > *:first-child, td > *:first-child,
dt > *:first-child, dd > *:first-child,
li > *:first-child { margin-top: 0; }
div.inner, div.region, div.contents, pre.contents { margin-top: 0; }
pre.contents div { margin-top: 0 !important; }
p img { vertical-align: middle; }
p.lead { font-size: 1.2em; }
div.clear {
  margin: 0; padding: 0;
  height: 0; line-height: 0;
  clear: both;
}
.center { text-align: center; }

div.about {
  color: #2e3436;
}
div.about > div.inner > div.hgroup {
  margin: 0; padding: 0;
  text-align: center;
  border: none;
}
div.about > div.inner > div.hgroup > h2 {
  margin: 0; padding: 0.2em;
  font-size: inherit;
}
div.about.ui-expander > div.inner > div.hgroup span.title:before {
  content: "";
}
div.copyrights {
  margin: 1em;
  text-align: center;
}
div.copyright {
  margin: 0;
}
div.aboutblurb {
  display: inline-block;
  vertical-align: top;
  text-align: left;
  max-width: 18em;
  margin: 0 1em 1em 1em;
}
ul.credits, ul.credits li {
  margin: 0; padding: 0;
  list-style-type: none;
}
ul.credits li {
  margin-left: 1em;
  text-indent: -1em;
}

table {
  border-collapse: collapse;
  border-color: #2e3436;
  border-width: 1px;
}
td, th {
  padding: 0.5em;
  vertical-align: top;
  border-color: #2e3436;
  border-width: 1px;
}
thead td, thead th, tfoot td, tfoot th {
  font-weight: bold;
  color: #2e3436;
  background-color: #e5e5e3;
}
th {
  text-align: left;
  font-weight: bold;
  color: #2e3436;
}

ul, ol, dl { margin: 0; padding: 0; }
li {
  margin: 1em 0 0 0;
  margin-left: 2.4em;
  padding: 0;
}
li:first-child { margin-top: 0; }
dt { margin-top: 1em; }
dt:first-child { margin-top: 0; }
dt + dt { margin-top: 0; }
dd {
  margin: 0.2em 0 0 0;
  margin-left: 1.44em;
}
dd + dd { margin-top: 1em; }
ol.compact li { margin-top: 0.2em; }
ul.compact li { margin-top: 0.2em; }
ol.compact li:first-child { margin-top: 0; }
ul.compact li:first-child { margin-top: 0; }
dl.compact dt { margin-top: 0.2em; }
dl.compact dt:first-child { margin-top: 0; }
dl.compact dt + dt { margin-top: 0; }

a {
  text-decoration: none;
  color: #204a87;
}
a:visited { color: #5c3566; }
a:hover {
  border-bottom: dotted 1px #729fcf;
}
p a {
  border-bottom: dotted 1px #729fcf;
}
a img { border: none; }
@media only screen and (max-width: 400px) {
  div.page {
    margin: 0;
    border: none;
  }
  div.body {
    padding-left: 0;
    padding-right: 0;
  }
  div.body > div.hgroup,
  div.body > div.region > div.contents > *,
  div.body > div.region > div.sect > div.inner > div.hgroup > *,
  div.body > div.region > div.sect > div.inner > div.region > div.contents > * {
    margin-left: 12px;
    margin-right: 12px;
  }
  div.body > div.region > div.sect-links {
    margin-left: 0;
    margin-right: 0;
  }
  div.trails {
    padding: 12px;
  }
  li {
    margin-left: 1.44em;
  }
}

div.title {
  margin: 0 0 0.2em 0;
  font-weight: bold;
  color: #2e3436;
}
div.title h1, div.title h2, div.title h3, div.title h4, div.title h5, div.title h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}
div.desc { margin: 0 0 0.2em 0; }
div.contents + div.desc { margin: 0.2em 0 0 0; }
pre.contents {
  padding: 0.5em 1em 0.5em 1em;
}
div.links-center { text-align: center; }
div.links .desc { color: #2e3436; }
div.links > div.inner > div.region > div.desc { font-style: italic; }
div.links ul { margin: 0; padding: 0; }
div.links ul ul {
  margin-left: 1em;
}
li.links {
  margin: 0.5em 0 0.5em 0;
  padding: 0;
  padding-left: 1em;
  list-style-type: none;
}
div.sectionlinks {
  display: inline-block;
  padding: 0 1em 0 1em;
  background-color: #e6f2ff;
  border: solid 1px #729fcf;
}
div.sectionlinks ul { margin: 0; }
div.sectionlinks li { padding: 0; }
div.sectionlinks div.title { margin: 0.5em 0 0.5em 0; }
div.sectionlinks div.sectionlinks {
  display: block;
  margin: 0.5em 0 0 0;
  padding: 0;
  border: none;
}
div.sectionlinks div.sectionlinks li {
  padding-left: 1.44em;
}
div.nextlinks {
  font-size: 1.2em;
  margin-left: 1.2em;
  float: right;
  clear: both;
}
div.nextlinks a {
  background-color: #f3f3f0;
  display: inline-block;
  position: relative;
  height: 1.44em;
  padding: 0.2em 0.83em;
  margin-bottom: 1em;
}
a.nextlinks-prev { margin-left: 0.72em; }
a.nextlinks-next { margin-right: 0.72em; }
a.nextlinks-prev:after, a.nextlinks-next:after {
  border: solid transparent;
  content: " ";
  position: absolute;
  height: 0; width: 0;
  border-width: 0.92em;
  top: 50%;
  margin-top: -0.92em;
}
a.nextlinks-prev:after {
  right: 100%;
  border-right-color: #f3f3f0;
}
a.nextlinks-next:after {
  left: 100%;
  border-left-color: #f3f3f0;
}
div.nextlinks a:hover {
border: none;
  background: #e6f2ff
}
a.nextlinks-prev:hover:after {
  border-right-color: #e6f2ff
}
a.nextlinks-next:hover:after {
  border-left-color: #e6f2ff
}
div.serieslinks {
  display: inline-block;
  padding: 0 1em 0 1em;
  background-color: #e6f2ff;
  border: solid 1px #729fcf;
}
div.serieslinks ul { margin: 0; }
div.serieslinks li { padding: 0; }
div.serieslinks div.title { margin: 0.5em 0 0.5em 0; }
pre.numbered {
  margin: 0;
  padding: 0.5em;
  float: left;
  margin-right: 0.5em;
  text-align: right;
  color: #2e3436;
  background-color: #fffacc;
}
div.code {
  border: solid 1px #babdb6;
}
div.example {
  border-left: solid 4px #babdb6;
  padding-left: 1em;
}
div.figure {
  margin-left: 1.72em;
  padding: 4px;
  color: #2e3436;
  border: solid 1px #babdb6;
  background-color: #f3f3f0;
}
div.figure > div.inner > a.zoom {
  float: right;
}
div.figure > div.inner > div.region > div.contents {
  margin: 0;
  padding: 0.5em 1em 0.5em 1em;
  clear: both;
  text-align: center;
  color: #000000;
  border: solid 1px #babdb6;
  background-color: #ffffff;
}
div.list > div.inner > div.title { margin-bottom: 0.5em; }
div.listing > div.inner { margin: 0; padding: 0; }
div.listing > div.inner > div.region > div.desc { font-style: italic; }
div.note {
  padding: 6px;
  border: solid 1px #e5e5e3;
  background-color: #f3f3f0;
}
div.note > div.inner > div.title {
  margin-left: 30px;
}
div.note > div.inner > div.region > div.contents {
  margin: 0; padding: 0;
  margin-left: 30px;
}
div.note > div.inner {
  margin: 0; padding: 0;
  background-image: url("yelp-note.png");
  background-position: left top;
  background-repeat: no-repeat;
  min-height: 24px;
}
div.note-advanced > div.inner {  }
div.note-bug > div.inner { background-image: url("yelp-note-bug.png"); }
div.note-important > div.inner { background-image: url("yelp-note-important.png"); }
div.note-tip > div.inner { background-image: url("yelp-note-tip.png"); }
div.note-warning > div.inner { background-image: url("yelp-note-warning.png"); }
div.note-sidebar {
  float: right;
  max-width: 40%;
  margin-left: 6px;
  padding: 6px;
}
div.note-sidebar > div.inner { background-image: none; }
div.note-sidebar > div.inner > div.title { margin-left: 0px; }
div.note-sidebar > div.inner > div.region > div.contents { margin-left: 0px; }
div.note-plain > div.inner { background-image: none; }
div.note-plain > div.inner > div.title { margin-left: 0px; }
div.note-plain > div.inner > div.region > div.contents { margin-left: 0px; }
div.quote {
  padding: 0;
  min-height: 48px;
}
div.quote > div.inner:before {
  float: left;
  content: '“';
  font-family: "Century Schoolbook L";
  font-size: 48px;
  font-weight: bold;
  line-height: 1em;
  margin: 0; padding: 0;
  height: 48px;
  width: 48px;
  text-align: center;
  color: #e5e5e3;
}
div.quote > div.inner > div.title {
  margin: 0;
  margin-left: 48px;
}
blockquote {
  margin: 0; padding: 0;
  margin-left: 48px;
}
blockquote > *:first-child { margin-top: 0; }
div.quote > div.inner > div.region > div.cite {
  margin-top: 0.5em;
  margin-left: 48px;
  color: #2e3436;
}
div.quote > div.inner > div.region > div.cite::before {
  
  content: '― ';
  color: #2e3436;
}
div.screen {
  background-color: #f3f3f0;
  border: solid 1px #babdb6;
}
ol.steps, ul.steps {
  margin: 0;
  padding: 0.5em 1em 0.5em 1em;
  border-left: solid 4px #edd400;
  -moz-box-shadow: 0 1px 2px #babdb6;
  -webkit-box-shadow: 0 1px 2px #babdb6;
  box-shadow: 0 1px 2px #babdb6;
}
ol.steps .steps {
  padding: 0;
  border: none;
  background-color: none;
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}
li.steps { margin-left: 1.44em; }
li.steps li.steps { margin-left: 2.4em; }
div.synopsis > div.inner > div.region > div.contents,
div.synopsis > div.contents, div.synopsis > pre.contents {
  padding: 0.5em 1em 0.5em 1em;
  border-top: solid 1px;
  border-bottom: solid 1px;
  border-color: #729fcf;
  background-color: #f3f3f0;
}
div.synopsis > div.inner > div.region > div.desc { font-style: italic; }
div.synopsis div.code {
  background: none;
  border: none;
  padding: 0;
}
div.synopsis div.code > pre.contents { margin: 0; padding: 0; }
div.table > div.desc { font-style: italic; }
tr.shade {
  background-color: #f3f3f0;
}
td.shade {
  background-color: #f3f3f0;
}
tr.shade td.shade {
  background-color: #e5e5e3;
}

span.app { font-style: italic; }
span.cmd {
  font-family: monospace;
  background-color: #f3f3f0;
  padding: 0 0.2em 0 0.2em;
}
span.cmd span.cmd { background-color: none; padding: 0; }
pre span.cmd { background-color: none; padding: 0; }
span.code {
  font-family: monospace;
  border-bottom: solid 1px #e5e5e3;
}
span.code span.code { border: none; }
pre span.code { border: none; }
span.em { font-style: italic; }
span.em-bold {
  font-style: normal; font-weight: bold;
  color: #2e3436;
}
pre span.error {
  color: #a40000;
}
span.file { font-family: monospace; }
span.gui, span.guiseq { color: #2e3436; }
span.input { font-family: monospace; }
pre span.input {
  font-weight: bold;
  color: #2e3436;
}
kbd {
  font-family: inherit;
  font-size: inherit;
  color: #2e3436;
  background-color: #f3f3f0;
  border: solid 1px #babdb6;
  -moz-border-radius: 2px;
  -webkit-border-radius: 2px;
  border-radius: 2px;
  -moz-box-shadow: 1px 1px 2px #babdb6;
  -webkit-box-shadow: 1px 1px 2px #babdb6;
  box-shadow: 1px 1px 2px #babdb6;
  margin: 0 0.2em 0 0.2em;
  padding: 0 0.5em 0 0.5em;
  white-space: nowrap;
}
kbd.key-Fn {
  font-weight: bold;
  color: #729fcf;
}
span.key a {
  border-bottom: none;
}
a > kbd {
  color: #204a87;
  border-color: #729fcf;
}
span.keyseq {
  color: #2e3436;
  white-space: nowrap
}
span.output { font-family: monospace; }
pre span.output {
  color: #000000;
}
pre span.prompt {
  color: #2e3436;
}
span.sys { font-family: monospace; }
span.var { font-style: italic; }

.ui-tile-img .media-controls { display: none; }
span.media-audio, span.media-video { display: inline-block; }
audio, video { display: block; margin: 0; }
div.media > div.inner { display: inline-block; text-align: center; }
div.media-controls {
  min-width: 24em;
  height: 24px;
  margin: 0; padding: 0;
  border-left: solid 1px #000000;;
  border-right: solid 1px #000000;;
  border-bottom: solid 1px #000000;;
  background-color: #2e3436;
  color: #ffffff;
  -moz-border-bottom-left-radius: 4px;
  -moz-border-bottom-right-radius: 4px;
  -webkit-border-bottom-left-radius: 4px;
  -webkit-border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}
div.media-controls-audio {
  border-top: solid 1px #000000;;
  -moz-border-radius: 4px;
  -webkit-border-radius: 4px;
  border-radius: 4px;
}
button.media-play {
  height: 24px;
  padding: 0 2px 0 2px; line-height: 0;
  float: left;
  background-color: #2e3436;
  border: none;
  border-right: solid 1px #000000;;
}
button.media-play:hover, button.media-play:focus {
  background-color: #729fcf;
}
button.media-play canvas { margin: 0; }
div.media-range {
  display: inline-block;
  margin: 2px 8px 0 8px;
  padding: 0;
  height: 20px;
}
div.media-time {
  float: right;
  margin: 0;
  font-size: 16px;
  height: 24px;
  line-height: 24px;
}
div.media-time > span {
  padding-right: 8px;
}
span.media-duration {
  font-size: 12px;
  color: #e5e5e3;
  opacity: 0.8;
}
div.media-ttml { margin: 0; padding: 0; }
.media-ttml-pre { white-space: pre; }
.media-ttml-nopre { white-space: normal; }
div.media-ttml-div {
  text-align: left;
  display: none;
  margin: 0; padding: 0;
}
div.media-ttml-p {
  text-align: left;
  display: none;
  margin: 6px auto 0 auto;
  padding: 6px;
  max-width: 24em;
  border: solid 1px #edd400;
  background-color: #fffacc;
  -moz-box-shadow: 2px 2px 4px #babdb6;
  -webkit-box-shadow: 2px 2px 4px #babdb6;
  box-shadow: 2px 2px 4px #babdb6;
}
div.yelp-data { display: none; }
div.ui-expander > div.inner > div.title span.title,
div.ui-expander > div.inner > div.hgroup span.title {
  cursor: default;
}
div.ui-expander > div.inner > div.title span.title:before,
div.ui-expander > div.inner > div.hgroup span.title:before {
  font-size: 2em;
  font-weight: normal;
  content: "⌃";
  display: inline-block;
  line-height: 0.2em;
  vertical-align: bottom;
  color: #204a87;
}
div.ui-expander-c > div.inner > div.hgroup { border-bottom: none; }
div.ui-expander-e > div.inner > div.title span.title:before,
div.ui-expander-e > div.inner > div.hgroup span.title:before {
  content: "⌄";
  vertical-align: top;
}
div.ui-expander > div.inner > div.title:hover,
div.ui-expander > div.inner > div.hgroup:hover * {
  color: #204a87;
}
div.ui-expander > div.inner > div.hgroup > .subtitle {
  margin-left: 2em;
}
@media only screen and (max-width: 400px) {
  div.links {
    margin-left: 12px;
    margin-right: 12px;
  } 
  li.links { padding: 0; }
  div.body > div.region > div.contents > div.example,
  div.body > div.region > div.contents > div.steps,
  div.body > div.region > div.contents > div.note,
  div.body > div.region > div.sect > div.inner > div.region > div.contents > div.example,
  div.body > div.region > div.sect > div.inner > div.region > div.contents > div.steps,
  div.body > div.region > div.sect > div.inner > div.region > div.contents > div.note {
    margin-left: 0;
    margin-right: 0;
  }
  div.steps > div.inner > div.title {
    margin-left: 18px;
    margin-right: 18px;
  }
  ol.steps, ul.steps {
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
  div.note-sidebar {
    float: none;
    max-width: none;
    margin-left: inherit;
    margin-right: inherit;
    padding-left: inherit;
    padding-right: inherit;
  }
  div.note-sidebar > div.inner > div.title,
  div.note-sidebar > div.inner > div.region > div.contents {
    margin-left: 12px;
    margin-right: 12px;
  }
}

div.link-button {
  font-size: 1.2em;
  font-weight: bold;
}
.link-button a {
  display: inline-block;
  background-color: #729fcf;
  color: #ffffff;
  text-shadow: #204a87 1px 1px 0px;
  border: solid 1px #204a87;
  padding: 0.2em 0.5em 0.2em 0.5em;
  -moz-border-radius: 2px;
  -webkit-border-radius: 2px;
  border-radius: 2px;
}
.link-button a:visited {
  color: #ffffff;
}
.link-button a:hover {
  text-decoration: none;
  color: #ffffff;
  box-shadow: 1px 1px 1px #729fcf;
}
div.link-button a .desc {
  display: block;
  font-weight: normal;
  font-size: 0.83em;
  color: #f3f3f0;
}
div.floatleft {
  float: left;
  margin-right: 1em;
}
div.floatright {
  float: right;
  margin-left: 1em;
}
div.floatstart {
  float: left;
  margin-right: 1em;
}
div.floatend {
  float: right;
  margin-left: 1em;
}

div.title-heading h1, div.title-heading h2, div.title-heading h3,
div.title-heading h4, div.title-heading h5, div.title-heading h6 {
  font-size: 1.72em;
  font-weight: bold;
}
ul.links-heading > li { margin: 2em 0 2em 0; padding: 0; }
div.links-heading > a { font-size: 1.72em; font-weight: bold; }
ul.links-heading > li > div.desc { margin-top: 0.5em; }

div.mouseovers {
  width: 250px;
  height: 200px;
  text-align: center;
  margin: 0;
  float: left;
}
ul.mouseovers li { margin: 0; }
ul.mouseovers a {
  display: inline-block;
  padding: 4px 1.2em 4px 1.2em;
  border-bottom: none;
}
ul.mouseovers a:hover {
  text-decoration: none;
  background: #e6f2ff;
}
ul.mouseovers a img {
  display: none;
  position: absolute;
  margin: 0; padding: 0;
}
@media only screen and (max-width: 400px) {
  ul.mouseovers a {
    display: block;
    padding: 12px;
    margin-left: -12px;
    margin-right: -12px;
  }
  div.mouseovers { display: none; }
}

div.ui-screen {
  display: none;
  position: fixed;
  margin: 0;
  left: 0; top: 0;
  width: 100%; height: 100%;
  background: #2e3436;
  opacity: 0.6;
}
div.ui-overlay {
  display: none;
  position: fixed;
  text-align: center;
  left: 0;
  top: 20px;
  width: 100%;
  z-index: 10;
}
div.ui-overlay > div.inner {
  display: inline-block;
  padding: 8px;
  background-color: #f3f3f0;
  border: solid 1px #2e3436;
  box-shadow: 0 2px 4px #2e3436;
  -moz-border-radius: 6px;
  -webkit-border-radius: 6px;
  border-radius: 6px;
  text-align: left;
}
div.ui-overlay > div.inner > div.title { margin-top: -4px; }
a.ui-overlay-close {
  display: block;
  float: right;
  width: 23px; height: 23px;
  font-size: 18px; line-height: 23px;
  font-weight: bold;
  margin-top: -28px;
  margin-right: -24px;
  padding: 1px 2px 3px 2px;
  text-align: center;
  border: none;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background-color: #000000;
  background-image: -moz-radial-gradient(50% 30%, circle farthest-corner, #2e3436, #000000);
  background-image: radial-gradient(50% 30%, circle farthest-corner, #2e3436, #000000);
  background-image: -webkit-radial-gradient(50% 30%, circle farthest-corner, #2e3436, #000000);
  border: 3px solid #ffffff; 
  color: #ffffff;
  box-shadow: 0 2px 2px #000000;
  text-shadow: 0 2px 2px #000000;
}
a.ui-overlay-close:hover {
}

div.ui-tile {
  display: inline-block;
  vertical-align: top;
  clear: both
}
div.region > div.ui-tile {
  margin-top: 0;
  margin-bottom: 1em;
}
div.ui-tile:first-child { margin-top: 1em; }
div.ui-tile > a {
  display: inline-block;
  vertical-align: top;
  margin: 0;
  margin-right: 1em;
  padding: 1em;
  -moz-border-radius: 6px;
  -webkit-border-radius: 6px;
  border-radius: 6px;
}
div.ui-tile > a {
  border: solid 1px #f3f3f0;
}
div.ui-tile > a:hover {
  border: solid 1px #e6f2ff;
  box-shadow: 0 1px 2px #729fcf;
}
div.ui-tile > a > * { display: block; }
div.ui-tile-side > a > * {
  display: inline-block;
  vertical-align: top;
}
div.ui-tile-side > a > span.ui-tile-text {
  margin-left: 1em;
}
div.ui-tile > a > span.ui-tile-text > span.title {
  display: block;
  margin-top: 0.5em;
  font-weight: bold;
}
div.ui-tile-side > a > span.ui-tile-text > span.title { margin-top: 0; }
div.ui-tile > a > span.ui-tile-text > span.desc {
  display: block;
  margin: 0.2em 0 0 0;
  color: #2e3436;
}
span.ui-tile-img { text-align: center; }

div.links-ui-hover {
  text-align: center;
  margin: 0;
  float: left;
  margin-right: 1.2em;
  overflow: hidden;
}
ul.links-ui-hover li { margin: 0; }
ul.links-ui-hover a {
  display: block;
  padding: 4px 1.2em 4px 1.2em;
  border-bottom: none;
}
ul.links-ui-hover a:hover {
  text-decoration: none;
  background: #e6f2ff;
}
span.links-ui-hover-img {
  display: none;
  position: absolute;
  margin: 0; padding: 0;
  overflow: hidden;
  background: #e6f2ff;
  text-align: center;
}
@media only screen and (max-width: 400px) {
  ul.links-ui-hover a {
    display: block;
    padding: 12px;
    margin-left: -12px;
    margin-right: -12px;
  }
  div.links-ui-hover { display: none; }
}

div.links-grid {
  display: inline-block;
  clear: both
  margin-top: 1em;
  width: 30%;
  margin-right: 2%;
  vertical-align: top;
}
div.links-grid-link {
  margin: 0;
  font-weight: bold;
}
div.links-grid > div.desc {
  margin: 0;
  color: #2e3436;
}
@media only screen and (max-width: 400px) {
  div.links-grid {
    width: 47%;
  }
}

div.links-norwich {
  width: 900px;
}
div.links-norwich-primary {
  float: left;
  vertical-align: top;
  margin: 0; padding: 0;
}
div.links-norwich-big {
  vertical-align: top;
  display: inline-block;
  background: #e6f2ff;
  background: radial-gradient(ellipse 800px 1200px at 100% 20px, #e6f2ff, #729fcf);
  margin: 0 20px 20px 0;
}
div.links-norwich-big + div.links-norwich-big {
  background: #fffacc;
  background: radial-gradient(ellipse 800px 1200px at 100% 20px, #fffacc, #edd400);
}
div.links-norwich-big a {
  display: block;
  width: 230px;
  height: 500px;
  height: 320px;
  padding: 9px;
  font-size: 1.2em;
  color:  #000000;
  border: solid 1px #729fcf;
  background-repeat: no-repeat;
  background-position: right -80px bottom -80px;
}
div.links-norwich-big a:hover {
  border: solid 1px #729fcf;
  box-shadow: 2px 2px 2px #729fcf;
}
div.links-norwich-big a span.title {
  font-size: 1.2em;
  font-weight: bold;
}
div.links-norwich-big a .desc {
  color:  #000000;
  font-weight: normal;
}
div.links-norwich-secondary {
  vertical-align: top;
  margin: 0; padding: 0;
}
div.links-norwich-small {
  display: inline-block;
  vertical-align: top;
  background: #f3f3f0;
  margin: 0 20px 20px 0;
}
div.links-norwich-small a {
  display: block;
  width: 140px;
  height: 140px;
  padding: 9px;
  font-weight: bold;
  color:  #000000;
  border: solid 1px #babdb6;
  background-repeat: no-repeat;
  background-position: right 4px bottom 4px;
}
div.links-norwich-small a:hover {
  border: solid 1px #babdb6;
  box-shadow: 2px 2px 2px #729fcf;
}
@media only screen and (max-width: 900px) {
  div.links-norwich {
    width: 720px;
  }
}
@media only screen and (max-width: 720px) {
  div.links-norwich {
    width: 540px;
  }
}
@media only screen and (max-width: 540px) {
  div.links-norwich {
    width: 100%;
  }
  div.links-norwich-big {
    width: 100%;
    margin-right: 0;
  }
  div.links-norwich-big a {
    width: auto;
  }
}

div.links-twocolumn {
  display: inline-block;
  width: 48%;
  margin-top: 0;
  margin-right: 1%;
  vertical-align: top;
}
@media only screen and (max-width: 400px) {
  div.links-twocolumn {
    width: 100%;
    margin-right: 0;
  }
}

div.links .desc a {
  color: inherit;
}
div.links .desc a:hover {
  color: #204a87;
}
a.bold { font-weight: bold; }
div.linkdiv { margin: 0; padding: 0; }
a.linkdiv {
  display: block;
  margin: 0;
  padding: 0.5em;
  border-bottom: none;
}
a.linkdiv:hover {
  text-decoration: none;
  background-color: #e6f2ff;
}
a.linkdiv > span.title {
  display: block;
  margin: 0;
  font-size: 1em;
  font-weight: bold;
  color: inherit;
}
a.linkdiv > span.desc {
  display: block;
  margin: 0.2em 0 0 0;
  color: #2e3436;
}
span.linkdiv-dash { display: none; }
@media only screen and (max-width: 400px) {
  div.linkdiv {
    margin-left: -12px;
    margin-right: -12px;
  }
  div.linkdiv a {
    padding-left: 12px;
    padding-right: 12px;
  }
}

div.comment {
  padding: 0.5em;
  border: solid 2px #ef2929;
  background-color: #ffdede;
}
div.comment div.comment {
  margin: 1em 1em 0 1em;
}
div.comment div.cite {
  margin: 0 0 0.5em 0;
  font-style: italic;
}

div.tree > div.inner > div.title { margin-bottom: 0.5em; }
ul.tree {
  margin: 0; padding: 0;
  list-style-type: none;
}
li.tree { margin: -2px 0 0 0; padding: 0; }
li.tree div { margin: 0; padding: 0; }
ul.tree ul.tree {
  margin-left: 1.44em;
}
div.tree-lines ul.tree { margin-left: 0; }

span.hi {
  background-color: #fffacc;
}

div.facets {
  display: inline-block;
  padding: 6px;
  background-color: #fffacc;
  border: solid 1px #729fcf;
} 
div.facet {
 vertical-align: top;
  display: inline-block;
  margin-top: 0;
  margin-bottom: 1em;
  margin-right: 1em;
}
div.facet div.title { margin: 0; }
div.facet li {
  margin: 0; padding: 0;
  list-style-type: none;
}
div.facet input {
  vertical-align: middle;
  margin: 0;
}
dt.gloss-term {
  margin-top: 1.2em;
  font-weight: bold;
  color: #2e3436;
}
dt.gloss-term:first-child, dt.gloss-term + dt.gloss-term { margin-top: 0; }
dt.gloss-term + dd { margin-top: 0.2em; }
dd.gloss-link {
  margin: 0 0.2em 0 0.2em;
  border-left: solid 4px #729fcf;
  padding-left: 1em;
}
dd.gloss-def {
  margin: 0 0.2em 1em 0.2em;
  border-left: solid 4px #babdb6;
  padding-left: 1em;
}
a.gloss-term {
  tabindex: 0;
  border-bottom: dashed 1px #729fcf;
}
a.gloss-term:hover {
  text-decoration: none;
  border-bottom-style: solid;
}
span.gloss-desc {
  display: none;
  position: absolute;
  margin: 0;
  padding: 0.2em 0.5em 0.2em 0.5em;
  max-width: 24em;
  color: #2e3436;
  background-color: #fffacc;
  border: solid 1px #edd400;
  -moz-box-shadow: 2px 2px 4px #babdb6;
  -webkit-box-shadow: 2px 2px 4px #babdb6;
  box-shadow: 2px 2px 4px #babdb6;
}

.if-if { display: none; }
.if-choose, .if-when, .if-else { margin: 0; padding: 0; }
.if-choose > .if-when { display: none; }
.if-choose > .if-else { display: block; }
.if-if.if__not-target-mobile { display: block; }
.if-choose.if__not-target-mobile > .if-when { display: block; }
.if-choose.if__not-target-mobile > .if-else { display: none; }
@media only screen and (max-width: 400px) {
  .if-if.if__target-mobile { display: block; }
  .if-if.if__not-target-mobile { display: none; }
  .if-choose.if__target-mobile > .if-when { display: block; }
  .if-choose.if__target-mobile > .if-else { display: none; }
  .if-choose.if__not-target-mobile > .if-when { display: none; }
  .if-choose.if__not-target-mobile > .if-else { display: block; }
}
</style>
<script type="text/javascript" src="/js/jquery.js"></script><link rel="stylesheet" type="text/css" href="/skin/mallard.css">
<script type="text/javascript" language="javascript">
var __yelp_generate_id_counter__ = 0;
function yelp_generate_id () {
  var ret = 'yelp--' + (++__yelp_generate_id_counter__).toString();
  if ($('#' + ret).length != 0)
    return yelp_generate_id();
  else
    return ret;
};
$(document).ready (function () {
  var highlight_hash = function () {
    if (location.hash != '') {
      var sect = $(location.hash);
      sect.css('background-color',  '#fffacc');
      window.setTimeout(function () {
        sect.css({
          '-webkit-transition': 'background-color 2s linear',
          '-moz-transition': 'background-color 2s linear',
          'transition': 'background-color 2s linear',
          'background-color': 'rgba(1, 1, 1, 0)'
        });
      }, 200);
    }
  };
  $(window).bind('hashchange', highlight_hash);
  highlight_hash();
});

$.fn.yelp_ui_expander_toggle = function (onlyopen, callback) {
  var expander = $(this);
  var region = expander.children('.inner').children('.region');
  var yelpdata = expander.children('div.yelp-data-ui-expander');
  var compfunc = function () {
    if (expander.is('div.figure')) { expander.yelp_auto_resize(); }
    if (callback) { callback(); }
    return true;
  };
  var title = expander.children('.inner').children('.title');
  if (title.length == 0)
    title = expander.children('.inner').children('.hgroup');
  var title = title.find('span.title:first');
  if (expander.is('.ui-expander-e')) {
    if (!onlyopen) {
      expander.removeClass('ui-expander-e').addClass('ui-expander-c');
      region.attr('aria-expanded', 'false').slideUp('fast', compfunc);
      title.html(yelpdata.children('div.yelp-title-collapsed').html());
    }
  }
  else {
    expander.removeClass('ui-expander-c').addClass('ui-expander-e');
    region.attr('aria-expanded', 'true').slideDown('fast', compfunc);
    title.html(yelpdata.children('div.yelp-title-expanded').html());
  }
};
$(document).ready(function () {
  $('.ui-expander').each(function () {
    var expander = $(this);
    var yelpdata = expander.children('div.yelp-data-ui-expander');
    var region = expander.children('.inner').children('.region');
    var title = expander.children('.inner').children('.title');
    var issect = false;
    if (title.length == 0) {
      title = expander.children('.inner').children('.hgroup');
      issect = true;
    }
    if (title.length == 0) {
      return;
    }
    if (region.attr('id') == '')
      region.attr('id', yelp_generate_id());
    title.attr('aria-controls', region.attr('id'));
    var titlespan = title.find('span.title:first');
    var title_e = yelpdata.children('div.yelp-title-expanded');
    var title_c = yelpdata.children('div.yelp-title-collapsed');
    if (title_e.length == 0)
      yelpdata.append($('<div class="yelp-title-expanded"></div>').html(titlespan.html()));
    if (title_c.length == 0)
      yelpdata.append($('<div class="yelp-title-collapsed"></div>').html(titlespan.html()));
    if (yelpdata.attr('data-yelp-expanded') == 'false') {
      expander.addClass('ui-expander-c');
      region.attr('aria-expanded', 'false').hide();
      if (title_c.length != 0)
        titlespan.html(title_c.html());
    } else {
      expander.addClass('ui-expander-e');
      region.attr('aria-expanded', 'true');
      if (title_e.length != 0)
        titlespan.html(title_e.html());
    }
    title.click(function () {
      expander.yelp_ui_expander_toggle(false);
    });
  });
});
$(document).ready(function () {
  var expand_hash = function () {
    if (location.hash != '') {
      var target = $(location.hash);
      var parents = target.parents('div.ui-expander');
      if (target.is('div.ui-expander'))
        parents = parents.andSelf();
      parents.each(function () {
        $(this).yelp_ui_expander_toggle(true, function () {
          window.scrollTo(0, $(target).offset().top);
        });
      });
    }
  };
  $(window).bind('hashchange', expand_hash);
  expand_hash();
});

yelp_color_text_light = '#2e3436';
yelp_color_gray_background = '#f3f3f0';
yelp_color_gray_border = '#babdb6';
yelp_paint_zoom = function (zoom, zoomed) {
  var ctxt = zoom.children('canvas')[0].getContext('2d');
  ctxt.strokeStyle = ctxt.fillStyle = yelp_color_text_light;
  ctxt.clearRect(0, 0, 10, 10);
  ctxt.strokeRect(0.5, 0.5, 9, 9);
  if (zoomed) {
    ctxt.fillRect(1, 1, 9, 4);
    ctxt.fillRect(5, 5, 4, 4);
    zoom.attr('title', zoom.attr('data-zoom-out-title'));
  }
  else {
    ctxt.fillRect(1, 5, 4, 4);
    zoom.attr('title', zoom.attr('data-zoom-in-title'));
  }
}
$.fn.yelp_auto_resize = function () {
  var fig = $(this);
  if (fig.is('img'))
    fig = fig.parents('div.figure').eq(0);
  if (fig.data('yelp-zoom-timeout') != undefined) {
    clearInterval(fig.data('yelp-zoom-timeout'));
    fig.removeData('yelp-zoom-timeout');
  }
  var imgs = fig.find('img');
  for (var i = 0; i < imgs.length; i++) {
    var img = $(imgs[i]);
    if (img.data('yelp-load-bound') == true)
      img.unbind('load', fig.yelp_auto_resize);
    if (!imgs[i].complete) {
      img.data('yelp-load-bound', true);
      img.bind('load', fig.yelp_auto_resize);
      return false;
    }
  }
  $(window).unbind('resize', yelp_resize_imgs);
  var zoom = fig.children('div.inner').children('a.zoom');
  if (fig.find('div.contents:first').is(':hidden')) {
    zoom.hide();
    return;
  }
  for (var i = 0; i < imgs.length; i++) {
    var img = $(imgs[i]);
    if (img.data('yelp-original-width') == undefined) {
      var iwidth = parseInt(img.attr('width'));
      if (!iwidth)
        iwidth = img[0].width;
      img.data('yelp-original-width', iwidth);
      var iheight = parseInt(img.attr('height'));
      if (!iheight)
        iheight = img[0].height * (iwidth / img[0].width);
      img.data('yelp-original-height', iheight);
    }
    if (img.data('yelp-original-width') > img.parent().width()) {
      if (img.data('yelp-zoomed') != true) {
        img[0].width = img.parent().width();
        img[0].height = (parseInt(img.data('yelp-original-height')) *
                         img.width() / parseInt(img.data('yelp-original-width')));
      }
      zoom.show();
    }
    else {
      img[0].width = img.data('yelp-original-width');
      img[0].height = img.data('yelp-original-height');
      zoom.hide();
    }
  }
  /* The image scaling above can cause the window to resize if it causes
   * scrollbars to disappear or reapper. Unbind the resize handler before
   * scaling the image. Don't rebind immediately, because we'll still get
   * that resize event in an idle. Rebind on the callback instead.
   */
  var reresize = function () {
    $(window).unbind('resize', reresize);
    $(window).bind('resize', yelp_resize_imgs);
  }
  $(window).bind('resize', reresize);
  return false;
};
yelp_resize_imgs = function () {
  $('div.figure img').parents('div.figure').each(function () {
    var div = $(this);
    if (div.data('yelp-zoom-timeout') == undefined)
      div.data('yelp-zoom-timeout', setTimeout(function () { div.yelp_auto_resize() }, 1));
  });
  return false;
};
$(document).ready(function () {
  $('div.figure img').parents('div.figure').each(function () {
    var fig = $(this);
    var zoom = fig.children('div.inner').children('a.zoom');
    zoom.append($('<canvas width="10" height="10"/>'));
    yelp_paint_zoom(zoom, false);
    zoom.data('yelp-zoomed', false);
    zoom.click(function () {
      var zoomed = !zoom.data('yelp-zoomed');
      zoom.data('yelp-zoomed', zoomed);
      zoom.parent().find('img').each(function () {
        var zimg = $(this);
        zimg.data('yelp-zoomed', zoomed);
        if (zoomed) {
          zimg[0].width = zimg.data('yelp-original-width');
          zimg[0].height = zimg.data('yelp-original-height');
        } else {
          zimg[0].width = zimg.parent().width();
          zimg[0].height = (parseInt(zimg.data('yelp-original-height')) *
                            zimg.width() / parseInt(zimg.data('yelp-original-width')));
        }
        yelp_paint_zoom(zoom, zoomed);
      });
      return false;
    });
  });
  yelp_resize_imgs();
  $(window).bind('resize', yelp_resize_imgs);
});
function yelp_init_video (element) {
  var video = $(element);
  video.removeAttr('controls');

  var controls = $('<div class="media-controls media-controls-' + element.nodeName + '"></div>');
  var playControl = $('<button class="media-play"></button>').attr({
    'data-play-label': video.attr('data-play-label'),
    'data-pause-label': video.attr('data-pause-label'),
    'value': video.attr('data-play-label')
  });
  var playCanvas = $('<canvas width="20" height="20"></canvas>');
  playControl.append(playCanvas);
  var rangeCanvas = $('<canvas width="104" height="20"></canvas>');
  var rangeCanvasCtxt = rangeCanvas[0].getContext('2d');
  rangeCanvasCtxt.strokeStyle = yelp_color_gray_border;
  rangeCanvasCtxt.strokeWidth = 1;
  rangeCanvasCtxt.strokeRect(0.5, 0.5, 103, 19);
  var currentSpan = $('<span class="media-current">0:00</span>');
  var durationSpan = $('<span class="media-duration">-:--</span>');
  controls.append(playControl,
                  $('<div class="media-range"></div>').append(rangeCanvas),
                  $('<div class="media-time"></div>').append(currentSpan, durationSpan));
  video.after(controls);

  var playCanvasCtxt = playCanvas[0].getContext('2d');
  var paintPlayButton = function () {
    playCanvasCtxt.fillStyle = yelp_color_gray_background;
    playCanvasCtxt.clearRect(0, 0, 20, 20);
    playCanvasCtxt.beginPath();
    playCanvasCtxt.moveTo(5, 5);   playCanvasCtxt.lineTo(5, 15);
    playCanvasCtxt.lineTo(15, 10); playCanvasCtxt.lineTo(5, 5);
    playCanvasCtxt.fill();
  }
  var paintPauseButton = function () {
    playCanvasCtxt.fillStyle = yelp_color_gray_background;
    playCanvasCtxt.clearRect(0, 0, 20, 20);
    playCanvasCtxt.beginPath();
    playCanvasCtxt.moveTo(5, 5);   playCanvasCtxt.lineTo(9, 5);
    playCanvasCtxt.lineTo(9, 15);  playCanvasCtxt.lineTo(5, 15);
    playCanvasCtxt.lineTo(5, 5);   playCanvasCtxt.fill();
    playCanvasCtxt.beginPath();
    playCanvasCtxt.moveTo(11, 5);  playCanvasCtxt.lineTo(15, 5);
    playCanvasCtxt.lineTo(15, 15); playCanvasCtxt.lineTo(11, 15);
    playCanvasCtxt.lineTo(11, 5);  playCanvasCtxt.fill();
  }
  paintPlayButton();

  var video_el = video[0];
  var mediaChange = function () {
    if (video_el.ended)
      video_el.pause()
    if (video_el.paused) {
      playControl.attr('value', playControl.attr('data-play-label'));
      paintPlayButton();
    }
    else {
      playControl.attr('value', playControl.attr('data-pause-label'));
      paintPauseButton();
    }
  }
  video_el.addEventListener('play', mediaChange, false);
  video_el.addEventListener('pause', mediaChange, false);
  video_el.addEventListener('ended', mediaChange, false);

  var playClick = function () {
    if (video_el.paused || video_el.ended)
      video_el.play();
    else
      video_el.pause();
  };
  playControl.click(playClick);

  var ttmlDiv = video.parent().children('div.media-ttml');
  var ttmlNodes = ttmlDiv.find('.media-ttml-node');

  var timeUpdate = function () {
    var pct = (element.currentTime / element.duration) * 100;
    rangeCanvasCtxt.fillStyle = yelp_color_gray_border;
    rangeCanvasCtxt.clearRect(2, 2, 100, 16);
    rangeCanvasCtxt.fillRect(2, 2, pct, 16);
    var mins = parseInt(element.currentTime / 60);
    var secs = parseInt(element.currentTime - (60 * mins))
    currentSpan.text(mins + (secs < 10 ? ':0' : ':') + secs);
    ttmlNodes.each(function () {
      var ttml = this;
      if (element.currentTime >= parseFloat(ttml.getAttribute('data-ttml-begin')) &&
          (!ttml.hasAttribute('data-ttml-end') ||
           element.currentTime < parseFloat(ttml.getAttribute('data-ttml-end')) )) {
        if (ttml.tagName == 'span')
          ttml.style.display = 'inline';
        else
          ttml.style.display = 'block';
      }
      else {
        ttml.style.display = 'none';
      }
    });
  };
  element.addEventListener('timeupdate', timeUpdate, false);
  var durationUpdate = function () {
    if (!isNaN(element.duration)) {
      mins = parseInt(element.duration / 60);
      secs = parseInt(element.duration - (60 * mins));
      durationSpan.text(mins + (secs < 10 ? ':0' : ':') + secs);
    }
  };
  element.addEventListener('durationchange', durationUpdate, false);

  rangeCanvas.click(function (event) {
    var pct = event.clientX - Math.floor(rangeCanvas.offset().left);
    if (pct < 0)
      pct = 0;
    if (pct > 100)
      pct = 100;
    element.currentTime = (pct / 100.0) * element.duration;
  });
};
$(document).ready(function () {
  $('video, audio').each(function () { yelp_init_video(this) });;
});

$(document).ready(function () {
  $('input.facet').change(function () {
    var control = $(this);
    var content = control.closest('div.body,div.sect');
    content.find('.facet-link').each(function () {
      var link = $(this);
      var facets = link.parents('div.body,div.sect').children('div.region').children('div.contents').children('div.facets').children('div.facet');
      var visible = true;
      for (var i = 0; i < facets.length; i++) {
        var facet = facets.slice(i, i + 1);
        var facetvis = false;
        var inputs = facet.find('input.facet:checked');
        for (var j = 0; j < inputs.length; j++) {
          var input = inputs.slice(j, j + 1);
          var inputvis = false;
          var key = input.attr('data-facet-key');
          var values = input.attr('data-facet-values').split(' ');
          for (var k = 0; k < values.length; k++) {
            if (link.is('*[data-facet-' + key + ' ~= "' + values[k] + '"]')) {
              inputvis = true;
              break;
            }
          }
          if (inputvis) {
            facetvis = true;
            break;
          }
        }
        if (!facetvis) {
          visible = false;
          break;
        }
      }
      if (!visible)
        link.hide('fast');
      else
        link.show('fast');
    });
  });
});

$(document).ready(function () {
  $('a.gloss-term').each(function () {
    if ($(this).attr('href') == '#') {
      $(this).click(function () { return false; });
    }
    var showtip = function () {
      var desc = $(this).children('span.gloss-desc');
      if (desc.is(':visible'))
        return;
      var top = $(this).offset().top + $(this).height() + 1;
      var left = $(this).offset().left;
      var cnt = $(this).closest('div.contents');
      var diff = cnt.offset().left + cnt.width() - desc.width() - 4;
      if (left > diff)
        left = diff;
      desc.css({'top': top + 'px', 'left': left + 'px'}).fadeIn('slow');
    };
    var hidetip = function () {
      if ($(this).is(':focus'))
        return;
      $(this).children('span.gloss-desc').fadeOut('fast');
    };
    $(this).hover(showtip, hidetip);
    $(this).focus(showtip);
    $(this).blur(hidetip);
  });
});

$(document).ready(function () {
  $('div.mouseovers').each(function () {
    var contdiv = $(this);
    var width = 0;
    var height = 0;
    contdiv.find('img').each(function () {
      if ($(this).attr('data-yelp-match') == '')
        $(this).show();
    });
    contdiv.next('ul').find('a').each(function () {
      var mlink = $(this);
      mlink.hover(
        function () {
          if (contdiv.is(':visible')) {
            var offset = contdiv.offset();
            mlink.find('img').css({left: offset.left, top: offset.top, zIndex: 10});
            mlink.find('img').fadeIn('fast');
          }
        },
        function () {
          mlink.find('img').fadeOut('fast');
        }
      );
    });
  });
  $('div.links-ui-hover').each(function () {
    var contdiv = $(this);
    var width = 0;
    var height = 0;
    contdiv.next('ul').find('a').each(function () {
      var mlink = $(this);
      mlink.hover(
        function () {
          if (contdiv.is(':visible')) {
            var offset = contdiv.offset();
            mlink.find('img').parent('span').css({left: offset.left, top: offset.top, zIndex: 10});
            mlink.find('img').parent('span').show();
          }
        },
        function () {
          mlink.find('img').parent('span').hide();
        }
      );
    });
  });
  $('a.ui-overlay').each(function () {
    $(this).click(function () {
      var overlay = $(this).parent('div').children('div.ui-overlay');
      var inner = overlay.children('div.inner');
      var close = inner.children('a.ui-overlay-close');
      var media = inner.find('audio, video');
      var screen = $('div.ui-screen');
      if (screen.length == 0) {
        screen = $('<div class="ui-screen"></div>');
        $('body').append(screen);
      }
      var hideoverlay = function () {
        if (media.length > 0)
          media[0].pause();
        $(document).unbind('keydown.yelp-ui-overlay');
        close.unbind('click');
        screen.unbind('click');
        screen.fadeOut('slow');
        overlay.unbind('click');
        overlay.slideUp('fast');
        return false;
      };
      screen.click(hideoverlay);
      close.click(hideoverlay);
      $(document).bind('keydown.yelp-ui-overlay', function (event) {
        if (event.which == 27) {
          hideoverlay();
        }
      });
      overlay.click(function (event) {
        var target = event.target;
        do {
          if (target == inner[0]) {
            break;
          }
        } while (target = target.parentNode);
        if (target != inner[0]) {
          hideoverlay();
          return false;
        }
      });
      screen.fadeIn('slow');
      overlay.slideDown('fast', function () {
        if (media.length > 0)
          media[0].play();
      });
      return false;
    });
  });
});
</script><script type="text/javascript" language="javascript">
$(document).ready(function () {
  $('div.mouseovers').each(function () {
    var contdiv = $(this);
    var width = 0;
    var height = 0;
    var img = null;
    contdiv.find('img').each(function () {
      img = $(this);
      if ($(this).attr('data-yelp-match') == '')
        $(this).show();
    });
    contdiv.next('ul').find('a').each(function () {
      var mlink = $(this);
      console.log('mlink', $(this));
      mlink.hover(
        function () {
          var offset = img.offset();
          mlink.find('img').css({left: offset.left, top: offset.top, zIndex: 10});
          mlink.find('img').fadeIn('fast');
        },
        function () {
          mlink.find('img').fadeOut('fast');
        }
      );
    });
  })
});
       </script>
</head>
<body>
<div id="accessibility_access"><ul>
<li><a href="#container">Go to page content</a></li>
<li><a href="#top_bar">Go to main menu</a></li>
<li><a href="#s" onclick="$('#s').focus(); return false;">Go to the search field</a></li>
</ul></div>
<div id="global_domain_bar"><div class="maxwidth"><div class="tab"><a class="root" href="https://www.gnome.org/">GNOME.org</a></div></div></div>
<div id="header" class="container_12">
<div id="logo" class="grid_3"><a title="Go to home page" href="/"><img alt="GNOME: The Free Software Desktop Project" src="/skin/gnome-logo.png"></a></div>
<div id="top_bar" class="grid_9">
<div class="left"><div class="menu-globalnav-container"><ul id="menu-globalnav" class="menu">
<li class="menu-item menu-item-type-post_type menu-item-6"><a href="/about/">Informacje</a></li>
<li class="menu-item menu-item-type-post_type menu-item-23"><a href="https://help.gnome.org/users/">Użytkownicy</a></li>
<li class="menu-item menu-item-type-post_type menu-item-40"><a href="https://help.gnome.org/admin/">Administratorzy</a></li>
<li class="menu-item menu-item-type-post_type menu-item-37"><a href="https://developer.gnome.org/">Programiści</a></li>
</ul></div></div>
<div class="right"><form role="search" method="get" id="searchform" action="/search"><div>
<label class="hidden" for="q">Wyszukaj:
                        </label><input type="text" value="" name="q" id="s" placeholder="Search">
</div></form></div>
</div>
</div>
<div class="clearfix"></div>
<div id="container">
<div class="head"></div>
<div class="content body"><div>
<div class="hgroup"><h1 class="title"><span class="title">GNOME 3.20: Delhi</span></h1></div>
<div class="region">
<div class="contents">
<p class="p">Projekt GNOME przedstawia wydanie GNOME 3.20. Od wydania 3.18 minęło pół roku i przez ten czas 837 osób wprowadziło 28933 zmiany. Wydanie 3.20 oferuje nowe duże funkcje, a także zbiór mniejszych ulepszeń.</p>
<p class="p">3.20 nosi nazwę „Delhi” w uznaniu dla zespołu organizującego tegoroczną konferencję GNOME.Asia. <span class="link"><a href="http://gnome.asia/" title="http://gnome.asia/">GNOME.Asia</a></span> to coroczna konferencja projektu GNOME w Azji, która jest możliwa tylko dzięki pracy lokalnych ochotników.</p>
</div>
<div id="os-upgrades" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">Łatwe aktualizacje systemu operacyjnego</span></h2></div>
<div class="region"><div class="contents">
<div class="media media-image"><div class="inner"><img src="figures/os-upgrades.png" class="media media-block" alt=""></div></div>
<p class="p">Menedżer oprogramowania zawsze umożliwiał instalowanie aktualizacji oprogramowania. Od wydania 3.20 można także aktualizować do nowych wersji systemu operacyjnego. Po raz pierwszy GNOME posiada taką możliwość. Nie trzeba już przeprowadzać nowej instalacji ani używać narzędzi wiersza poleceń, aby przejść na nową wersję dystrybucji. Jest to znaczący krok na drodze do użytecznych i dostępnych dla wszystkich systemów opartych na GNOME.</p>
<p class="p">Aktualizowanie systemu operacyjnego jest proste i wygodne: wyświetlane jest powiadomienie, kiedy aktualizacja jest dostępna do pobrania, a później postęp pobierania. Instalacja aktualizacji ma miejsce, kiedy system nie jest uruchomiony, aby zwiększyć jej bezpieczeństwo i zapobiec możliwym błędom.</p>
</div></div>
</div></div>
<div id="wayland" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">Wayland jest dostępny</span></h2></div>
<div class="region"><div class="contents">
<div class="media media-image"><div class="inner"><img src="figures/wayland.png" class="media media-block" alt=""></div></div>
<p class="p">Wayland to technologia wyświetlania i obsługi wejścia w systemach GNU/Linux następnej generacji. Jej użycie eliminuje błędy wyświetlania grafiki, łata długoletnie dziury, i kładzie fundamenty pod bardziej bezpieczne programy. Wayland zawiera także zupełnie nowe funkcje, takie jak obsługa wielopunktowych gestów na panelach dotykowych.</p>
<p class="p">Praca nad obsługą Wayland w GNOME trwa już od pewnego czasu, i duża jej część miała miejsce podczas cyklu 3.20. Funkcje ukończone przed wydaniem 3.20 obejmują przewijanie kinetyczne, „przeciągnij i upuść”, powiadamianie o uruchamianiu programów, wklejanie środkowym przyciskiem myszy i wiele więcej. Oznacza to, że dla większości użytkowników Wayland dostarcza wszystko, co niezbędne. Można wypróbować Wayland wybierając „GNOME (Wayland)” z menu pod przyciskiem przekładni na ekranie logowania.</p>
<p class="p">Uwaga: niektóre funkcje są niedostępne w Wayland, w tym udostępnianie pulpitu i obsługa tabletów graficznych firmy Wacom.</p>
</div></div>
</div></div>
<div id="photo-editing" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">Prosta i łatwa edycja zdjęć</span></h2></div>
<div class="region"><div class="contents">
<div class="media media-image"><div class="inner"><img src="figures/photo-editing.png" class="media media-block" alt=""></div></div>
<p class="p">Wydanie 3.20 wprowadza obsługę edycji w Menedżerze zdjęć. Nowe funkcje edycji są proste i łatwe w użyciu. Są one niedestruktywne, więc oryginalne zdjęcia są zachowywane, a zmiany można cofać. Można przycinać i obracać, dostosowywać kolory i uwydatniać zdjęcia. Dostępny jest także zestaw filtrów artystycznych.</p>
<p class="p">Nowa funkcja eksportowania umożliwia tworzenie kopii zmodyfikowanych zdjęć do udostępniania, drukowania lub w celu zachowania kopii zapasowej. Opcja eksportowania przy zmniejszonym rozmiarze jest przydatna do udostępniania i wysyłania e-mailem.</p>
<p class="p">Najnowsze wydanie Menedżera zdjęć zawiera zbiór mniejszych poprawek błędów i ulepszeń.</p>
</div></div>
</div></div>
<div id="shortcut-windows" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">Opanuj wszystkie skróty!</span></h2></div>
<div class="region"><div class="contents">
<div class="media media-image"><div class="inner"><img src="figures/shortcut-windows.png" class="media media-block" alt=""></div></div>
<p class="p">Okno skrótów to nowy sposób na poznanie skrótów klawiszowych i gestów wielopunktowych (na panelach dotykowych) w programach GNOME. Grupy, strony i wyszukiwarka ułatwiają znajdowanie potrzebnych skrótów.</p>
<p class="p">W wydaniu 3.20 wiele programów GNOME posiada okna skrótów, w tym Menedżer plików, Odtwarzacz filmów, Menedżer zdjęć, gedit, Builder, Mapy. Okno skrótów można otworzyć z menu programu na górnym pasku lub używając skrótu <span class="keyseq"><span class="key"><kbd>Ctrl</kbd></span>+<span class="key"><kbd>?</kbd></span></span> lub <span class="keyseq"><span class="key"><kbd>Ctrl</kbd></span>+<span class="key"><kbd>F1</kbd></span></span>.</p>
</div></div>
</div></div>
<div id="media-controls" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">Szybki dostęp do kontroli multimediów</span></h2></div>
<div class="region"><div class="contents">
<div class="media media-image"><div class="inner"><img src="figures/media-controls.png" class="media media-block" alt=""></div></div>
<p class="p">GNOME 3.20 posiada opcje kontrolowania multimediów wbudowane w obszar powiadamiania/zegar. Dostarcza to szybki dostęp do obecnie używanych odtwarzaczy muzyki i filmów. Można kontrolować kilka programów na raz.</p>
<p class="p">Wyświetlana jest nazwa i wykonawca obecnie odtwarzanej ścieżki, którą można wstrzymywać i wznawiać, a także przechodzić do następnej i poprzedniej ścieżki. Ta nowa funkcja działa z wieloma odtwarzaczami muzyki dzięki powszechnie stosowanym standardzie MPRIS.</p>
</div></div>
</div></div>
<div id="polari" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">Nowa wersja IRC-a</span></h2></div>
<div class="region"><div class="contents">
<div class="media media-image"><div class="inner"><img src="figures/polari.png" class="media media-block" alt=""></div></div>
<p class="p">3.20 to ważne wydanie dla Polari, klienta sieci IRC dla środowiska GNOME. Znacząco ulepszono funkcję wklejania tekstu do specjalnego serwisu wprowadzoną w poprzednim wydaniu: oprócz wklejania bloków tekstu do udostępniania można także wklejać obrazy bezpośrednio do rozmów, aby udostępnić je używając serwisu <span class="link"><a href="http://imgur.com/" title="http://imgur.com/">Imgur</a></span>.</p>
<p class="p">W wydaniu 3.20 ulepszono także dodawanie serwerów i pokojów oraz ustawienia serwera. Nie trzeba już ręcznie wpisywać adresu serwera — wystarczy wybrać go z listy. Jest to nie tylko łatwiejsze, ale także zapewnia automatyczny wybór jak najbezpieczniejszego połączenia. W wydaniu 3.20 właściwości serwera są dostępne z paska bocznego, co jest znacznie wygodniejsze. Wymienione zmiany zostały zaimplementowane przez Isabellę Ribeiro w ramach stażu <span class="link"><a href="https://www.gnome.org/outreachy/" title="https://www.gnome.org/outreachy/">Outreachy</a></span>.</p>
<p class="p">Nowa wersja Polari obsługuje także bardziej tradycyjne funkcje sieci IRC, takie jak polecenie /msg, uzupełnianie poleceń klawiszem Tab oraz możliwość otwierania odnośników do kanałów IRC.</p>
<p class="p">Dodatkowo, wydanie 3.20 zawiera wiele innych zmian:</p>
<div class="list"><div class="inner"><div class="region"><ul class="list">
<li class="list"><p class="p">Obsługa haseł serwerów (co jest szczególnie przydatne podczas używania programów typu <span class="link"><a href="https://en.wikipedia.org/wiki/BNC_(software)" title="https://en.wikipedia.org/wiki/BNC_(software)">BNC</a></span>, takich jak <span class="link"><a href="http://wiki.znc.in/ZNC" title="http://wiki.znc.in/ZNC">ZNC</a></span>).</p></li>
<li class="list"><p class="p">Ulepszony wygląd programu: nowy pasek wprowadzania tekstu i odpowiednie animacje.</p></li>
<li class="list"><p class="p">Inteligentniejsza obsługa wiadomości stanu, aby zmniejszyć niepotrzebne wiadomości w pokojach rozmów.</p></li>
<li class="list"><p class="p">Więcej skrótów klawiszowych (okno skrótów daje ich przegląd).</p></li>
</ul></div></div></div>
</div></div>
</div></div>
<div id="files" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">Bardziej dopracowany Menedżer plików</span></h2></div>
<div class="region"><div class="contents">
<div class="media media-image"><div class="inner"><img src="figures/files-search.png" class="media media-block" alt=""></div></div>
<p class="p">Menedżer plików w wydaniu 3.20 został znacznie ulepszony. Szczególnie skupiono się na wyszukiwaniu: zreorganizowano filtry oraz znacznie uproszczono interfejs użytkownika. Wyszukiwanie jest także dokładniejsze. Naprawiono problemy z wydajnością, a interfejs jest dużo szybszy.</p>
<p class="p">Menedżer plików posiada teraz mniejsze i łatwiejsze w obsłudze okno preferencji. Można teraz włączyć funkcje usuwania plików bez przenoszenia do kosza, tworzenia dowiązań symbolicznych, a także rekursywne wyszukiwanie.</p>
<p class="p">Mniejsze ulepszenia w wydaniu 3.20 obejmują dodatkowy poziom powiększenia w widokach listy i siatki, większe miniatury oraz wyświetlanie ilości wolnego miejsca na dyskach w widoku innych położeń.</p>
</div></div>
</div></div>
<div id="more" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">A to nie wszystko</span></h2></div>
<div class="region"><div class="contents">
<p class="p">Wydanie GNOME 3.20 zawiera o wiele więcej nowości. Czytaj dalej, aby się o nich dowiedzieć.</p>
<div class="links topiclinks"><div class="inner"><div class="region">
<div class="linkdiv "><a class="linkdiv" href="more.html.pl" title="more"><span class="title">Inne ulepszenia w wydaniu 3.20</span><span class="linkdiv-dash"> — </span><span class="desc">Informacje o innych ulepszeniach w wydaniu 3.20</span></a></div>
<div class="linkdiv "><a class="linkdiv" href="i18n.html.pl" title="i18n"><span class="title">Umiędzynaradawianie</span><span class="linkdiv-dash"> — </span><span class="desc">Więcej informacji o różnych językach, w których dostępne jest GNOME 3.20</span></a></div>
<div class="linkdiv "><a class="linkdiv" href="developers.html.pl" title="developers"><span class="title">Nowości dla programistów i administratorów systemów</span><span class="linkdiv-dash"> — </span><span class="desc">Nowe funkcje dla osób pracujących z technologiami GNOME</span></a></div>
</div></div></div>
</div></div>
</div></div>
<div id="getting-gnome" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">Skąd wziąć GNOME 3.20</span></h2></div>
<div class="region"><div class="contents"><p class="p">Środowisko GNOME jest <span class="link"><a href="https://gnu.org/philosophy/free-sw.html" title="https://gnu.org/philosophy/free-sw.html">wolnym oprogramowaniem</a></span>: cały <span class="link"><a href="https://git.gnome.org/" title="https://git.gnome.org/">kod źródłowy</a></span> jest dostępny do pobrania i może być dowolnie modyfikowany i rozpowszechniany. Aby je zainstalować, zalecane jest poczekanie na oficjalne pakiety dostarczane przez dostawcę lub dystrybucję. GNOME 3.20 będzie dostępne w popularnych dystrybucjach już niedługo, a niektóre z nich już posiadają wersje rozwojowe zawierające nowe wydanie środowiska GNOME.</p></div></div>
</div></div>
<div id="about" class="sect"><div class="inner">
<div class="hgroup"><h2 class="title"><span class="title">Informacje o GNOME</span></h2></div>
<div class="region"><div class="contents"><p class="p"><span class="link"><a href="https://www.gnome.org/about/" title="https://www.gnome.org/about/">Projekt GNOME</a></span> to międzynarodowa społeczność wspierana przez fundację non-profit. Projekt skupia się na łatwości użycia oraz jak najlepszym umiędzynaradawianiu i dostępności. Środowisko GNOME jest oprogramowaniem wolnym i open source, a każdy może do nas <span class="link"><a href="https://www.gnome.org/get-involved/" title="https://www.gnome.org/get-involved/">dołączyć</a></span>.</p></div></div>
</div></div>
</div>
<div class="clear"></div>
</div></div>
<div class="content about"><div>
<div class="sect about ui-expander" role="contentinfo">
<div class="yelp-data yelp-data-ui-expander" data-yelp-expanded="false"></div>
<div class="inner">
<div class="hgroup"><h2><span class="title">Informacje</span></h2></div>
<div class="region"><div class="contents">
<div class="copyrights">
<div class="copyright">© 2010-2016 Piotr Drąg</div>
<div class="copyright">© 2009-2016 Aviary.pl</div>
</div>
<div class="aboutblurb authors">
<div class="title"><span class="title">Napisane przez</span></div>
<ul class="credits">
<li>Allan Day</li>
<li>Adelia Rahim</li>
</ul>
</div>
<div class="aboutblurb translators">
<div class="title"><span class="title">Przetłumaczone przez</span></div>
<ul class="credits">
<li>Piotr Drąg</li>
<li>Aviary.pl</li>
</ul>
</div>
<div class="aboutblurb license">
<div class="title"><span class="title">Licencja</span></div>
<div class="contents"><p class="p">Creative Commons Share Alike 4.0</p></div>
</div>
</div></div>
</div>
</div>
<p class="action_box doc-feedback">Sugestie? Błędy? Nieczytelne instrukcje? <a class="button" href="mailto:docs-feedback@gnome.org?subject=Feedback%20on%20misc/release-notes/3.20/index.page">Wyślij opinię o tej stronie.</a></p>
</div></div>
<div id="footer_art" class="default"> </div>
</div>
<div class="clearfix"></div>
<div id="footer_grass">   </div>
<div id="footer"><div class="container_12">
<div class="links grid_9">
<div class="menu-footer-1-container"><ul id="menu-footer-1" class="menu"><li id="menu-item-88" class="menu-item menu-item-type-custom menu-item-home menu-item-88">
<a href="https://www.gnome.org/">The GNOME Project</a><ul class="sub-menu">
<li id="menu-item-89" class="menu-item menu-item-type-post_type menu-item-89"><a href="https://www.gnome.org/about/">About Us</a></li>
<li id="menu-item-90" class="menu-item menu-item-type-custom menu-item-90"><a href="https://www.gnome.org/get-involved/">Get Involved</a></li>
<li id="menu-item-91" class="menu-item menu-item-type-custom menu-item-91"><a href="https://www.gnome.org/teams/">Teams</a></li>
<li id="menu-item-92" class="menu-item menu-item-type-custom menu-item-92"><a href="https://foundation.gnome.org">The GNOME Foundation</a></li>
<li><a href="https://www.gnome.org/support-gnome/">Support GNOME</a></li>
<li><a href="https://www.gnome.org/contact/">Contact</a></li>
</ul>
</li></ul></div>
<div class="menu-footer-2-container"><ul id="menu-footer-2" class="menu"><li id="menu-item-99" class="menu-item menu-item-type-post_type current-menu-item page_item page-item-20 current_page_item menu-item-99">
<a href="#">Resources</a><ul class="sub-menu">
<li><a href="https://help.gnome.org">Documentation</a></li>
<li><a href="https://wiki.gnome.org">Wiki</a></li>
<li><a href="https://mail.gnome.org/mailman/listinfo">Mailing Lists</a></li>
<li><a href="https://wiki.gnome.org/GnomeIrcChannels">IRC Channels</a></li>
<li><a href="https://gitlab.gnome.org/">Bug Tracker</a></li>
<li><a href="https://gitlab.gnome.org/">Development Code</a></li>
<li><a href="https://wiki.gnome.org/Jhbuild">Build Tool</a></li>
</ul>
</li></ul></div>
<div class="menu-footer-4-container"><ul id="menu-footer-4" class="menu"><li id="menu-item-104" class="menu-item menu-item-type-custom menu-item-104">
<a href="http://www.gnome.org/news/">News</a><ul class="sub-menu">
<li><a href="https://www.gnome.org/start/stable">Latest Release</a></li>
<li><a href="https://planet.gnome.org">Planet GNOME</a></li>
<li><a href="https://news.gnome.org">Development News</a></li>
<li><a href="https://twitter.com/gnome">Twitter</a></li>
</ul>
</li></ul></div>
</div>
<div class="links grid_3 right"><div>
<ul class="menu available_languages"><li>
<strong>This website is available in many languages</strong><ul class="sub-menu"><li><a href="/languages" title="Switching Language">Switch Language</a></li></ul>
</li></ul>
<script type="text/javascript" src="/js/language.js"></script>
</div></div>
<div id="footnotes" class="grid_9">
                Copyright © 2005‒2014 <strong class="gnome_logo">The GNOME Project</strong><br><small>Optimised for standards. Hosted by <a href="http://redhat.com">Red Hat</a>.</small>
</div>
<div class="clear"></div>
</div></div>
<script type="text/javascript">
$(document).ready(function() {
    // Get browser
    $.each($.browser, function(i) {
        $('body').addClass(i);
        return false;
    });

    // Get OS and add it as class to body tag, this then allows forcing some
    // customisation in the CSS rules.
    var match = navigator.userAgent.toLowerCase().match(/(win|mac|linux)/);
    if (match) {
        $('body').addClass(match[0]);
    }
});
</script><script type="text/javascript">
      var _paq = _paq || [];
      _paq.push(['disableCookies']);
      _paq.push(["trackPageView"]);
      _paq.push(["enableLinkTracking"]);

      (function() {
        var u=(("https:" == document.location.protocol) ? "https" : "http") + "://webstats.gnome.org/";
        _paq.push(["setTrackerUrl", u+"piwik.php"]);
        _paq.push(["setSiteId", "6"]);
        var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
        g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
      })();
    </script>
</body>
</html>
