Imported Upstream version 2.65.0 upstream/2.65.0
authorDongHun Kwak <dh0128.kwak@samsung.com>
Fri, 29 Oct 2021 01:23:06 +0000 (10:23 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Fri, 29 Oct 2021 01:23:06 +0000 (10:23 +0900)
343 files changed:
.gitlab-ci.yml
.gitlab-ci/README.md
.gitlab-ci/android-setup-env.sh
.gitlab-ci/cross_file_ios_example.txt [new file with mode: 0644]
.gitlab-ci/fedora.Dockerfile
.gitlab-ci/meson-junit-report.py
.gitlab-ci/run-check-todos.sh
.gitlab-ci/run-style-check-diff.sh
.gitlab-ci/show-execution-environment.sh [new file with mode: 0755]
NEWS
README.md
docs/debugging.txt
docs/macros.txt
docs/reference/gio/gdbus-codegen.xml
docs/reference/gio/gio-docs.xml
docs/reference/gio/migrating-gconf.xml
docs/reference/gio/overview.xml
docs/reference/glib/changes.xml
docs/reference/glib/glib-docs.xml
docs/reference/glib/glib-sections.txt
docs/reference/glib/gvariant-text.xml
docs/reference/glib/gvariant-varargs.xml
docs/reference/glib/regex-syntax.xml
docs/reference/glib/running.xml
docs/reference/gobject/glib-mkenums.xml
docs/reference/gobject/gobject-docs.xml
docs/reference/gobject/gobject-sections.txt
docs/reference/meson.build
gio/completion/gio
gio/gapplication.c
gio/gasynchelper.c
gio/gcancellable.c
gio/gconverteroutputstream.c
gio/gcredentials.c
gio/gcredentialsprivate.h
gio/gdbus-2.0/codegen/codegen.py
gio/gdbus-2.0/codegen/codegen_main.py
gio/gdbusauthobserver.c
gio/gdbusconnection.c
gio/gdbusconnection.h
gio/gdbusmessage.c
gio/gdbusobjectmanagerclient.c
gio/gdbusprivate.c
gio/gdesktopappinfo.c
gio/gdrive.c
gio/gdrive.h
gio/gdtlsclientconnection.c
gio/gdtlsconnection.c
gio/gfileattribute.c
gio/gfiledescriptorbased.h
gio/gfileenumerator.c
gio/gfileinfo.c
gio/gfileinfo.h
gio/gfilenamecompleter.c
gio/gicon.c
gio/ginetaddress.c
gio/ginetaddress.h
gio/ginetaddressmask.h
gio/ginetsocketaddress.c
gio/ginitable.c
gio/gio-tool-mkdir.c
gio/gio-tool-save.c
gio/gio.h
gio/gioenums.h
gio/giomodule.c
gio/giostream.c
gio/giotypes.h
gio/glistmodel.c
gio/glocalfile.c
gio/glocalfileinfo.c
gio/glocalfileinfo.h
gio/gmarshal-internal.c
gio/gmemorymonitor.c
gio/gmenumodel.c
gio/gmountoperation.c
gio/gnetworkservice.c
gio/gnetworkservice.h
gio/gosxappinfo.m
gio/goutputstream.c
gio/gpollableinputstream.h
gio/gpollableoutputstream.h
gio/gproxyaddress.c
gio/gproxyresolverportal.h
gio/gregistrysettingsbackend.c
gio/gseekable.c
gio/gsocket.c
gio/gsocketservice.h
gio/gsocks5proxy.c
gio/gsrvtarget.h
gio/gsubprocess.c
gio/gtask.c
gio/gtcpwrapperconnection.c
gio/gthreadedresolver.c
gio/gthreadedsocketservice.c
gio/gtlsclientconnection.c
gio/gtlsconnection.c
gio/gtlsdatabase.c
gio/gtrashportal.c
gio/gunionvolumemonitor.c
gio/gunixcredentialsmessage.c
gio/gunixinputstream.c
gio/gunixmounts.c
gio/gunixoutputstream.c
gio/gvdb/gvdb-builder.c
gio/gvdb/gvdb-builder.h
gio/gvdb/gvdb-reader.c
gio/gwin32appinfo.c
gio/gwin32registrykey.c
gio/gwin32registrykey.h
gio/gwin32volumemonitor.c
gio/kqueue/dep-list.c
gio/kqueue/gkqueuefilemonitor.c
gio/kqueue/kqueue-helper.c
gio/meson.build
gio/org.freedesktop.portal.Documents.xml
gio/tests/appinfo-test.c
gio/tests/appinfo.c
gio/tests/async-splice-output-stream.c
gio/tests/cancellable.c
gio/tests/credentials.c
gio/tests/file.c
gio/tests/g-file-info.c
gio/tests/gdbus-addresses.c
gio/tests/gdbus-auth.c
gio/tests/gdbus-connection.c
gio/tests/gdbus-export.c
gio/tests/gdbus-message.c
gio/tests/gdbus-object-manager-example/meson.build
gio/tests/gdbus-peer.c
gio/tests/gdbus-proxy-threads.c
gio/tests/gdbus-proxy.c
gio/tests/gdbus-serialization.c
gio/tests/gdbus-server-auth.c
gio/tests/gdbus-test-codegen.c
gio/tests/gdbus-threading.c
gio/tests/gsocketclient-slow.c
gio/tests/gsubprocess.c
gio/tests/gtlsconsoleinteraction.c
gio/tests/live-g-file.txt
gio/tests/meson.build
gio/tests/pollable.c
gio/tests/proxy-test.c
gio/tests/resourceplugin.c
gio/tests/resources.c
gio/tests/socket-listener.c
gio/tests/socket-service.c
gio/tests/socket.c
gio/tests/test2.gresource.xml
gio/tests/thumbnail-verification.c
gio/tests/tls-certificate.c
gio/tests/trash.c
gio/tests/volumemonitor.c
gio/tests/win32-appinfo.c
gio/thumbnail-verify.c
gio/win32/gwin32fsmonitorutils.c
gio/win32/gwinhttpfile.c
gio/xdgmime/xdgmimeicon.c
gio/xdgmime/xdgmimeparent.c
glib-gettextize.in
glib.supp
glib/deprecated/gmain.h
glib/deprecated/gthread-deprecated.c
glib/garcbox.c
glib/garray.c
glib/gbacktrace.h
glib/gbitlock.c
glib/gbookmarkfile.c
glib/gbookmarkfile.h
glib/gcharset.c
glib/gconstructor.h
glib/gdate.c
glib/gdate.h
glib/gdatetime.c
glib/gen-unicode-tables.pl
glib/genviron.c
glib/gfileutils.c
glib/ggettext.c
glib/ghash.c
glib/giochannel.c
glib/gkeyfile.c
glib/glib-private.c
glib/glibconfig.h.in
glib/gmacros.h
glib/gmain.h
glib/gmem.c
glib/gmem.h
glib/gmessages.c
glib/gnode.c
glib/gnulib/g-gnulib.h
glib/gnulib/isinf.c
glib/gnulib/meson.build
glib/gnulib/printf.c
glib/gnulib/printf.h
glib/goption.c
glib/gprintfint.h
glib/grand.c
glib/grand.h
glib/gregex.c
glib/gscanner.c
glib/gscripttable.h
glib/gshell.c
glib/gslice.c
glib/gspawn-win32-helper.c
glib/gspawn-win32.c
glib/gspawn.c
glib/gspawn.h
glib/gstdio.c
glib/gstdioprivate.h
glib/gstrfuncs.c
glib/gtester-report.in
glib/gtestutils.c
glib/gtestutils.h
glib/gthread-win32.c
glib/gthread.c
glib/gthread.h
glib/gthreadpool.c
glib/gtimezone.c
glib/gtranslit.c
glib/gunibreak.h
glib/gunichartables.h
glib/gunicode.h
glib/gunicomp.h
glib/gunidecomp.c
glib/gunidecomp.h
glib/guniprop.c
glib/gutf8.c
glib/gutils.c
glib/guuid.c
glib/gvariant-core.c
glib/gvariant-core.h
glib/gvariant.c
glib/gvarianttype.c
glib/gvarianttypeinfo.h
glib/gversionmacros.h
glib/gwin32.c
glib/meson.build
glib/tests/1bit-mutex.c
glib/tests/array-test.c
glib/tests/bookmarkfile.c
glib/tests/bookmarks/fail-42.xbel [deleted file]
glib/tests/bytes.c
glib/tests/collate.c
glib/tests/date.c
glib/tests/error.c
glib/tests/fileutils.c
glib/tests/gdatetime.c
glib/tests/hook.c
glib/tests/list.c
glib/tests/markup-escape.c
glib/tests/markup-parse.c
glib/tests/markups/valid-17.expected [new file with mode: 0644]
glib/tests/markups/valid-17.gmarkup [new file with mode: 0644]
glib/tests/meson.build
glib/tests/node.c
glib/tests/once.c
glib/tests/option-argv0.c
glib/tests/pattern.c
glib/tests/refstring.c
glib/tests/regex.c
glib/tests/search-utils.c
glib/tests/sequence.c
glib/tests/slist.c
glib/tests/sort.c
glib/tests/spawn-singlethread.c
glib/tests/test-printf.c
glib/tests/testing.c
glib/tests/tree.c
glib/tests/unicode.c
glib/tests/win32.c
glib/update-pcre/update.sh
glib/valgrind.h
gmodule/gmodule-dl.c
gmodule/gmodule-win32.c
gmodule/gmodule.c
gmodule/gmodule.h
gmodule/meson.build
gobject/gbinding.c
gobject/gboxed.c
gobject/gclosure.c
gobject/gclosure.h
gobject/genums.c
gobject/glib-mkenums.in
gobject/gobject.c
gobject/gobject.h
gobject/gparam.c
gobject/gparam.h
gobject/gparamspecs.h
gobject/gsignal.c
gobject/gsignal.h
gobject/gtype.c
gobject/gtype.h
gobject/gvalue.c
gobject/gvalue.h
gobject/gvaluecollector.h
gobject/gvaluetypes.c
gobject/gvaluetypes.h
gobject/meson.build
gobject/tests/dynamictests.c
gobject/tests/ifaceproperties.c
gobject/tests/meson.build
gobject/tests/mkenums.py
gobject/tests/param.c
gobject/tests/properties.c
gobject/tests/signals.c
gobject/tests/threadtests.c
gobject/tests/value.c
gthread/meson.build
m4macros/glib-2.0.m4
meson.build
meson_options.txt
po/ca.po
po/ca@valencia.po
po/de.po
po/es.po
po/fr.po
po/gl.po
po/hr.po
po/id.po
po/it.po
po/ja.po
po/kk.po
po/lt.po
po/lv.po
po/ms.po
po/nb.po
po/pt.po
po/ro.po
po/sk.po
po/sl.po
po/tr.po
po/zh_TW.po
tests/assert-msg-test.c
tests/casefold.txt
tests/casemap.txt
tests/dirname-test.c
tests/gio-test.c
tests/gobject/performance-threaded.c
tests/gobject/performance.c
tests/gobject/testmodule.c
tests/relation-test.c
tests/testgdate.c
tests/testgdateparser.c
tests/timeloop-basic.c

index 8318ab0..fb0454e 100644 (file)
@@ -10,9 +10,9 @@ cache:
     - _ccache/
 
 variables:
-  FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v8"
+  FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v9"
   DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable:v6"
-  ANDROID_IMAGE: "registry.gitlab.gnome.org/gnome/glib/android-ndk:v2"
+  ANDROID_IMAGE: "registry.gitlab.gnome.org/gnome/glib/android-ndk:v3"
   MINGW_IMAGE: "registry.gitlab.gnome.org/gnome/glib/mingw:v2"
   MESON_TEST_TIMEOUT_MULTIPLIER: 2
   G_MESSAGES_DEBUG: all
@@ -28,6 +28,7 @@ variables:
 .build:
   extends: .only-default
   before_script:
+    - bash .gitlab-ci/show-execution-environment.sh
     - cp -r $HOME/subprojects/* subprojects/
 
 style-check-diff:
@@ -177,8 +178,6 @@ G_DISABLE_ASSERT:
   extends: .build
   image: $FEDORA_IMAGE
   stage: build
-  variables:
-    CPPFLAGS: "-DG_DISABLE_ASSERT"
   script:
     - meson ${MESON_COMMON_OPTIONS}
             --werror
@@ -186,6 +185,7 @@ G_DISABLE_ASSERT:
             -Ddtrace=true
             -Dfam=true
             -Dinstalled_tests=true
+            -Dglib_assert=false
             _build
     - ninja -C _build
     - bash -x ./.gitlab-ci/run-tests.sh
@@ -278,6 +278,7 @@ msys2-mingw32:
     CHERE_INVOKING: "yes"
   script:
     - C:\msys64\usr\bin\pacman --noconfirm -Syyuu --ask 20
+    - C:\msys64\usr\bin\bash .gitlab-ci/show-execution-environment.sh
     - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
   artifacts:
     reports:
@@ -325,6 +326,8 @@ freebsd-11-x86_64:
     LDFLAGS: -L/usr/local/lib -Wl,--disable-new-dtags
     # FreeBSD doesn't have C.UTF-8 locale.
     LANG: en_US.UTF-8
+  before_script:
+    - bash .gitlab-ci/show-execution-environment.sh
   script:
     # We cannot use -Wl,--no-undefined because GLib uses 'environ' variable.
     # FreeBSD iconv doesn't handle transliteration, so we use (external) GNU libiconv here.
@@ -354,6 +357,8 @@ freebsd-12-x86_64:
     CPPFLAGS: -I/usr/local/include
     LDFLAGS: -L/usr/local/lib -Wl,--disable-new-dtags
     LANG: en_US.UTF-8
+  before_script:
+    - bash .gitlab-ci/show-execution-environment.sh
   script:
     - meson ${MESON_COMMON_OPTIONS} -Db_lundef=false -Diconv=external -Dxattr=false _build
     - ninja -C _build
@@ -379,6 +384,7 @@ macos:
   tags:
     - macos
   before_script:
+    - bash .gitlab-ci/show-execution-environment.sh
     - pip3 install --user meson==0.49.2
     - pip3 install --user ninja
     - export PATH=/Users/gitlabrunner/Library/Python/3.7/bin:$PATH
@@ -414,6 +420,8 @@ coverage:
     name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
     paths:
       - _coverage/
+  before_script:
+    - bash .gitlab-ci/show-execution-environment.sh
   script:
     - bash -x ./.gitlab-ci/coverage-docker.sh
   coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
@@ -462,12 +470,12 @@ dist-job:
     - cd _build
     - ninja dist
     - ninja glib-doc gobject-doc gio-doc
-    - tar -c -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html
-    - tar -c -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html
-    - tar -c -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html
+    - tar -c -J -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html
+    - tar -c -J -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html
+    - tar -c -J -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html
   artifacts:
     paths:
-      - "${CI_PROJECT_DIR}/_build/glib-docs.tar.xz"
-      - "${CI_PROJECT_DIR}/_build/gobject-docs.tar.xz"
-      - "${CI_PROJECT_DIR}/_build/gio-docs.tar.xz"
+      - "${CI_PROJECT_DIR}/_build/glib-docs-$CI_COMMIT_TAG.tar.xz"
+      - "${CI_PROJECT_DIR}/_build/gobject-docs-$CI_COMMIT_TAG.tar.xz"
+      - "${CI_PROJECT_DIR}/_build/gio-docs-$CI_COMMIT_TAG.tar.xz"
       - "${CI_PROJECT_DIR}/_build/meson-dist/glib-*.tar.xz"
index 6c12879..f56cbbd 100644 (file)
@@ -15,7 +15,8 @@ GitLab CI jobs run in a Docker image, defined here. To update that image
       registry
     * If you use 2-factor authentication on your GNOME GitLab account, you'll
       need to [create a personal access token][pat] and use that rather than
-      your normal password
+      your normal password — the token should have `read_registry` and
+      `write_registry` permissions
 1. Edit `.gitlab-ci.yml` (in the root of this repository) to use your new
    image
 
index bdbb958..42620cc 100755 (executable)
@@ -90,6 +90,7 @@ endian = 'little'
 c_args = ['-I${prefix_path}/include']
 c_link_args = ['-L${prefix_path}/lib64',
                '-fuse-ld=gold']
+growing_stack = true
 
 [binaries]
 c = '${toolchain_path}/bin/${CC}'
diff --git a/.gitlab-ci/cross_file_ios_example.txt b/.gitlab-ci/cross_file_ios_example.txt
new file mode 100644 (file)
index 0000000..0afeef0
--- /dev/null
@@ -0,0 +1,25 @@
+[host_machine]
+system = 'darwin'
+cpu_family = 'aarch64'
+cpu = 'arm64'
+endian = 'little'
+
+[properties]
+c_args = ['-arch', 'arm64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk', '-miphoneos-version-min=11.0']
+cpp_args = ['-stdlib=libc++', '-arch', 'arm64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk', '-miphoneos-version-min=11.0']
+objc_args = ['-arch', 'arm64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk', '-miphoneos-version-min=11.0']
+objcpp_args = ['-stdlib=libc++', '-arch', 'arm64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk', '-miphoneos-version-min=11.0']
+c_link_args = ['-arch', 'arm64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk', '-Wl,-iphoneos_version_min,11.0']
+cpp_link_args = ['-arch', 'arm64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk', '-Wl,-iphoneos_version_min,11.0']
+objc_link_args = ['-arch', 'arm64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk', '-Wl,-iphoneos_version_min,11.0']
+objcpp_link_args = ['-arch', 'arm64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk', '-Wl,-iphoneos_version_min,11.0']
+growing_stack = true
+
+
+[binaries]
+c = ['clang']
+cpp = ['clang++']
+objc = ['clang']
+objcpp = ['clang++']
+ar = ['ar']
+strip = ['strip']
index 5c509fd..39553e2 100644 (file)
@@ -1,4 +1,4 @@
-FROM fedora:30
+FROM fedora:31
 
 RUN dnf -y update \
  && dnf -y install \
@@ -45,6 +45,7 @@ RUN dnf -y update \
     ninja-build \
     pcre-devel \
     "python3-dbusmock >= 0.18.3-2" \
+    python3-pip \
     python3-pygments \
     python3-wheel \
     shared-mime-info \
index 0df0727..90939ff 100755 (executable)
@@ -47,7 +47,11 @@ suites = {}
 for line in args.infile:
     data = json.loads(line)
     (full_suite, unit_name) = data['name'].split(' / ')
-    (project_name, suite_name) = full_suite.split(':')
+    try:
+        (project_name, suite_name) = full_suite.split(':')
+    except ValueError:
+        project_name = full_suite
+        suite_name = full_suite
 
     duration = data['duration']
     return_code = data['returncode']
index 97a2ff7..8af1027 100755 (executable)
@@ -2,8 +2,9 @@
 
 set -e
 
-# We need to add a new remote for the upstream master, since this script could
-# be running in a personal fork of the repository which has out of date branches.
+# We need to add a new remote for the upstream target branch, since this script
+# could be running in a personal fork of the repository which has out of date
+# branches.
 git remote add upstream https://gitlab.gnome.org/GNOME/glib.git
 git fetch upstream
 
index 534698d..1f7b8c1 100755 (executable)
@@ -5,8 +5,9 @@ set -e
 # Wrap everything in a subshell so we can propagate the exit status.
 (
 
-# We need to add a new remote for the upstream master, since this script could
-# be running in a personal fork of the repository which has out of date branches.
+# We need to add a new remote for the upstream target branch, since this script
+# could be running in a personal fork of the repository which has out of date
+# branches.
 git remote add upstream https://gitlab.gnome.org/GNOME/glib.git
 git fetch upstream
 
diff --git a/.gitlab-ci/show-execution-environment.sh b/.gitlab-ci/show-execution-environment.sh
new file mode 100755 (executable)
index 0000000..0c22651
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+set -eux -o pipefail
+
+id || :
+capsh --print || :
+env -0 | sort -z | perl -pe 's/\0/\n/g' || :
+setpriv --dump || :
+ulimit -a || :
+cat /proc/self/status || :
+cat /proc/self/mountinfo || :
diff --git a/NEWS b/NEWS
index b74a492..7848076 100644 (file)
--- a/NEWS
+++ b/NEWS
-Overview of changes in GLib 2.64.6
+Overview of changes in GLib 2.65.0
 ==================================
 
-* This is expected to be the last release in the 2.64 series; the new stable
-  series is 2.66, and maintenance efforts will shift to that
+* Fix memory monitor tests to only be installed if installed-tests are enabled,
+  and to be skipped if GObject-Introspection is too old (!1407)
 
-* Bugs fixed:
- - #2194 gtk3/glib crash on gimp
- - #2209 gthreadedresolver: faulty logic in parse_res_txt
- - !1633 Backport !1632 Fix large writes in gfileutils to glib-2-64
- - !1634 Backport !1631 “Fix splice behavior on cancellation” to glib-2-64
- - !1656 Backport !1187 “Define G_MSVC_SYMBOL_PREFIX correctly for ARM32” to glib-2-64
- - !1659 Backport !1652 “trash portal: Handle portal failures” to glib-2-64
- - !1666 Backport !1665 “Fix g_module_symbol() under Windows sometimes not succeeding” to glib-2-64
- - !1672 Backport !1671 “gdatetime: Avoid integer overflow creating dates too far in the past” to glib-2-64
+* Stability improvements for various unit tests
 
-* Translation updates:
- - Croatian
- - Portuguese
+* D-Bus credentials support on macOS (#507)
 
+* MSVC support for the files generated by `glib-compile-resource` and `gdbus-codegen` (#1215, !1452)
 
-Overview of changes in GLib 2.64.5
-==================================
+* Year 2038 fixes involving new API in `GBookmarkFile` (#1931)
 
-* Fix deadlock in `g_subprocess_communicate_async()` (work by Alexander Larsson) (#2182)
+* SOCKS5 proxy authentication fixes (#1986, #1988)
 
-* Fix cross-compilation on iOS (work by Nirbheek Chauhan) (#1868)
+* Support for more than `MAXIMUM_WAIT_OBJECTS` FDs for `g_poll()` on Windows (#2107)
 
-* Bugs fixed:
- - !1519 Backport !1468 “glib-compile-resources: Fix exporting on Visual Studio” to glib-2-64
- - !1520 Backport !1517 “GWin32RegistryKey: Move assertions” to glib-2-64
- - !1565 Backport !1563 “gdesktopappinfo: Fix unnecessarily copied and leaked URI list” to glib-2-64
- - !1608 Backport !1607 “meson: Don't use gnulib for printf on iOS” to glib-2-64
- - !1618 Backport !1617 “Ensure g_subprocess_communicate_async() never blocks” to glib-2-64
- - !1621 Backport !1620 “gvariant: Ensure GVS.depth is initialised” to glib-2-64
+* Add `g_assert_no_errno()` test macro for testing POSIX-style functions (!1204)
 
+* Update Unicode Character Database to version 13.0.0 (!1422)
 
-Overview of changes in GLib 2.64.4
-==================================
-
-* Bugs fixed:
- - #2140 calling malloc in fork child is undefined-behaviour
- - !1507 Backport !1504 “win32 gpoll: Fix wait for at least one thread to return” to glib-2-64
- - !1523 Backport !1522 “meson: Fix gnulib printf checks” to glib-2-64
- - !1547 Backport !1544 “Resolve "calling malloc in fork child is undefined-behaviour"” to glib-2-64
-
-* Translation updates:
- - Kazakh
- - Slovenian
-
-
-Overview of changes in GLib 2.64.3
-==================================
-
-* Stability improvements for various unit tests
+* Support storing interned strings in `GValue`s efficiently, via `g_value_set_interned_string()` (#2109)
 
 * Bugs fixed:
+ - #2 g_filename_from_utf8() should normalize?
+ - #176 the behaviour of constructors for GLib data types is not specified if memory allocation fails
+ - #480 /gdbus/connection/signals test intermittently fails: assertion failed (count_name_owner_changed == 2): (1 == 2)
+ - #507 GDBus credentials don’t work on OS X
+ - #602 GLib.Thread not usable from GObject-Introspection
+ - #1154 Missing documentation how to set a value in a GArray
+ - #1215 MSVC cannot build glib-compile-resource's output resource file
+ - #1323 meson, autotools: figure out if mem barrier is needed for arm64 host variant aarch64
+ - #1398 gdate: Add error handling for GetDateFormatW calls
+ - #1841 Signal handler disconnection race when finalising GCancellableSource
+ - #1851 Meson Build Failure on Windows: Undefined Reference to libiconv
+ - #1911 Memory leak in g_param_spec_flags and/or g_param_spec_enum
+ - #1931 GBookmarkFile API involves time_t
  - #1954 gdbus-server-auth intermittent failure
+ - #1957 gdbus-connection test failure on FreeBSD
+ - #1986 Socks5 Proxy: Authentication seems broken
+ - #1988 Socks5 Proxy: Wrong error returned when using no authentication
+ - #2038 Bindings: g_tls_connection_set_database() does not allow None as argument
+ - #2051 GUnixOutputStream can block on close()
+ - #2057 Call malloc_trim() under memory pressure
+ - #2067 Glib uses _Static_assert in C++17 mode
+ - #2081 gdbus error messages contains mixed up body and head signatures
+ - #2082 AM/PM - specific variation support needed to Hebrew language
+ - #2083 Memory monitor tests fail if dbusmock isn't installed
+ - #2092 FreeBSD CI timing out in gdbus-connection filter test
  - #2094 Deprecation warnings when compiling with -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_28 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_28
- - !1470 Backport !1440 -Wformat-nonliteral fixes to glib-2-64
- - !1471 Backport !1448 memory monitor test dependency fixes to glib-2-64
- - !1473 CI: Switch to new Windows runners (2.64)
- - !1478 Backport !1477 D-Bus keyring handling fixes to glib-2-64
- - !1483 Backport !1481 “array: fix corrupt state of GPtrArray after g_ptr_array_extend_and_steal()” to glib-2-64
- - !1484 Backport !1480 “CI: Make sure we use meson 0.49.2 in MSYS2” to glib-2-64
- - !1486 Backport !1472 “gthread: ignore deprecated declarations in static inline functions” to glib-2-64
- - !1495 Backport !1493 “meson: Remove stray ], in O_DIRECTORY check” to glib-2-64
- - !1501 Backport !1439 “Fix stpcpy() detection“ to glib-2-64
+ - #2106 Duplicated if - else if conditions in gtranslit.c
+ - #2107 g_poll() implementation on Windows stall when more than MAXIMUM_WAIT_OBJECTS FDs have passed
+ - #2109 GValue: Add support for interned string
+ - #2124 g_file_info_get_content_type() may return NULL
+ - #2132 Valgrind reports "still reachable" after g_thread_pool_new/free
+ - #2134 Valgrind reports "still reachable" after `g_uuid_string_random()`.
+ - #2135 Valgrind reports "still reachable" after g_key_file_new/free
+ - #2136 Valgrind reports "still reachable" after g_option_context_parse
+ - !1204 gtestutils: Add a new g_assert_no_errno() test macro
+ - !1302 gobject: new g_param_is_valid_property_name() function.
+ - !1329 Support nanoseconds in stat timestamps on Windows
+ - !1341 MUI capabilities for GWin32RegistryKey
+ - !1360 CI: Show execution environment before we start
+ - !1395 tests: Move memory_monitor_tests under installed_tests_enabled
+ - !1396 macros: Define G_GNUC_FALLTHROUGH for more compilers
+ - !1397 tests: Skip MemoryMonitor test if GObject-Introspection is too old
+ - !1398 gcontenttype: Fix crash in _get_generic_icon_name()
+ - !1402 ci: Update Android Docker image for aarch64 CPU naming change
+ - !1405 tests: Disable link-time warning for mem-overflow
+ - !1406 Replace fallthrough comments with G_GNUC_FALLTHROUGH
+ - !1408 tests: Don't compare strings by pointer
+ - !1409 gdummytlsconnection: Add missing overrides for ALPN properties
+ - !1413 gapplication: Fix a minor typo in the documentation
+ - !1414 gstrutils: Set locale explicitly for search-utils test
+ - !1415 meson: Don't use assert in test code
+ - !1418 ginetaddress, ginetsocketaddress: Add missing (nullable) annotations
+ - !1422 glib: Update Unicode Character Database to version 13.0.0
+ - !1423 gobject: Clarify assertion failure on ref-after-finalize
+ - !1424 docs: Fix configuration with gtk_doc=true and installed_tests=false
+ - !1425 gdbusconnection: GDBusSignalCallback can have a NULL sender_name
+ - !1426 gunidecomp: Update and reformat Unicode version support history
+ - !1427 gicon: Clarify GVariant refcounting in docs
+ - !1428 Add missing 'extern' to the dllexport version of GLIB_VAR/GOBJECT_VAR
+ - !1429 Fix arch detection ifdefs in glib/valgrind.h
+ - !1430 Use __builtin_trap() on Clang on any platform
+ - !1431 glib-unix.c: fix heap corruption in g_unix_get_passwd_entry
+ - !1432 docs: Mention new gio tool options
+ - !1433 meson: Fix buildtype usage
+ - !1434 gdbusconnection: Clarify nullability of SignalInstance.sender
+ - !1436 glib: Update internal copy of valgrind.h from Valgrind 3.15 release
+ - !1437 gmarkup tests: tab character escape/unescape
+ - !1439 Don't misdetect stpcpy on windows platforms on clang
+ - !1440 Silence clang errors about -Wformat-nonliteral due to missing intermediate attributes
+ - !1441 Meson: Override every dependency glib provides
+ - !1442 gfile: Fallback to fast-content-type if content-type is not set
+ - !1443 gio: use TAPTestRunner in the memory monitor tests
+ - !1444 Meson: Add glib-checks and glib-asserts options
+ - !1452 Make symbols generated by gdbus-codegen exportable on Visual Studio-style builds
+ - !1455 gdesktopappinfo: Note that search results are not filtered
+ - !1456 GCredentials documentation fixes
+ - !1458 meson: Exclude gosxutils.m when building for iOS
+ - !1459 meson: Fix the gnulib checks for isnan* functions
+ - !1460 glib: Sync the local modification to glib/valgrind.h to what was upstreamed
+ - !1462 gvariant-core: Add a note about memory safety of children
+ - !1463 gdesktopappinfo: Add several nullable annotation to GAppInfo getters
+ - !1464 Update Fedora CI
+ - !1466 CI: Switch to new Windows runners
+ - !1469 goption: Treat an empty option context parameter string as NULL
+ - !1475 Improve documentation of g_tls_database_verify_chain()
+ - !1476 tests: Fix remaining race in gdbus-connection filter test
+ - !1479 Improve documentation of client connection validation flags
+ - !1480 CI: Make sure we use meson 0.49.2 in MSYS2
+ - !1481 array: fix corrupt state of GPtrArray after g_ptr_array_extend_and_steal()
+ - !1482 [th/g-ptr-array-variable-cleanups] minor cleanup of variables for GPtrArray
+ - !1487 glib: annotate static inline functions with G_AVAILABLE-type macros
+ - !1488 Rebuild Fedora CI image
+ - !1491 gdatetime: update annotations
+ - !1492 glib-mkenums: allow optional 'since' tag
+ - !1493 meson: Remove stray ] in O_DIRECTORY check
+ - !1496 Fix GLIB_UNAVAILABLE_STATIC_INLINE declaration
+ - !1498 array: add internal ptr_array_new() helper for creating GPtrArray
+ - !1503 docs: Add indexes for symbols added in 2.66
+ - !1505 gobject: Handle runtime checks as such
+ - !1506 tests: Speed up the cancellable test
+ - !1508 tests: Speed up the file test and make it more reliable
+ - !1512 Various fixes when building for iOS
+ - !1513 Initialize the visited time of a new GBookmarkFile
+ - !1515 meson: check for stpcpy using cc.links()
+ - !1516 gthreadedsocketservice: Mark source_object of run signal as nullable
+ - !1517 GWin32RegistryKey: Move assertions
+ - !1518 strfuncs: Use a GPtrArray in strsplit()
+ - !1522 meson: Fix gnulib printf checks
+ - !1524 meson: Fix gnulib build where isnan*() is needed
+ - !1525 Normalize C source files to end with exactly one newline
+ - !1528 gtlsconnection: Improve documentation of peer-certificate[-errors]
+ - !1530 tree: Fix various typos and outdated terminology
+ - !1531 gvariant: Fix documentation for g_variant_get_string() to match reality
+ - !1532 win32: spelling fix
+ - !1535 glib.supp improvements
 
 * Translation updates:
+ - Bokmål, Norwegian
+ - Catalan
+ - Catalan (Valencia)
  - Chinese (Taiwan)
+ - Dutch
+ - French
+ - Galician
  - German
-
-
-Overview of changes in GLib 2.64.2
-==================================
-
-* Bugs fixed:
- - #2067 Glib uses _Static_assert in C++17 mode
- - #2081 gdbus error messages contains mixed up body and head signatures
- - !1421 Backport !1420 “gmacros.h: avoid using _Static_assert in C++17 mode” to glib-2-64
- - !1438 Backport various patches to glib-2-64
-  - !1424 docs: Fix configuration with gtk_doc=true and installed_tests=false
-  - !1428 Add missing 'extern' to the dllexport version of GLIB_VAR/GOBJECT_VAR
-  - !1429 Fix arch detection ifdefs in glib/valgrind.h
-  - !1431 glib-unix.c: fix heap corruption in g_unix_get_passwd_entry
-  - !1432 docs: Mention new gio tool options
-  - !1435 gdbusmessage: Fix swapped signatures in error messages
- - !1447 Backport !1442 “gfile: Fallback to fast-content-type if content-type is not set” to glib-2-64
-
-* Translation updates:
  - Hebrew
- - Romanian
- - Ukrainian
-
-
-Overview of changes in GLib 2.64.1
-==================================
-
-* Fix memory monitor tests to only be installed if installed-tests are enabled,
-  and to be skipped if GObject-Introspection is too old (!1407)
-
-* Bugs fixed:
- - #1986 Socks5 Proxy: Authentication seems broken
- - #1988 Socks5 Proxy: Wrong error returned when using no authentication
- - !1407 Backport various patches from master to glib-2-64
- - !1412 Backport SOCKS5 fixes to glib-2-64
-
-* Translation updates:
- - Dutch
+ - Indonesian
  - Italian
+ - Japanese
+ - Latvian
+ - Lithuanian
+ - Malay
+ - Romanian
  - Serbian
+ - Slovak
+ - Slovenian
+ - Spanish
+ - Turkish
+ - Ukrainian
 
 
 Overview of changes in GLib 2.64.0
index 6cdd66c..4bc4113 100644 (file)
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@ In the bug report please include:
   As a last resort, you can also provide a pointer to a larger piece
   of software that can be downloaded.
 * If the bug was a crash, the exact text that was printed out
-  when the crash occured.
+  when the crash occurred.
 * Further information such as stack traces may be useful, but
   is not necessary.
 
index 8bd6e31..2cc600a 100644 (file)
@@ -1,6 +1,6 @@
 
-Traps (G_BREAKPOINT) and traces for the debuging
-================================================
+Traps (G_BREAKPOINT) and traces for the debugging
+=================================================
 
 Some code portions contain trap variables that can be set during
 debugging time if G_ENABLE_DEBUG has been defined upon compilation
index c462de5..aa326a4 100644 (file)
@@ -5,9 +5,10 @@ GLib's configure options and corresponding macros
        none
 --buildtype={debug,debugoptimized}     [debugoptimized is the default]
        -DG_ENABLE_DEBUG -g
-
-Available to define yourself:
-       -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS
+-Dglib_asserts=false
+       -DG_DISABLE_ASSERT
+-Dglib_checks=false
+       -DG_DISABLE_CHECKS
 
 Besides these, there are some local feature specific options, but my main
 focus here is to concentrate on macros that affect overall GLib behaviour
index 9687681..25210c3 100644 (file)
@@ -41,6 +41,9 @@
     <arg><option>--body</option></arg>
     <arg><option>--interface-info-header</option></arg>
     <arg><option>--interface-info-body</option></arg>
+    <arg><option>--symbol-decorator</option> <replaceable>DECORATOR</replaceable></arg>
+    <arg><option>--symbol-decorator-header</option> <replaceable>HEADER</replaceable></arg>
+    <arg><option>--symbol-decorator-define</option> <replaceable>DEFINE</replaceable></arg>
     <arg><option>--output</option> <replaceable>OUTFILE</replaceable></arg>
     <group choice="plain" rep="repeat">
       <arg>
     </varlistentry>
 
     <varlistentry>
+      <term><option>--symbol-decorator</option> <replaceable>DECORATOR</replaceable></term>
+      <listitem>
+        <para>
+          If a <literal>DECORATOR</literal> is passed in with this option, all the
+          generated function prototypes in the generated header will be marked with
+          <literal>DECORATOR</literal>. This can be used, for instance, to export
+          symbols from code generated with <command>gdbus-codegen</command>.
+          This option is added in GLib-2.66
+        </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term><option>--symbol-decorator-header</option> <replaceable>HEADER</replaceable></term>
+      <listitem>
+        <para>
+          If a <literal>HEADER</literal> is passed in with this option, the
+          generated header will put a <literal>#include HEADER</literal> before the rest of the
+          items, except for the inclusion guards or <literal>#pragma once</literal>
+          (if <option>--pragma-once</option> is used).  This is used if using another header file is
+          needed for the decorator passed in via <option>--symbol-decorator</option> to be defined.
+          This option is added in GLib-2.66.
+        </para>
+        <para>
+          This option can only be used if <option>--symbol-decorator</option> is used.
+        </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term><option>--symbol-decorator-define</option> <replaceable>DEFINE</replaceable></term>
+      <listitem>
+        <para>
+          If a <literal>DEFINE</literal> is passed in with this option, the
+          generated source will add a <literal>#define DEFINE</literal> before the rest of the
+          items.  This is used if a particular macro is needed to ensure the decorator
+          passed in via <option>--symbol-decorator</option> uses the correct definition when the
+          generated source is being compiled. This option is added in GLib-2.66.
+        </para>
+        <para>
+          This option can only be used if <option>--symbol-decorator</option> is used.
+        </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
       <term><option>--output</option> <replaceable>OUTFILE</replaceable></term>
       <listitem>
         <para>
@@ -903,7 +952,7 @@ my_app_frobber_proxy_new_sync   (GDBusConnection     *connection,
       the <function>net.Corp.MyApp.Frobber.HelloWorld()</function>
       D-Bus method, connect to the
       <function>::notification</function> GObject signal to receive
-      the <function>net.Corp.MyApp.Frobber::Notication</function>
+      the <function>net.Corp.MyApp.Frobber::Notification</function>
       D-Bus signal and get/set the
       <parameter>net.Corp.MyApp.Frobber:Verbose</parameter> D-Bus
       Property using either the GObject property
index 5694729..565c20c 100644 (file)
       <xi:include href="xml/gnetworking.xml"/>
     </chapter>
     <chapter id="highlevel-socket">
-      <title>High-level network functionallity</title>
+      <title>High-level network functionality</title>
       <xi:include href="xml/gsocketclient.xml"/>
       <xi:include href="xml/gsocketconnection.xml"/>
       <xi:include href="xml/gunixconnection.xml"/>
     <title>Index of new symbols in 2.64</title>
     <xi:include href="xml/api-index-2.64.xml"><xi:fallback /></xi:include>
   </index>
+  <index id="api-index-2-66" role="2.66">
+    <title>Index of new symbols in 2.66</title>
+    <xi:include href="xml/api-index-2.66.xml"><xi:fallback /></xi:include>
+  </index>
 
   <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
 
index 12176a6..d9fd064 100644 (file)
         have a GConf schema. GConf comes with a commandline tool
         gsettings-schema-convert that can help with the task of converting
         a GConf schema into an equivalent GSettings schema. The tool is not
-        perfect and may need assistence in some cases.
+        perfect and may need assistance in some cases.
       </para>
       <example><title>An example for using gsettings-schema-convert</title>
         <para>Running <userinput>gsettings-schema-convert --gconf --xml --schema-id "org.gnome.font-rendering" --output org.gnome.font-rendering.gschema.xml destop_gnome_font_rendering.schemas</userinput> on the following <filename>desktop_gnome_font_rendering.schemas</filename> file:
index 9d01326..7817ab6 100644 (file)
@@ -281,7 +281,7 @@ be careful. GIO has extension points whose implementations get loaded
 from modules (executable code in shared objects), which could allow
 an attacker to sneak his own code into your application by tricking it
 into loading the code as a module. However, GIO will never load modules
-from your home directory except when explictly asked to do so via an
+from your home directory except when explicitly asked to do so via an
 environment variable.
 </para>
 
index 24d6bcd..9b4aa74 100644 (file)
@@ -12,7 +12,7 @@
 <refnamediv>
 <refname>Changes to GLib</refname>
 <refpurpose>
-Incompatible changes made between successing versions of GLib
+Incompatible changes made between successive versions of GLib
 </refpurpose>
 </refnamediv>
 
index 186543f..3ed1256 100644 (file)
     <title>Index of new symbols in 2.64</title>
     <xi:include href="xml/api-index-2.64.xml"><xi:fallback /></xi:include>
   </index>
+  <index id="api-index-2-66" role="2.66">
+    <title>Index of new symbols in 2.66</title>
+    <xi:include href="xml/api-index-2.66.xml"><xi:fallback /></xi:include>
+  </index>
 
   <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
 
index 63f40ba..eed38b7 100644 (file)
@@ -136,6 +136,7 @@ GLIB_VERSION_2_58
 GLIB_VERSION_2_60
 GLIB_VERSION_2_62
 GLIB_VERSION_2_64
+GLIB_VERSION_2_66
 GLIB_VERSION_MIN_REQUIRED
 GLIB_VERSION_MAX_ALLOWED
 GLIB_DISABLE_DEPRECATION_WARNINGS
@@ -162,6 +163,7 @@ GLIB_AVAILABLE_ENUMERATOR_IN_2_58
 GLIB_AVAILABLE_ENUMERATOR_IN_2_60
 GLIB_AVAILABLE_ENUMERATOR_IN_2_62
 GLIB_AVAILABLE_ENUMERATOR_IN_2_64
+GLIB_AVAILABLE_ENUMERATOR_IN_2_66
 GLIB_AVAILABLE_IN_ALL
 GLIB_AVAILABLE_IN_2_26
 GLIB_AVAILABLE_IN_2_28
@@ -183,6 +185,7 @@ GLIB_AVAILABLE_IN_2_58
 GLIB_AVAILABLE_IN_2_60
 GLIB_AVAILABLE_IN_2_62
 GLIB_AVAILABLE_IN_2_64
+GLIB_AVAILABLE_IN_2_66
 GLIB_AVAILABLE_MACRO_IN_2_26
 GLIB_AVAILABLE_MACRO_IN_2_28
 GLIB_AVAILABLE_MACRO_IN_2_30
@@ -203,6 +206,12 @@ GLIB_AVAILABLE_MACRO_IN_2_58
 GLIB_AVAILABLE_MACRO_IN_2_60
 GLIB_AVAILABLE_MACRO_IN_2_62
 GLIB_AVAILABLE_MACRO_IN_2_64
+GLIB_AVAILABLE_MACRO_IN_2_66
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_60
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_66
 GLIB_AVAILABLE_TYPE_IN_2_26
 GLIB_AVAILABLE_TYPE_IN_2_28
 GLIB_AVAILABLE_TYPE_IN_2_30
@@ -223,6 +232,7 @@ GLIB_AVAILABLE_TYPE_IN_2_58
 GLIB_AVAILABLE_TYPE_IN_2_60
 GLIB_AVAILABLE_TYPE_IN_2_62
 GLIB_AVAILABLE_TYPE_IN_2_64
+GLIB_AVAILABLE_TYPE_IN_2_66
 GLIB_DEPRECATED_ENUMERATOR
 GLIB_DEPRECATED_ENUMERATOR_FOR
 GLIB_DEPRECATED_ENUMERATOR_IN_2_26
@@ -265,6 +275,8 @@ GLIB_DEPRECATED_ENUMERATOR_IN_2_62
 GLIB_DEPRECATED_ENUMERATOR_IN_2_62_FOR
 GLIB_DEPRECATED_ENUMERATOR_IN_2_64
 GLIB_DEPRECATED_ENUMERATOR_IN_2_64_FOR
+GLIB_DEPRECATED_ENUMERATOR_IN_2_66
+GLIB_DEPRECATED_ENUMERATOR_IN_2_66_FOR
 GLIB_DEPRECATED_IN_2_26
 GLIB_DEPRECATED_IN_2_26_FOR
 GLIB_DEPRECATED_IN_2_28
@@ -305,6 +317,8 @@ GLIB_DEPRECATED_IN_2_62
 GLIB_DEPRECATED_IN_2_62_FOR
 GLIB_DEPRECATED_IN_2_64
 GLIB_DEPRECATED_IN_2_64_FOR
+GLIB_DEPRECATED_IN_2_66
+GLIB_DEPRECATED_IN_2_66_FOR
 GLIB_DEPRECATED_MACRO
 GLIB_DEPRECATED_MACRO_FOR
 GLIB_DEPRECATED_MACRO_IN_2_26
@@ -347,6 +361,8 @@ GLIB_DEPRECATED_MACRO_IN_2_62
 GLIB_DEPRECATED_MACRO_IN_2_62_FOR
 GLIB_DEPRECATED_MACRO_IN_2_64
 GLIB_DEPRECATED_MACRO_IN_2_64_FOR
+GLIB_DEPRECATED_MACRO_IN_2_66
+GLIB_DEPRECATED_MACRO_IN_2_66_FOR
 GLIB_DEPRECATED_TYPE
 GLIB_DEPRECATED_TYPE_FOR
 GLIB_DEPRECATED_TYPE_IN_2_26
@@ -389,6 +405,8 @@ GLIB_DEPRECATED_TYPE_IN_2_62
 GLIB_DEPRECATED_TYPE_IN_2_62_FOR
 GLIB_DEPRECATED_TYPE_IN_2_64
 GLIB_DEPRECATED_TYPE_IN_2_64_FOR
+GLIB_DEPRECATED_TYPE_IN_2_66
+GLIB_DEPRECATED_TYPE_IN_2_66_FOR
 GLIB_VERSION_CUR_STABLE
 GLIB_VERSION_PREV_STABLE
 </SECTION>
@@ -693,6 +711,7 @@ GLIB_DEPRECATED_FOR
 GLIB_UNAVAILABLE
 GLIB_UNAVAILABLE_ENUMERATOR
 GLIB_UNAVAILABLE_MACRO
+GLIB_UNAVAILABLE_STATIC_INLINE
 GLIB_UNAVAILABLE_TYPE
 G_ANALYZER_ANALYZING
 G_ANALYZER_NORETURN
@@ -2350,11 +2369,15 @@ g_bookmark_file_get_mime_type
 g_bookmark_file_get_is_private
 g_bookmark_file_get_icon
 g_bookmark_file_get_added
+g_bookmark_file_get_added_date_time
 g_bookmark_file_get_modified
+g_bookmark_file_get_modified_date_time
 g_bookmark_file_get_visited
+g_bookmark_file_get_visited_date_time
 g_bookmark_file_get_groups
 g_bookmark_file_get_applications
 g_bookmark_file_get_app_info
+g_bookmark_file_get_application_info
 
 <SUBSECTION>
 g_bookmark_file_set_title
@@ -2363,10 +2386,14 @@ g_bookmark_file_set_mime_type
 g_bookmark_file_set_is_private
 g_bookmark_file_set_icon
 g_bookmark_file_set_added
+g_bookmark_file_set_added_date_time
 g_bookmark_file_set_groups
 g_bookmark_file_set_modified
+g_bookmark_file_set_modified_date_time
 g_bookmark_file_set_visited
+g_bookmark_file_set_visited_date_time
 g_bookmark_file_set_app_info
+g_bookmark_file_set_application_info
 g_bookmark_file_add_group
 g_bookmark_file_add_application
 g_bookmark_file_remove_group
@@ -3446,6 +3473,7 @@ g_assert_true
 g_assert_false
 g_assert_null
 g_assert_nonnull
+g_assert_no_errno
 g_test_set_nonfatal_assertions
 
 GTestCase
index 7a61c19..55d476e 100644 (file)
    </para>
    <para>
     Unicode escapes of the form <literal>\uxxxx</literal> and <literal>\Uxxxxxxxx</literal> are supported, in
-    hexidecimal.  The usual control sequence escapes <literal>\a</literal>, <literal>\b</literal>,
+    hexadecimal.  The usual control sequence escapes <literal>\a</literal>, <literal>\b</literal>,
     <literal>\f</literal>, <literal>\n</literal>, <literal>\r</literal>, <literal>\t</literal> and
     <literal>\v</literal> are supported.  Additionally, a <literal>\</literal> before a newline character causes
     the newline to be ignored.  Finally, any other character following <literal>\</literal> is copied literally
     additions you should only use this feature when necessary for escaping backslashes or quotes.
    </para>
    <para>
-    The usual octal and hexidecimal escapes <literal>\0nnn</literal> and <literal>\xnn</literal> are not
+    The usual octal and hexadecimal escapes <literal>\0nnn</literal> and <literal>\xnn</literal> are not
     supported here.  Those escapes are used to encode byte values and GVariant strings are Unicode.
    </para>
    <para>
    <para>
     Numbers are given by default as decimal values.  Octal and hex values can be given in the usual way (by
     prefixing with <literal>0</literal> or <literal>0x</literal>).  Note that GVariant considers bytes to be
-    unsigned integers and will print them as a two digit hexidecimal number by default.
+    unsigned integers and will print them as a two digit hexadecimal number by default.
    </para>
    <para>
-    Floating point numbers can also be given in the usual ways, including scientific and hexidecimal notations.
+    Floating point numbers can also be given in the usual ways, including scientific and hexadecimal notations.
    </para>
    <para>
     For lack of additional information, integers will be parsed as int32 values by default.  If the number has a
    <para>
     Bytestrings support the full range of escapes that you would expect (ie: those supported by
     <link linkend='g-strcompress'><function>g_strcompress()</function></link>.  This includes the normal control
-    sequence escapes (as mentioned in the section on strings) as well as octal and hexidecimal escapes of the
+    sequence escapes (as mentioned in the section on strings) as well as octal and hexadecimal escapes of the
     forms <literal>\0nnn</literal> and <literal>\xnn</literal>.
    </para>
    <para>
index b60ab2a..8529a28 100644 (file)
@@ -690,7 +690,7 @@ g_variant_unref (value);]]></programlisting></informalexample>
     <link linkend='g-variant-get'><function>g_variant_get()</function></link> returns (by reference) a
     non-<link linkend='NULL:CAPS'><literal>NULL</literal></link> pointer.  When any of these format strings are
     prefixed with an '<literal>m</literal>', the type of arguments that are collected does not change in any way, but
-    <link linkend='NULL:CAPS'><literal>NULL</literal></link> becomes a permissable value, to indicate the Nothing case.
+    <link linkend='NULL:CAPS'><literal>NULL</literal></link> becomes a permissible value, to indicate the Nothing case.
    </para>
    <para>
     Note that the "special exception" introduced in the array section for constructing empty arrays is ignored
index 4cff179..5dd9291 100644 (file)
@@ -2313,7 +2313,7 @@ refer to them instead of the whole pattern. In a larger pattern, keeping
 track of parenthesis numbers can be tricky. It may be more convenient to
 use named parentheses instead.
 The Perl syntax for this is (?&amp;name); GRegex also supports the(?P>name)
-syntac. We could rewrite the above example as follows:
+syntax. We could rewrite the above example as follows:
 </para>
 
 <programlisting>
index 989f5b4..aaafddf 100644 (file)
@@ -311,7 +311,7 @@ How to run and debug your GLib application
     <ulink url="https://docs.microsoft.com/en-us/windows/desktop/debug/vectored-exception-handling">Vectored Exception Handling</ulink>
     on Windows (see <link linkend="G_DEBUGGER"><envar>G_DEBUGGER</envar></link>), allowing GLib to catch more
     exceptions. Set this variable to a comma-separated list of
-    hexademical exception codes that should additionally be caught.
+    hexadecimal exception codes that should additionally be caught.
   </para>
   <para>
     By default GLib will only catch Access Violation, Stack Overflow and
index 9dac821..2200328 100644 (file)
@@ -172,25 +172,62 @@ in your templates, to improve the reproducibility of the build. (Since: 2.22)
 Some C comments are treated specially in the parsed enum definitions,
 such comments start out with the trigraph sequence <literal>/*&lt;</literal>
 and end with the trigraph sequence <literal>&gt;*/</literal>.
-Per enum definition, the options <literal>skip</literal> and <literal>flags</literal> can be specified, to
-indicate this enum definition to be skipped, or for it to be treated as
-a flags definition, or to specify the common prefix to be stripped from
-all values to generate value nicknames, respectively. The <literal>underscore_name</literal>
-option can be used to specify the word separation used in the <function>*_get_type()</function>
-function. For instance, <literal>/*&lt; underscore_name=gnome_vfs_uri_hide_options &gt;*/</literal>.
-</para>
-<para>
-Per value definition, the options <literal>skip</literal> and <literal>nick</literal> are supported.
-The former causes the value to be skipped, and the latter can be used to
-specify the otherwise auto-generated nickname.
-Examples:
 </para>
+
+<para>The following options can be specified per enum definition:</para>
+<variablelist>
+<varlistentry>
+<term><literal>skip</literal></term>
+<listitem><para>
+Indicates this enum definition should  be skipped.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>flags</literal></term>
+<listitem><para>
+Indicates this enum should be treated as a flags definition.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>underscore_name</literal></term>
+<listitem><para>
+Specifies the word separation used in the <function>*_get_type()</function>
+function. For instance, <literal>/*&lt; underscore_name=gnome_vfs_uri_hide_options &gt;*/</literal>.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>since</literal></term>
+<listitem><para>
+Specifies the version tag that will be used to substitute the <literal>@enumsince@</literal>
+keyword in the template, useful when documenting methods generated from the enums
+(e.g. <literal>Since: @enumsince@</literal>). (Since: 2.66)
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+<para>The following options can be specified per value definition:</para>
+<variablelist>
+<varlistentry>
+<term><literal>skip</literal></term>
+<listitem><para>
+Indicates the value should be skipped.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>nick</literal></term>
+<listitem><para>
+Specifies the otherwise auto-generated nickname.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+<para>Examples:</para>
 <informalexample><programlisting>
 typedef enum /*&lt; skip &gt;*/
 {
   PREFIX_FOO
 } PrefixThisEnumWillBeSkipped;
-typedef enum /*&lt; flags,prefix=PREFIX &gt;*/
+typedef enum /*&lt; flags,prefix=PREFIX,since=1.0 &gt;*/
 {
   PREFIX_THE_ZEROTH_VALUE,     /*&lt; skip &gt;*/
   PREFIX_THE_FIRST_VALUE,
index 14c8eb4..74cfcd9 100644 (file)
     <title>Index of new symbols in 2.62</title>
     <xi:include href="xml/api-index-2.62.xml"><xi:fallback /></xi:include>
   </index>
+  <index id="api-index-2-66" role="2.66">
+    <title>Index of new symbols in 2.66</title>
+    <xi:include href="xml/api-index-2.66.xml"><xi:fallback /></xi:include>
+  </index>
 
   <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
 
index bed38e4..e5ffe5b 100644 (file)
@@ -521,6 +521,7 @@ g_param_value_defaults
 g_param_value_validate
 g_param_value_convert
 g_param_values_cmp
+g_param_spec_is_valid_name
 g_param_spec_get_name
 g_param_spec_get_name_quark
 g_param_spec_get_nick
@@ -683,6 +684,8 @@ G_IS_PARAM_SPEC_STRING
 G_PARAM_SPEC_STRING
 G_VALUE_HOLDS_STRING
 G_TYPE_PARAM_STRING
+G_VALUE_IS_INTERNED_STRING
+G_VALUE_INTERNED_STRING
 GParamSpecString
 gchararray
 g_param_spec_string
@@ -692,6 +695,7 @@ g_value_take_string
 g_value_set_string_take_ownership
 g_value_get_string
 g_value_dup_string
+g_value_set_interned_string
 
 <SUBSECTION GParamSpec>
 G_IS_PARAM_SPEC_PARAM
@@ -859,6 +863,7 @@ g_signal_override_class_handler
 g_signal_chain_from_overridden_handler
 g_signal_add_emission_hook
 g_signal_remove_emission_hook
+g_signal_is_valid_name
 g_signal_parse_name
 g_signal_get_invocation_hint
 g_signal_type_cclosure_new
index 0dd821a..a676af1 100644 (file)
@@ -7,7 +7,7 @@
 stable_2_series_versions = [
   '26', '28', '30', '32', '34', '36', '38',
   '40', '42', '44', '46', '48', '50', '52', '54', '56', '58',
-  '60', '62', '64',
+  '60', '62', '64', '66',
 ]
 
 ignore_decorators = [
@@ -26,6 +26,8 @@ foreach version : stable_2_series_versions
     'GLIB_DEPRECATED_IN_2_' + version + '_FOR()',
     'GLIB_DEPRECATED_IN_2_' + version,
 
+    'GLIB_AVAILABLE_STATIC_INLINE_IN_2_' + version,
+
     'GLIB_AVAILABLE_ENUMERATOR_IN_2_' + version,
     'GLIB_DEPRECATED_ENUMERATOR_IN_2_' + version + '_FOR()',
     'GLIB_DEPRECATED_ENUMERATOR_IN_2_' + version,
@@ -50,11 +52,11 @@ if get_option('gtk_doc')
   endif
   # Check we have the minimum gtk-doc version required. Older versions won't
   # generate correct documentation.
-  dependency('gtk-doc', version : '>=1.32',
+  dependency('gtk-doc', version : '>=1.32.1',
     fallback : ['gtk-doc', 'dummy_dep'],
     default_options : ['tests=false'])
 endif
 
 subdir('gio')
 subdir('glib')
-subdir('gobject')
\ No newline at end of file
+subdir('gobject')
index 63d3a12..75473d2 100644 (file)
@@ -90,7 +90,7 @@ __gio_location() {
     if ! __has_common_prefix; then
         COMPREPLY=("${mounts[@]} ${names[@]}")
 
-        # Workaround to prevent overwritting suggestions, it adds empty
+        # Workaround to prevent overwriting suggestions, it adds empty
         # suggestion, otherwise names with colons will be corrupted
         COMPREPLY+=(" ")
 
index 8256639..b78fd9a 100644 (file)
@@ -70,7 +70,7 @@
  * arguments are passed through platform communication to the already
  * running program. The already running instance of the program is
  * called the "primary instance"; for non-unique applications this is
- * the always the current instance. On Linux, the D-Bus session bus
+ * always the current instance. On Linux, the D-Bus session bus
  * is used for communication.
  *
  * The use of #GApplication differs from some other commonly-used
@@ -2870,7 +2870,7 @@ g_application_unmark_busy (GApplication *application)
  * Gets the application's current busy state, as set through
  * g_application_mark_busy() or g_application_bind_busy_property().
  *
- * Returns: %TRUE if @application is currenty marked as busy
+ * Returns: %TRUE if @application is currently marked as busy
  *
  * Since: 2.44
  */
index 41bbb2a..8b18835 100644 (file)
@@ -67,7 +67,7 @@ loop:
        * current thread and since we're doing only sync operations,
        * this is safe.... */
       /* CancelIoEx is only Vista+. Since we have only one overlap
-       * operaton on this thread, we can just use: */
+       * operation on this thread, we can just use: */
       result = CancelIo (hfile);
       g_warn_if_fail (result);
     }
index d9e58b8..e687cca 100644 (file)
@@ -643,6 +643,8 @@ typedef struct {
 
   GCancellable *cancellable;
   gulong        cancelled_handler;
+  /* Protected by cancellable_mutex: */
+  gboolean      resurrected_during_cancellation;
 } GCancellableSource;
 
 /*
@@ -661,8 +663,24 @@ cancellable_source_cancelled (GCancellable *cancellable,
                              gpointer      user_data)
 {
   GSource *source = user_data;
+  GCancellableSource *cancellable_source = (GCancellableSource *) source;
+
+  g_mutex_lock (&cancellable_mutex);
+
+  /* Drop the reference added in cancellable_source_dispose(); see the comment there.
+   * The reference must be dropped after unlocking @cancellable_mutex since
+   * it could be the final reference, and the dispose function takes
+   * @cancellable_mutex. */
+  if (cancellable_source->resurrected_during_cancellation)
+    {
+      cancellable_source->resurrected_during_cancellation = FALSE;
+      g_mutex_unlock (&cancellable_mutex);
+      g_source_unref (source);
+      return;
+    }
 
   g_source_ref (source);
+  g_mutex_unlock (&cancellable_mutex);
   g_source_set_ready_time (source, 0);
   g_source_unref (source);
 }
@@ -684,12 +702,37 @@ cancellable_source_dispose (GSource *source)
 {
   GCancellableSource *cancellable_source = (GCancellableSource *)source;
 
+  g_mutex_lock (&cancellable_mutex);
+
   if (cancellable_source->cancellable)
     {
+      if (cancellable_source->cancellable->priv->cancelled_running)
+        {
+          /* There can be a race here: if thread A has called
+           * g_cancellable_cancel() and has got as far as committing to call
+           * cancellable_source_cancelled(), then thread B drops the final
+           * ref on the GCancellableSource before g_source_ref() is called in
+           * cancellable_source_cancelled(), then cancellable_source_dispose()
+           * will run through and the GCancellableSource will be finalised
+           * before cancellable_source_cancelled() gets to g_source_ref(). It
+           * will then be left in a state where it’s committed to using a
+           * dangling GCancellableSource pointer.
+           *
+           * Eliminate that race by resurrecting the #GSource temporarily, and
+           * then dropping that reference in cancellable_source_cancelled(),
+           * which should be guaranteed to fire because we’re inside a
+           * @cancelled_running block.
+           */
+          g_source_ref (source);
+          cancellable_source->resurrected_during_cancellation = TRUE;
+        }
+
       g_clear_signal_handler (&cancellable_source->cancelled_handler,
                               cancellable_source->cancellable);
       g_clear_object (&cancellable_source->cancellable);
     }
+
+  g_mutex_unlock (&cancellable_mutex);
 }
 
 static gboolean
index bb3d94a..c1fa29e 100644 (file)
@@ -595,7 +595,7 @@ g_converter_output_stream_flush (GOutputStream  *stream,
          if (!is_closing &&
              res == G_CONVERTER_FLUSHED)
            {
-             /* Should not have retured FLUSHED with input left */
+             /* Should not have returned FLUSHED with input left */
              g_assert (buffer_data_size (&priv->output_buffer) == 0);
              flushed = TRUE;
            }
index c4794de..146829e 100644 (file)
  * #GUnixCredentialsMessage, g_unix_connection_send_credentials() and
  * g_unix_connection_receive_credentials() for details.
  *
- * On Linux, the native credential type is a struct ucred - see the
+ * On Linux, the native credential type is a `struct ucred` - see the
  * unix(7) man page for details. This corresponds to
  * %G_CREDENTIALS_TYPE_LINUX_UCRED.
  *
+ * On Apple operating systems (including iOS, tvOS, and macOS),
+ * the native credential type is a `struct xucred`.
+ * This corresponds to %G_CREDENTIALS_TYPE_APPLE_XUCRED.
+ *
  * On FreeBSD, Debian GNU/kFreeBSD, and GNU/Hurd, the native
- * credential type is a struct cmsgcred. This corresponds
+ * credential type is a `struct cmsgcred`. This corresponds
  * to %G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED.
  *
- * On NetBSD, the native credential type is a struct unpcbid.
+ * On NetBSD, the native credential type is a `struct unpcbid`.
  * This corresponds to %G_CREDENTIALS_TYPE_NETBSD_UNPCBID.
  *
- * On OpenBSD, the native credential type is a struct sockpeercred.
+ * On OpenBSD, the native credential type is a `struct sockpeercred`.
  * This corresponds to %G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED.
  *
  * On Solaris (including OpenSolaris and its derivatives), the native
- * credential type is a ucred_t. This corresponds to
+ * credential type is a `ucred_t`. This corresponds to
  * %G_CREDENTIALS_TYPE_SOLARIS_UCRED.
  */
 
@@ -85,6 +89,8 @@ struct _GCredentials
 
 #if G_CREDENTIALS_USE_LINUX_UCRED
   struct ucred native;
+#elif G_CREDENTIALS_USE_APPLE_XUCRED
+  struct xucred native;
 #elif G_CREDENTIALS_USE_FREEBSD_CMSGCRED
   struct cmsgcred native;
 #elif G_CREDENTIALS_USE_NETBSD_UNPCBID
@@ -148,6 +154,22 @@ g_credentials_init (GCredentials *credentials)
   credentials->native.pid = getpid ();
   credentials->native.uid = geteuid ();
   credentials->native.gid = getegid ();
+#elif G_CREDENTIALS_USE_APPLE_XUCRED
+  gsize i;
+
+  credentials->native.cr_version = XUCRED_VERSION;
+  credentials->native.cr_uid = geteuid ();
+  credentials->native.cr_ngroups = 1;
+  credentials->native.cr_groups[0] = getegid ();
+
+  /* FIXME: In principle this could use getgroups() to fill in the rest
+   * of cr_groups, but then we'd have to handle the case where a process
+   * can have more than NGROUPS groups, if that's even possible. A macOS
+   * user would have to develop and test this.
+   *
+   * For now we fill it with -1 (meaning "no data"). */
+  for (i = 1; i < NGROUPS; i++)
+    credentials->native.cr_groups[i] = -1;
 #elif G_CREDENTIALS_USE_FREEBSD_CMSGCRED
   memset (&credentials->native, 0, sizeof (struct cmsgcred));
   credentials->native.cmcred_pid  = getpid ();
@@ -202,6 +224,9 @@ gchar *
 g_credentials_to_string (GCredentials *credentials)
 {
   GString *ret;
+#if G_CREDENTIALS_USE_APPLE_XUCRED
+  __typeof__(credentials->native.cr_ngroups) i;
+#endif
 
   g_return_val_if_fail (G_IS_CREDENTIALS (credentials), NULL);
 
@@ -216,6 +241,15 @@ g_credentials_to_string (GCredentials *credentials)
     g_string_append_printf (ret, "gid=%" G_GINT64_FORMAT ",", (gint64) credentials->native.gid);
   if (ret->str[ret->len - 1] == ',')
     ret->str[ret->len - 1] = '\0';
+#elif G_CREDENTIALS_USE_APPLE_XUCRED
+  g_string_append (ret, "apple-xucred:");
+  g_string_append_printf (ret, "version=%u,", credentials->native.cr_version);
+  if (credentials->native.cr_uid != -1)
+    g_string_append_printf (ret, "uid=%" G_GINT64_FORMAT ",", (gint64) credentials->native.cr_uid);
+  for (i = 0; i < credentials->native.cr_ngroups; i++)
+    g_string_append_printf (ret, "gid=%" G_GINT64_FORMAT ",", (gint64) credentials->native.cr_groups[i]);
+  if (ret->str[ret->len - 1] == ',')
+    ret->str[ret->len - 1] = '\0';
 #elif G_CREDENTIALS_USE_FREEBSD_CMSGCRED
   g_string_append (ret, "freebsd-cmsgcred:");
   if (credentials->native.cmcred_pid != -1)
@@ -326,6 +360,10 @@ g_credentials_is_same_user (GCredentials  *credentials,
   if (linux_ucred_check_valid (&credentials->native, NULL)
       && credentials->native.uid == other_credentials->native.uid)
     ret = TRUE;
+#elif G_CREDENTIALS_USE_APPLE_XUCRED
+  if (credentials->native.cr_version == other_credentials->native.cr_version &&
+      credentials->native.cr_uid == other_credentials->native.cr_uid)
+    ret = TRUE;
 #elif G_CREDENTIALS_USE_FREEBSD_CMSGCRED
   if (credentials->native.cmcred_euid == other_credentials->native.cmcred_euid)
     ret = TRUE;
@@ -487,6 +525,21 @@ g_credentials_get_unix_user (GCredentials    *credentials,
     ret = credentials->native.uid;
   else
     ret = -1;
+#elif G_CREDENTIALS_USE_APPLE_XUCRED
+  if (credentials->native.cr_version == XUCRED_VERSION)
+    {
+      ret = credentials->native.cr_uid;
+    }
+  else
+    {
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+                   /* No point in translating the part in parentheses... */
+                   "%s (struct xucred cr_version %u != %u)",
+                   _("There is no GCredentials support for your platform"),
+                   credentials->native.cr_version,
+                   XUCRED_VERSION);
+      ret = -1;
+    }
 #elif G_CREDENTIALS_USE_FREEBSD_CMSGCRED
   ret = credentials->native.cmcred_euid;
 #elif G_CREDENTIALS_USE_NETBSD_UNPCBID
@@ -516,7 +569,8 @@ g_credentials_get_unix_user (GCredentials    *credentials,
  *
  * This operation can fail if #GCredentials is not supported on the
  * OS or if the native credentials type does not contain information
- * about the UNIX process ID.
+ * about the UNIX process ID (for example this is the case for
+ * %G_CREDENTIALS_TYPE_APPLE_XUCRED).
  *
  * Returns: The UNIX process ID, or -1 if @error is set.
  *
@@ -545,6 +599,7 @@ g_credentials_get_unix_pid (GCredentials    *credentials,
 #elif G_CREDENTIALS_USE_SOLARIS_UCRED
   ret = ucred_getpid (credentials->native);
 #else
+  /* this case includes G_CREDENTIALS_USE_APPLE_XUCRED */
   ret = -1;
   g_set_error_literal (error,
                        G_IO_ERROR,
@@ -587,6 +642,9 @@ g_credentials_set_unix_user (GCredentials    *credentials,
 #if G_CREDENTIALS_USE_LINUX_UCRED
   credentials->native.uid = uid;
   ret = TRUE;
+#elif G_CREDENTIALS_USE_APPLE_XUCRED
+  credentials->native.cr_uid = uid;
+  ret = TRUE;
 #elif G_CREDENTIALS_USE_FREEBSD_CMSGCRED
   credentials->native.cmcred_euid = uid;
   ret = TRUE;
index e9ec09b..13d3bf3 100644 (file)
@@ -39,6 +39,7 @@
 #undef G_CREDENTIALS_USE_NETBSD_UNPCBID
 #undef G_CREDENTIALS_USE_OPENBSD_SOCKPEERCRED
 #undef G_CREDENTIALS_USE_SOLARIS_UCRED
+#undef G_CREDENTIALS_USE_APPLE_XUCRED
 
 /*
  * G_CREDENTIALS_NATIVE_TYPE:
  */
 #undef G_CREDENTIALS_PREFER_MESSAGE_PASSING
 
+/*
+ * G_CREDENTIALS_HAS_PID:
+ *
+ * Defined to 1 if the %G_CREDENTIALS_NATIVE_TYPE contains the process ID.
+ */
+#undef G_CREDENTIALS_HAS_PID
+
 #ifdef __linux__
 #define G_CREDENTIALS_SUPPORTED 1
 #define G_CREDENTIALS_USE_LINUX_UCRED 1
 #define G_CREDENTIALS_UNIX_CREDENTIALS_MESSAGE_SUPPORTED 1
 #define G_CREDENTIALS_SOCKET_GET_CREDENTIALS_SUPPORTED 1
 #define G_CREDENTIALS_SPOOFING_SUPPORTED 1
+#define G_CREDENTIALS_HAS_PID 1
 
 #elif defined(__FreeBSD__)                                  || \
       defined(__FreeBSD_kernel__) /* Debian GNU/kFreeBSD */ || \
  * SCM_CREDS, and if we implement getpeereid() in future, we should
  * do the same. */
 #define G_CREDENTIALS_PREFER_MESSAGE_PASSING 1
+#define G_CREDENTIALS_HAS_PID 1
 
 #elif defined(__NetBSD__)
 #define G_CREDENTIALS_SUPPORTED 1
 #define G_CREDENTIALS_NATIVE_SIZE (sizeof (struct unpcbid))
 /* #undef G_CREDENTIALS_UNIX_CREDENTIALS_MESSAGE_SUPPORTED */
 #define G_CREDENTIALS_SPOOFING_SUPPORTED 1
+#define G_CREDENTIALS_HAS_PID 1
 
 #elif defined(__OpenBSD__)
 #define G_CREDENTIALS_SUPPORTED 1
 #define G_CREDENTIALS_NATIVE_SIZE (sizeof (struct sockpeercred))
 #define G_CREDENTIALS_SOCKET_GET_CREDENTIALS_SUPPORTED 1
 #define G_CREDENTIALS_SPOOFING_SUPPORTED 1
+#define G_CREDENTIALS_HAS_PID 1
 
 #elif defined(__sun__) || defined(__illumos__) || defined (__OpenSolaris_kernel__)
 #include <ucred.h>
 #define G_CREDENTIALS_NATIVE_SIZE (ucred_size ())
 #define G_CREDENTIALS_UNIX_CREDENTIALS_MESSAGE_SUPPORTED 1
 #define G_CREDENTIALS_SOCKET_GET_CREDENTIALS_SUPPORTED 1
+#define G_CREDENTIALS_HAS_PID 1
+
+#elif defined(__APPLE__)
+#include <sys/ucred.h>
+#define G_CREDENTIALS_SUPPORTED 1
+#define G_CREDENTIALS_USE_APPLE_XUCRED 1
+#define G_CREDENTIALS_NATIVE_TYPE G_CREDENTIALS_TYPE_APPLE_XUCRED
+#define G_CREDENTIALS_NATIVE_SIZE (sizeof (struct xucred))
+#undef G_CREDENTIALS_UNIX_CREDENTIALS_MESSAGE_SUPPORTED
+#define G_CREDENTIALS_SOCKET_GET_CREDENTIALS_SUPPORTED 1
+#define G_CREDENTIALS_SPOOFING_SUPPORTED 1
+#define G_CREDENTIALS_HAS_PID 0
 
 #endif
 
index d71299e..5234b38 100644 (file)
@@ -62,7 +62,8 @@ def generate_header_guard(header_name):
 class HeaderCodeGenerator:
     def __init__(self, ifaces, namespace, generate_objmanager,
                  generate_autocleanup, header_name, input_files_basenames,
-                 use_pragma, glib_min_required, outfile):
+                 use_pragma, glib_min_required,
+                 symbol_decorator, symbol_decorator_header, outfile):
         self.ifaces = ifaces
         self.namespace, self.ns_upper, self.ns_lower = generate_namespace(namespace)
         self.generate_objmanager = generate_objmanager
@@ -71,6 +72,8 @@ class HeaderCodeGenerator:
         self.input_files_basenames = input_files_basenames
         self.use_pragma = use_pragma
         self.glib_min_required = glib_min_required
+        self.symbol_decorator = symbol_decorator
+        self.symbol_decorator_header = symbol_decorator_header
         self.outfile = outfile
 
     # ----------------------------------------------------------------------------------------------------
@@ -86,6 +89,10 @@ class HeaderCodeGenerator:
             self.outfile.write('#ifndef __{!s}__\n'.format(self.header_guard))
             self.outfile.write('#define __{!s}__\n'.format(self.header_guard))
 
+        if self.symbol_decorator_header is not None:
+            self.outfile.write('\n')
+            self.outfile.write('#include "%s"\n' % self.symbol_decorator_header)
+
         self.outfile.write('\n')
         self.outfile.write('#include <gio/gio.h>\n')
         self.outfile.write('\n')
@@ -171,9 +178,15 @@ class HeaderCodeGenerator:
                 self.outfile.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%s, g_object_unref)\n' % (i.camel_name))
                 self.outfile.write('#endif\n')
                 self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GType %s_get_type (void) G_GNUC_CONST;\n'%(i.name_lower))
             self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GDBusInterfaceInfo *%s_interface_info (void);\n'%(i.name_lower))
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('guint %s_override_properties (GObjectClass *klass, guint property_id_begin);\n'%(i.name_lower))
             self.outfile.write('\n')
 
@@ -182,6 +195,8 @@ class HeaderCodeGenerator:
                 self.outfile.write('\n')
                 self.outfile.write('/* D-Bus method call completion functions: */\n')
                 for m in i.methods:
+                    if self.symbol_decorator is not None:
+                        self.outfile.write('%s\n' % self.symbol_decorator)
                     if m.deprecated:
                         self.outfile.write('G_GNUC_DEPRECATED ')
                     self.outfile.write('void %s_complete_%s (\n'
@@ -200,6 +215,8 @@ class HeaderCodeGenerator:
                 self.outfile.write('\n')
                 self.outfile.write('/* D-Bus signal emissions functions: */\n')
                 for s in i.signals:
+                    if self.symbol_decorator is not None:
+                        self.outfile.write('%s\n' % self.symbol_decorator)
                     if s.deprecated:
                         self.outfile.write('G_GNUC_DEPRECATED ')
                     self.outfile.write('void %s_emit_%s (\n'
@@ -216,6 +233,8 @@ class HeaderCodeGenerator:
                 self.outfile.write('/* D-Bus method calls: */\n')
                 for m in i.methods:
                     # async begin
+                    if self.symbol_decorator is not None:
+                        self.outfile.write('%s\n' % self.symbol_decorator)
                     if m.deprecated:
                         self.outfile.write('G_GNUC_DEPRECATED ')
                     self.outfile.write('void %s_call_%s (\n'
@@ -233,6 +252,8 @@ class HeaderCodeGenerator:
                                        '    gpointer user_data);\n')
                     self.outfile.write('\n')
                     # async finish
+                    if self.symbol_decorator is not None:
+                        self.outfile.write('%s\n' % self.symbol_decorator)
                     if m.deprecated:
                         self.outfile.write('G_GNUC_DEPRECATED ')
                     self.outfile.write('gboolean %s_call_%s_finish (\n'
@@ -246,6 +267,8 @@ class HeaderCodeGenerator:
                                        '    GError **error);\n')
                     self.outfile.write('\n')
                     # sync
+                    if self.symbol_decorator is not None:
+                        self.outfile.write('%s\n' % self.symbol_decorator)
                     if m.deprecated:
                         self.outfile.write('G_GNUC_DEPRECATED ')
                     self.outfile.write('gboolean %s_call_%s_sync (\n'
@@ -273,14 +296,20 @@ class HeaderCodeGenerator:
                 self.outfile.write('/* D-Bus property accessors: */\n')
                 for p in i.properties:
                     # getter
+                    if self.symbol_decorator is not None:
+                        self.outfile.write('%s\n' % self.symbol_decorator)
                     if p.deprecated:
                         self.outfile.write('G_GNUC_DEPRECATED ')
                     self.outfile.write('%s%s_get_%s (%s *object);\n'%(p.arg.ctype_in, i.name_lower, p.name_lower, i.camel_name))
                     if p.arg.free_func != None:
+                        if self.symbol_decorator is not None:
+                            self.outfile.write('%s\n' % self.symbol_decorator)
                         if p.deprecated:
                             self.outfile.write('G_GNUC_DEPRECATED ')
                         self.outfile.write('%s%s_dup_%s (%s *object);\n'%(p.arg.ctype_in_dup, i.name_lower, p.name_lower, i.camel_name))
                     # setter
+                    if self.symbol_decorator is not None:
+                        self.outfile.write('%s\n' % self.symbol_decorator)
                     if p.deprecated:
                         self.outfile.write('G_GNUC_DEPRECATED ')
                     self.outfile.write('void %s_set_%s (%s *object, %svalue);\n'%(i.name_lower, p.name_lower, i.camel_name, p.arg.ctype_in, ))
@@ -313,6 +342,8 @@ class HeaderCodeGenerator:
             self.outfile.write('  GDBusProxyClass parent_class;\n')
             self.outfile.write('};\n')
             self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GType %s_proxy_get_type (void) G_GNUC_CONST;\n'%(i.name_lower))
             self.outfile.write('\n')
             if self.generate_autocleanup in ('objects', 'all'):
@@ -320,6 +351,8 @@ class HeaderCodeGenerator:
                 self.outfile.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sProxy, g_object_unref)\n' % (i.camel_name))
                 self.outfile.write('#endif\n')
                 self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             if i.deprecated:
                 self.outfile.write('G_GNUC_DEPRECATED ')
             self.outfile.write('void %s_proxy_new (\n'
@@ -331,12 +364,16 @@ class HeaderCodeGenerator:
                                '    GAsyncReadyCallback  callback,\n'
                                '    gpointer             user_data);\n'
                                %(i.name_lower))
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             if i.deprecated:
                 self.outfile.write('G_GNUC_DEPRECATED ')
             self.outfile.write('%s *%s_proxy_new_finish (\n'
                                '    GAsyncResult        *res,\n'
                                '    GError             **error);\n'
                                %(i.camel_name, i.name_lower))
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             if i.deprecated:
                 self.outfile.write('G_GNUC_DEPRECATED ')
             self.outfile.write('%s *%s_proxy_new_sync (\n'
@@ -348,6 +385,8 @@ class HeaderCodeGenerator:
                                '    GError             **error);\n'
                                %(i.camel_name, i.name_lower))
             self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             if i.deprecated:
                 self.outfile.write('G_GNUC_DEPRECATED ')
             self.outfile.write('void %s_proxy_new_for_bus (\n'
@@ -359,12 +398,16 @@ class HeaderCodeGenerator:
                                '    GAsyncReadyCallback  callback,\n'
                                '    gpointer             user_data);\n'
                                %(i.name_lower))
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             if i.deprecated:
                 self.outfile.write('G_GNUC_DEPRECATED ')
             self.outfile.write('%s *%s_proxy_new_for_bus_finish (\n'
                                '    GAsyncResult        *res,\n'
                                '    GError             **error);\n'
                                %(i.camel_name, i.name_lower))
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             if i.deprecated:
                 self.outfile.write('G_GNUC_DEPRECATED ')
             self.outfile.write('%s *%s_proxy_new_for_bus_sync (\n'
@@ -404,6 +447,8 @@ class HeaderCodeGenerator:
             self.outfile.write('  GDBusInterfaceSkeletonClass parent_class;\n')
             self.outfile.write('};\n')
             self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GType %s_skeleton_get_type (void) G_GNUC_CONST;\n'%(i.name_lower))
             self.outfile.write('\n')
             if self.generate_autocleanup in ('objects', 'all'):
@@ -411,6 +456,8 @@ class HeaderCodeGenerator:
                 self.outfile.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sSkeleton, g_object_unref)\n' % (i.camel_name))
                 self.outfile.write('#endif\n')
                 self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             if i.deprecated:
                 self.outfile.write('G_GNUC_DEPRECATED ')
             self.outfile.write('%s *%s_skeleton_new (void);\n'%(i.camel_name, i.name_lower))
@@ -436,6 +483,8 @@ class HeaderCodeGenerator:
                                '  GTypeInterface parent_iface;\n'
                                '};\n'
                                '\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GType %sobject_get_type (void) G_GNUC_CONST;\n'
                                '\n'
                                %(self.ns_lower))
@@ -445,11 +494,15 @@ class HeaderCodeGenerator:
                 self.outfile.write('#endif\n')
                 self.outfile.write('\n')
             for i in self.ifaces:
+                if self.symbol_decorator is not None:
+                    self.outfile.write('%s\n' % self.symbol_decorator)
                 if i.deprecated:
                     self.outfile.write('G_GNUC_DEPRECATED ')
                 self.outfile.write('%s *%sobject_get_%s (%sObject *object);\n'
                                    %(i.camel_name, self.ns_lower, i.name_upper.lower(), self.namespace))
             for i in self.ifaces:
+                if self.symbol_decorator is not None:
+                    self.outfile.write('%s\n' % self.symbol_decorator)
                 if i.deprecated:
                     self.outfile.write('G_GNUC_DEPRECATED ')
                 self.outfile.write('%s *%sobject_peek_%s (%sObject *object);\n'
@@ -478,6 +531,8 @@ class HeaderCodeGenerator:
             self.outfile.write('  GDBusObjectProxyClass parent_class;\n')
             self.outfile.write('};\n')
             self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GType %sobject_proxy_get_type (void) G_GNUC_CONST;\n'%(self.ns_lower))
             self.outfile.write('\n')
             if self.generate_autocleanup in ('objects', 'all'):
@@ -485,6 +540,8 @@ class HeaderCodeGenerator:
                 self.outfile.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sObjectProxy, g_object_unref)\n' % (self.namespace))
                 self.outfile.write('#endif\n')
                 self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('%sObjectProxy *%sobject_proxy_new (GDBusConnection *connection, const gchar *object_path);\n'%(self.namespace, self.ns_lower))
             self.outfile.write('\n')
             self.outfile.write('#define %sTYPE_OBJECT_SKELETON (%sobject_skeleton_get_type ())\n'%(self.ns_upper, self.ns_lower))
@@ -510,6 +567,8 @@ class HeaderCodeGenerator:
             self.outfile.write('  GDBusObjectSkeletonClass parent_class;\n')
             self.outfile.write('};\n')
             self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GType %sobject_skeleton_get_type (void) G_GNUC_CONST;\n'%(self.ns_lower))
             self.outfile.write('\n')
             if self.generate_autocleanup in ('objects', 'all'):
@@ -517,9 +576,13 @@ class HeaderCodeGenerator:
                 self.outfile.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sObjectSkeleton, g_object_unref)\n' % (self.namespace))
                 self.outfile.write('#endif\n')
                 self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('%sObjectSkeleton *%sobject_skeleton_new (const gchar *object_path);\n'
                                %(self.namespace, self.ns_lower))
             for i in self.ifaces:
+                if self.symbol_decorator is not None:
+                    self.outfile.write('%s\n' % self.symbol_decorator)
                 if i.deprecated:
                     self.outfile.write('G_GNUC_DEPRECATED ')
                 self.outfile.write('void %sobject_skeleton_set_%s (%sObjectSkeleton *object, %s *interface_);\n'
@@ -556,10 +619,16 @@ class HeaderCodeGenerator:
                 self.outfile.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sObjectManagerClient, g_object_unref)\n' % (self.namespace))
                 self.outfile.write('#endif\n')
                 self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GType %sobject_manager_client_get_type (void) G_GNUC_CONST;\n'%(self.ns_lower))
             self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GType %sobject_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data);\n'%(self.ns_lower))
             self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('void %sobject_manager_client_new (\n'
                                '    GDBusConnection        *connection,\n'
                                '    GDBusObjectManagerClientFlags  flags,\n'
@@ -569,10 +638,14 @@ class HeaderCodeGenerator:
                                '    GAsyncReadyCallback     callback,\n'
                                '    gpointer                user_data);\n'
                                %(self.ns_lower))
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GDBusObjectManager *%sobject_manager_client_new_finish (\n'
                                '    GAsyncResult        *res,\n'
                                '    GError             **error);\n'
                                %(self.ns_lower))
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GDBusObjectManager *%sobject_manager_client_new_sync (\n'
                                '    GDBusConnection        *connection,\n'
                                '    GDBusObjectManagerClientFlags  flags,\n'
@@ -582,6 +655,8 @@ class HeaderCodeGenerator:
                                '    GError                **error);\n'
                                %(self.ns_lower))
             self.outfile.write('\n')
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('void %sobject_manager_client_new_for_bus (\n'
                                '    GBusType                bus_type,\n'
                                '    GDBusObjectManagerClientFlags  flags,\n'
@@ -591,10 +666,14 @@ class HeaderCodeGenerator:
                                '    GAsyncReadyCallback     callback,\n'
                                '    gpointer                user_data);\n'
                                %(self.ns_lower))
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GDBusObjectManager *%sobject_manager_client_new_for_bus_finish (\n'
                                '    GAsyncResult        *res,\n'
                                '    GError             **error);\n'
                                %(self.ns_lower))
+            if self.symbol_decorator is not None:
+                self.outfile.write('%s\n' % self.symbol_decorator)
             self.outfile.write('GDBusObjectManager *%sobject_manager_client_new_for_bus_sync (\n'
                                '    GBusType                bus_type,\n'
                                '    GDBusObjectManagerClientFlags  flags,\n'
@@ -625,13 +704,18 @@ class HeaderCodeGenerator:
 # ----------------------------------------------------------------------------------------------------
 
 class InterfaceInfoHeaderCodeGenerator:
-    def __init__(self, ifaces, namespace, header_name, input_files_basenames, use_pragma, glib_min_required, outfile):
+    def __init__(self, ifaces, namespace, header_name, input_files_basenames, use_pragma,
+                 glib_min_required, symbol_decorator, symbol_decorator_header, outfile):
         self.ifaces = ifaces
         self.namespace, self.ns_upper, self.ns_lower = generate_namespace(namespace)
         self.header_guard = generate_header_guard(header_name)
         self.input_files_basenames = input_files_basenames
         self.use_pragma = use_pragma
         self.glib_min_required = glib_min_required
+        self.symbol_decorator = symbol_decorator
+        if self.symbol_decorator is None:
+            self.symbol_decorator = ''
+        self.symbol_decorator_header = symbol_decorator_header
         self.outfile = outfile
 
     # ----------------------------------------------------------------------------------------------------
@@ -647,6 +731,10 @@ class InterfaceInfoHeaderCodeGenerator:
             self.outfile.write('#ifndef __{!s}__\n'.format(self.header_guard))
             self.outfile.write('#define __{!s}__\n'.format(self.header_guard))
 
+        if self.symbol_decorator_header is not None:
+            self.outfile.write('\n')
+            self.outfile.write('#include "%s"\n' % self.symbol_decorator_header)
+
         self.outfile.write('\n')
         self.outfile.write('#include <gio/gio.h>\n')
         self.outfile.write('\n')
@@ -657,7 +745,8 @@ class InterfaceInfoHeaderCodeGenerator:
 
     def declare_infos(self):
         for i in self.ifaces:
-            self.outfile.write('extern const GDBusInterfaceInfo %s_interface;\n' % i.name_lower)
+            self.outfile.write('extern %s const GDBusInterfaceInfo %s_interface;\n' %
+                               (self.symbol_decorator, i.name_lower))
 
     # ----------------------------------------------------------------------------------------------------
 
@@ -679,12 +768,14 @@ class InterfaceInfoHeaderCodeGenerator:
 # ----------------------------------------------------------------------------------------------------
 
 class InterfaceInfoBodyCodeGenerator:
-    def __init__(self, ifaces, namespace, header_name, input_files_basenames, glib_min_required, outfile):
+    def __init__(self, ifaces, namespace, header_name, input_files_basenames,
+                 glib_min_required, symbol_decoration_define, outfile):
         self.ifaces = ifaces
         self.namespace, self.ns_upper, self.ns_lower = generate_namespace(namespace)
         self.header_name = header_name
         self.input_files_basenames = input_files_basenames
         self.glib_min_required = glib_min_required
+        self.symbol_decoration_define = symbol_decoration_define
         self.outfile = outfile
 
     # ----------------------------------------------------------------------------------------------------
@@ -692,6 +783,11 @@ class InterfaceInfoBodyCodeGenerator:
     def generate_body_preamble(self):
         basenames = ', '.join(self.input_files_basenames)
         self.outfile.write(LICENSE_STR.format(config.VERSION, basenames))
+
+        if self.symbol_decoration_define is not None:
+            self.outfile.write('\n')
+            self.outfile.write('#define %s\n' % self.symbol_decoration_define)
+
         self.outfile.write('\n')
         self.outfile.write('#ifdef HAVE_CONFIG_H\n'
                            '#  include "config.h"\n'
@@ -912,7 +1008,8 @@ class InterfaceInfoBodyCodeGenerator:
 
 class CodeGenerator:
     def __init__(self, ifaces, namespace, generate_objmanager, header_name,
-                 input_files_basenames, docbook_gen, glib_min_required, outfile):
+                 input_files_basenames, docbook_gen, glib_min_required,
+                 symbol_decoration_define, outfile):
         self.ifaces = ifaces
         self.namespace, self.ns_upper, self.ns_lower = generate_namespace(namespace)
         self.generate_objmanager = generate_objmanager
@@ -920,6 +1017,7 @@ class CodeGenerator:
         self.input_files_basenames = input_files_basenames
         self.docbook_gen = docbook_gen
         self.glib_min_required = glib_min_required
+        self.symbol_decoration_define = symbol_decoration_define
         self.outfile = outfile
 
     # ----------------------------------------------------------------------------------------------------
@@ -927,6 +1025,9 @@ class CodeGenerator:
     def generate_body_preamble(self):
         basenames = ', '.join(self.input_files_basenames)
         self.outfile.write(LICENSE_STR.format(config.VERSION, basenames))
+        if self.symbol_decoration_define is not None:
+            self.outfile.write('\n')
+            self.outfile.write('#define %s\n' % self.symbol_decoration_define)
         self.outfile.write('\n')
         self.outfile.write('#ifdef HAVE_CONFIG_H\n'
                            '#  include "config.h"\n'
@@ -1746,7 +1847,7 @@ class CodeGenerator:
                     ' *\n'
                     ' * Finishes an operation started with %s_call_%s().\n'
                     ' *\n'
-                    ' * Returns: (skip): %%TRUE if the call succeded, %%FALSE if @error is set.\n'
+                    ' * Returns: (skip): %%TRUE if the call succeeded, %%FALSE if @error is set.\n'
                     %(i.name_lower, m.name_lower, i.name_lower, m.name_lower), False))
             self.write_gtkdoc_deprecated_and_since_and_close(m, self.outfile, 0)
             self.outfile.write('gboolean\n'
@@ -1808,7 +1909,7 @@ class CodeGenerator:
                     ' *\n'
                     ' * See %s_call_%s() for the asynchronous version of this method.\n'
                     ' *\n'
-                    ' * Returns: (skip): %%TRUE if the call succeded, %%FALSE if @error is set.\n'
+                    ' * Returns: (skip): %%TRUE if the call succeeded, %%FALSE if @error is set.\n'
                     %(i.name, m.name, i.name_lower, m.name_lower), False))
             self.write_gtkdoc_deprecated_and_since_and_close(m, self.outfile, 0)
             self.outfile.write('gboolean\n'
index 75d97e3..bd7fef5 100644 (file)
@@ -171,6 +171,12 @@ def codegen_main():
                             help='Minimum version of GLib to be supported by the outputted code (default: 2.30)')
     arg_parser.add_argument('--glib-max-allowed', metavar='VERSION',
                             help='Maximum version of GLib to be used by the outputted code (default: current GLib version)')
+    arg_parser.add_argument('--symbol-decorator',
+                            help='Macro used to decorate a symbol in the outputted header, possibly to export symbols')
+    arg_parser.add_argument('--symbol-decorator-header',
+                            help='Additional header required for decorator specified by --symbol-decorator')
+    arg_parser.add_argument('--symbol-decorator-define',
+                            help='Additional define required for decorator specified by --symbol-decorator')
 
     group = arg_parser.add_mutually_exclusive_group()
     group.add_argument('--generate-c-code', metavar='OUTFILES',
@@ -271,6 +277,11 @@ def codegen_main():
     else:
         glib_max_allowed = (config.MAJOR_VERSION, config.MINOR_VERSION)
 
+    # Only allow --symbol-decorator-define and --symbol-decorator-header if --symbol-decorator is used
+    if args.symbol_decorator is None:
+        if args.symbol_decorator_header or args.symbol_decorator_define:
+            print_error('--symbol-decorator-define and --symbol-decorator-header must be used with --symbol-decorator')
+
     # Round --glib-max-allowed up to the next stable release.
     glib_max_allowed = \
         (glib_max_allowed[0], glib_max_allowed[1] + (glib_max_allowed[1] % 2))
@@ -310,6 +321,8 @@ def codegen_main():
                                               input_files_basenames,
                                               args.pragma_once,
                                               glib_min_required,
+                                              args.symbol_decorator,
+                                              args.symbol_decorator_header,
                                               outfile)
             gen.generate()
 
@@ -322,6 +335,7 @@ def codegen_main():
                                         input_files_basenames,
                                         docbook_gen,
                                         glib_min_required,
+                                        args.symbol_decorator_define,
                                         outfile)
             gen.generate()
 
@@ -333,6 +347,8 @@ def codegen_main():
                                                            input_files_basenames,
                                                            args.pragma_once,
                                                            glib_min_required,
+                                                           args.symbol_decorator,
+                                                           args.symbol_decorator_header,
                                                            outfile)
             gen.generate()
 
@@ -343,6 +359,7 @@ def codegen_main():
                                                          header_name,
                                                          input_files_basenames,
                                                          glib_min_required,
+                                                         args.symbol_decorator_define,
                                                          outfile)
             gen.generate()
 
index be36c9d..f46c7d6 100644 (file)
@@ -311,4 +311,3 @@ g_dbus_auth_observer_allow_mechanism (GDBusAuthObserver  *observer,
                  &ret);
   return ret;
 }
-
index 1a4dae3..54aaf43 100644 (file)
@@ -3728,7 +3728,7 @@ typedef struct
   SignalSubscriber    *subscriber;  /* (owned) */
   GDBusMessage        *message;
   GDBusConnection     *connection;
-  const gchar         *sender;
+  const gchar         *sender;  /* (nullable) for peer-to-peer connections */
   const gchar         *path;
   const gchar         *interface;
   const gchar         *member;
@@ -3833,7 +3833,9 @@ path_rule_matches (const gchar *path_a,
   return memcmp (path_a, path_b, MIN (len_a, len_b)) == 0;
 }
 
-/* called in GDBusWorker thread WITH lock held */
+/* called in GDBusWorker thread WITH lock held
+ *
+ * @sender is (nullable) for peer-to-peer connections */
 static void
 schedule_callbacks (GDBusConnection *connection,
                     GPtrArray       *signal_data_array,
index f7f08a3..05ef384 100644 (file)
@@ -550,7 +550,8 @@ gboolean         g_dbus_connection_unregister_subtree         (GDBusConnection
 /**
  * GDBusSignalCallback:
  * @connection: A #GDBusConnection.
- * @sender_name: The unique bus name of the sender of the signal.
+ * @sender_name: (nullable): The unique bus name of the sender of the signal,
+   or %NULL on a peer-to-peer D-Bus connection.
  * @object_path: The object path that the signal was emitted on.
  * @interface_name: The name of the interface.
  * @signal_name: The name of the signal.
index 4680ee7..3b3a013 100644 (file)
@@ -264,7 +264,7 @@ g_memory_buffer_write (GMemoryBuffer  *mbuf,
 
   if (mbuf->pos + count > mbuf->len)
     {
-      /* At least enought to fit the write, rounded up
+      /* At least enough to fit the write, rounded up
             for greater than linear growth.
          TODO: This wastes a lot of memory at large buffer sizes.
                Figure out a more rational allocation strategy. */
@@ -3378,7 +3378,7 @@ g_dbus_message_to_gerror (GDBusMessage   *message,
     }
   else
     {
-      /* TOOD: this shouldn't happen - should check this at message serialization
+      /* TODO: this shouldn't happen - should check this at message serialization
        * time and disconnect the peer.
        */
       g_set_error (error,
index a9b94f6..88fcff4 100644 (file)
@@ -1164,7 +1164,7 @@ subscribe_signals (GDBusObjectManagerClient *manager,
                                             name_owner,
                                             NULL, /* interface */
                                             NULL, /* member */
-                                            NULL, /* path - TODO: really want wilcard support here */
+                                            NULL, /* path - TODO: really want wildcard support here */
                                             NULL, /* arg0 */
                                             G_DBUS_SIGNAL_FLAGS_NONE |
                                             G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE,
@@ -1197,7 +1197,7 @@ subscribe_signals (GDBusObjectManagerClient *manager,
                                             name_owner,
                                             NULL, /* interface */
                                             NULL, /* member */
-                                            NULL, /* path - TODO: really want wilcard support here */
+                                            NULL, /* path - TODO: really want wildcard support here */
                                             NULL, /* arg0 */
                                             G_DBUS_SIGNAL_FLAGS_NONE,
                                             signal_cb,
index 302c30b..8526f69 100644 (file)
@@ -1504,7 +1504,7 @@ continue_writing (GDBusWorker *worker)
         }
       else
         {
-          /* filters altered the message -> reencode */
+          /* filters altered the message -> re-encode */
           error = NULL;
           new_blob = g_dbus_message_to_blob (data->message,
                                              &new_blob_size,
index fe3ebe2..42458d9 100644 (file)
@@ -416,7 +416,7 @@ const gchar desktop_key_match_category[N_DESKTOP_KEYS] = {
 };
 
 /* Common prefix commands to ignore from Exec= lines */
-const char * const exec_key_match_blacklist[] = {
+const char * const exec_key_match_blocklist[] = {
   "bash",
   "env",
   "flatpak",
@@ -771,7 +771,7 @@ desktop_file_dir_unindexed_get_tweaks (DesktopFileDir *dir,
 static void
 expand_strv (gchar         ***strv_ptr,
              gchar          **to_add,
-             gchar * const   *blacklist)
+             gchar * const   *blocklist)
 {
   guint strv_len, add_len;
   gchar **strv;
@@ -790,10 +790,10 @@ expand_strv (gchar         ***strv_ptr,
 
   for (i = 0; to_add[i]; i++)
     {
-      /* Don't add blacklisted strings */
-      if (blacklist)
-        for (j = 0; blacklist[j]; j++)
-          if (g_str_equal (to_add[i], blacklist[j]))
+      /* Don't add blocklisted strings */
+      if (blocklist)
+        for (j = 0; blocklist[j]; j++)
+          if (g_str_equal (to_add[i], blocklist[j]))
             goto no_add;
 
       /* Don't add duplicates already in the list */
@@ -915,7 +915,7 @@ desktop_file_dir_unindexed_read_mimeapps_lists (DesktopFileDir *dir)
 
   dir->mime_tweaks = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, free_mime_tweaks);
 
-  /* We process in order of precedence, using a blacklisting approach to
+  /* We process in order of precedence, using a blocklisting approach to
    * avoid recording later instructions that conflict with ones we found
    * earlier.
    *
@@ -1134,8 +1134,8 @@ desktop_file_dir_unindexed_setup_search (DesktopFileDir *dir)
                   if ((slash = strrchr (raw, '/')))
                     value = slash + 1;
 
-                  /* Don't match on blacklisted binaries like interpreters */
-                  if (g_strv_contains (exec_key_match_blacklist, value))
+                  /* Don't match on blocklisted binaries like interpreters */
+                  if (g_strv_contains (exec_key_match_blocklist, value))
                    value = NULL;
                 }
 
@@ -1199,7 +1199,7 @@ static void
 desktop_file_dir_unindexed_mime_lookup (DesktopFileDir *dir,
                                         const gchar    *mime_type,
                                         GPtrArray      *hits,
-                                        GPtrArray      *blacklist)
+                                        GPtrArray      *blocklist)
 {
   UnindexedMimeTweaks *tweaks;
   gint i;
@@ -1216,7 +1216,7 @@ desktop_file_dir_unindexed_mime_lookup (DesktopFileDir *dir,
           gchar *app_name = tweaks->additions[i];
 
           if (!desktop_file_dir_app_name_is_masked (dir, app_name) &&
-              !array_contains (blacklist, app_name) && !array_contains (hits, app_name))
+              !array_contains (blocklist, app_name) && !array_contains (hits, app_name))
             g_ptr_array_add (hits, app_name);
         }
     }
@@ -1228,8 +1228,8 @@ desktop_file_dir_unindexed_mime_lookup (DesktopFileDir *dir,
           gchar *app_name = tweaks->removals[i];
 
           if (!desktop_file_dir_app_name_is_masked (dir, app_name) &&
-              !array_contains (blacklist, app_name) && !array_contains (hits, app_name))
-            g_ptr_array_add (blacklist, app_name);
+              !array_contains (blocklist, app_name) && !array_contains (hits, app_name))
+            g_ptr_array_add (blocklist, app_name);
         }
     }
 }
@@ -1447,14 +1447,14 @@ desktop_file_dir_get_all (DesktopFileDir *dir,
  * @dir: a #DesktopFileDir
  * @mime_type: the mime type to look up
  * @hits: the array to store the hits
- * @blacklist: the array to store the blacklist
+ * @blocklist: the array to store the blocklist
  *
  * Does a lookup of a mimetype against one desktop file directory,
- * recording any hits and blacklisting and "Removed" associations (so
+ * recording any hits and blocklisting and "Removed" associations (so
  * later directories don't record them as hits).
  *
- * The items added to @hits are duplicated, but the ones in @blacklist
- * are weak pointers.  This facilitates simply freeing the blacklist
+ * The items added to @hits are duplicated, but the ones in @blocklist
+ * are weak pointers.  This facilitates simply freeing the blocklist
  * (which is only used for internal bookkeeping) but using the pdata of
  * @hits as the result of the operation.
  */
@@ -1462,9 +1462,9 @@ static void
 desktop_file_dir_mime_lookup (DesktopFileDir *dir,
                               const gchar    *mime_type,
                               GPtrArray      *hits,
-                              GPtrArray      *blacklist)
+                              GPtrArray      *blocklist)
 {
-  desktop_file_dir_unindexed_mime_lookup (dir, mime_type, hits, blacklist);
+  desktop_file_dir_unindexed_mime_lookup (dir, mime_type, hits, blocklist);
 }
 
 /*< internal >
@@ -2727,7 +2727,7 @@ g_desktop_app_info_launch_uris_with_spawn (GDesktopAppInfo            *info,
    * internally by expand_macro(), so we need to pass a copy of it instead,
    * and also use that copy to control the exit condition of the loop below.
    */
-  dup_uris = uris;
+  dup_uris = g_list_copy (uris);
   do
     {
       GPid pid;
@@ -2864,6 +2864,7 @@ g_desktop_app_info_launch_uris_with_spawn (GDesktopAppInfo            *info,
   completed = TRUE;
 
  out:
+  g_list_free (dup_uris);
   g_strfreev (argv);
   g_strfreev (envp);
 
@@ -4130,12 +4131,12 @@ static gchar **
 g_desktop_app_info_get_desktop_ids_for_content_type (const gchar *content_type,
                                                      gboolean     include_fallback)
 {
-  GPtrArray *hits, *blacklist;
+  GPtrArray *hits, *blocklist;
   gchar **types;
   gint i, j;
 
   hits = g_ptr_array_new ();
-  blacklist = g_ptr_array_new ();
+  blocklist = g_ptr_array_new ();
 
   types = get_list_of_mimetypes (content_type, include_fallback);
 
@@ -4143,7 +4144,7 @@ g_desktop_app_info_get_desktop_ids_for_content_type (const gchar *content_type,
 
   for (i = 0; types[i]; i++)
     for (j = 0; j < desktop_file_dirs->len; j++)
-      desktop_file_dir_mime_lookup (g_ptr_array_index (desktop_file_dirs, j), types[i], hits, blacklist);
+      desktop_file_dir_mime_lookup (g_ptr_array_index (desktop_file_dirs, j), types[i], hits, blocklist);
 
   /* We will keep the hits past unlocking, so we must dup them */
   for (i = 0; i < hits->len; i++)
@@ -4153,7 +4154,7 @@ g_desktop_app_info_get_desktop_ids_for_content_type (const gchar *content_type,
 
   g_ptr_array_add (hits, NULL);
 
-  g_ptr_array_free (blacklist, TRUE);
+  g_ptr_array_free (blocklist, TRUE);
   g_strfreev (types);
 
   return (gchar **) g_ptr_array_free (hits, FALSE);
@@ -4319,14 +4320,14 @@ g_app_info_reset_type_associations (const char *content_type)
  *
  * Gets the default #GAppInfo for a given content type.
  *
- * Returns: (transfer full): #GAppInfo for given @content_type or
+ * Returns: (transfer full) (nullable): #GAppInfo for given @content_type or
  *     %NULL on error.
  */
 GAppInfo *
 g_app_info_get_default_for_type (const char *content_type,
                                  gboolean    must_support_uris)
 {
-  GPtrArray *blacklist;
+  GPtrArray *blocklist;
   GPtrArray *results;
   GAppInfo *info;
   gchar **types;
@@ -4336,7 +4337,7 @@ g_app_info_get_default_for_type (const char *content_type,
 
   types = get_list_of_mimetypes (content_type, TRUE);
 
-  blacklist = g_ptr_array_new ();
+  blocklist = g_ptr_array_new ();
   results = g_ptr_array_new ();
   info = NULL;
 
@@ -4350,7 +4351,7 @@ g_app_info_get_default_for_type (const char *content_type,
 
       /* Consider the associations as well... */
       for (j = 0; j < desktop_file_dirs->len; j++)
-        desktop_file_dir_mime_lookup (g_ptr_array_index (desktop_file_dirs, j), types[i], results, blacklist);
+        desktop_file_dir_mime_lookup (g_ptr_array_index (desktop_file_dirs, j), types[i], results, blocklist);
 
       /* (If any), see if one of those apps is installed... */
       for (j = 0; j < results->len; j++)
@@ -4372,7 +4373,7 @@ g_app_info_get_default_for_type (const char *content_type,
         }
 
       /* Reset the list, ready to try again with the next (parent)
-       * mimetype, but keep the blacklist in place.
+       * mimetype, but keep the blocklist in place.
        */
       g_ptr_array_set_size (results, 0);
     }
@@ -4380,7 +4381,7 @@ g_app_info_get_default_for_type (const char *content_type,
 out:
   desktop_file_dirs_unlock ();
 
-  g_ptr_array_unref (blacklist);
+  g_ptr_array_unref (blocklist);
   g_ptr_array_unref (results);
   g_strfreev (types);
 
@@ -4396,7 +4397,8 @@ out:
  * of the URI, up to but not including the ':', e.g. "http",
  * "ftp" or "sip".
  *
- * Returns: (transfer full): #GAppInfo for given @uri_scheme or %NULL on error.
+ * Returns: (transfer full) (nullable): #GAppInfo for given @uri_scheme or
+ *     %NULL on error.
  */
 GAppInfo *
 g_app_info_get_default_for_uri_scheme (const char *uri_scheme)
@@ -4477,6 +4479,13 @@ g_desktop_app_info_get_implementations (const gchar *interface)
  * The algorithm for determining matches is undefined and may change at
  * any time.
  *
+ * None of the search results are subjected to the normal validation
+ * checks performed by g_desktop_app_info_new() (for example, checking that
+ * the executable referenced by a result exists), and so it is possible for
+ * g_desktop_app_info_new() to return %NULL when passed an app ID returned by
+ * this function. It is expected that calling code will do this when
+ * subsequently creating a #GDesktopAppInfo for each result.
+ *
  * Returns: (array zero-terminated=1) (element-type GStrv) (transfer full): a
  *   list of strvs.  Free each item with g_strfreev() and free the outer
  *   list with g_free().
@@ -4632,7 +4641,8 @@ g_desktop_app_info_lookup_default_init (GDesktopAppInfoLookupInterface *iface)
  * in a GIO module. There is no reason for applications to use it
  * directly. Applications should use g_app_info_get_default_for_uri_scheme().
  *
- * Returns: (transfer full): #GAppInfo for given @uri_scheme or %NULL on error.
+ * Returns: (transfer full) (nullable): #GAppInfo for given @uri_scheme or
+ *    %NULL on error.
  *
  * Deprecated: 2.28: The #GDesktopAppInfoLookup interface is deprecated and
  *    unused by GIO.
index 08f72b2..32bdae8 100644 (file)
@@ -45,7 +45,7 @@
  *
  * If the #GDrive reports that media isn't automatically detected, one
  * can poll for media; typically one should not do this periodically
- * as a poll for media operation is potententially expensive and may
+ * as a poll for media operation is potentially expensive and may
  * spin up the drive creating noise.
  *
  * #GDrive supports starting and stopping drives with authentication
@@ -249,9 +249,9 @@ g_drive_get_volumes (GDrive *drive)
  * g_drive_is_media_check_automatic:
  * @drive: a #GDrive.
  * 
- * Checks if @drive is capabable of automatically detecting media changes.
+ * Checks if @drive is capable of automatically detecting media changes.
  * 
- * Returns: %TRUE if the @drive is capabable of automatically detecting 
+ * Returns: %TRUE if the @drive is capable of automatically detecting
  *     media changes, %FALSE otherwise.
  **/
 gboolean
index ec92071..cd9b721 100644 (file)
@@ -57,7 +57,7 @@ G_BEGIN_DECLS
  * @is_removable: Returns %TRUE if the #GDrive and/or its media is considered removable by the user. Since 2.50.
  * @is_media_removable: Returns %TRUE if the #GDrive supports removal and insertion of media.
  * @has_media: Returns %TRUE if the #GDrive has media inserted.
- * @is_media_check_automatic: Returns %TRUE if the #GDrive is capabable of automatically detecting media changes.
+ * @is_media_check_automatic: Returns %TRUE if the #GDrive is capable of automatically detecting media changes.
  * @can_poll_for_media: Returns %TRUE if the #GDrive is capable of manually polling for media change.
  * @can_eject: Returns %TRUE if the #GDrive can eject media.
  * @eject: Ejects a #GDrive.
index 1ce97d3..bdbf890 100644 (file)
@@ -59,7 +59,7 @@ g_dtls_client_connection_default_init (GDtlsClientConnectionInterface *iface)
    * GDtlsClientConnection:validation-flags:
    *
    * What steps to perform when validating a certificate received from
-   * a server. Server certificates that fail to validate in all of the
+   * a server. Server certificates that fail to validate in any of the
    * ways indicated here will be rejected unless the application
    * overrides the default via #GDtlsConnection::accept-certificate.
    *
index e019d3b..2704133 100644 (file)
@@ -109,7 +109,7 @@ g_dtls_connection_default_init (GDtlsConnectionInterface *iface)
                                                             G_PARAM_CONSTRUCT_ONLY |
                                                             G_PARAM_STATIC_STRINGS));
   /**
-   * GDtlsConnection:database:
+   * GDtlsConnection:database: (nullable)
    *
    * The certificate database to use when verifying this TLS connection.
    * If no certificate database is set, then the default database will be
@@ -125,7 +125,7 @@ g_dtls_connection_default_init (GDtlsConnectionInterface *iface)
                                                             G_PARAM_READWRITE |
                                                             G_PARAM_STATIC_STRINGS));
   /**
-   * GDtlsConnection:interaction:
+   * GDtlsConnection:interaction: (nullable)
    *
    * A #GTlsInteraction object to be used when the connection or certificate
    * database need to interact with the user. This will be used to prompt the
@@ -192,12 +192,11 @@ g_dtls_connection_default_init (GDtlsConnectionInterface *iface)
                                                             G_PARAM_READWRITE |
                                                             G_PARAM_STATIC_STRINGS));
   /**
-   * GDtlsConnection:peer-certificate:
+   * GDtlsConnection:peer-certificate: (nullable)
    *
    * The connection's peer's certificate, after the TLS handshake has
-   * completed and the certificate has been accepted. Note in
-   * particular that this is not yet set during the emission of
-   * #GDtlsConnection::accept-certificate.
+   * completed or failed. Note in particular that this is not yet set
+   * during the emission of #GDtlsConnection::accept-certificate.
    *
    * (You can watch for a #GObject::notify signal on this property to
    * detect when a handshake has occurred.)
@@ -214,7 +213,7 @@ g_dtls_connection_default_init (GDtlsConnectionInterface *iface)
   /**
    * GDtlsConnection:peer-certificate-errors:
    *
-   * The errors noticed-and-ignored while verifying
+   * The errors noticed while verifying
    * #GDtlsConnection:peer-certificate. Normally this should be 0, but
    * it may not be if #GDtlsClientConnection:validation-flags is not
    * %G_TLS_CERTIFICATE_VALIDATE_ALL, or if
@@ -232,7 +231,7 @@ g_dtls_connection_default_init (GDtlsConnectionInterface *iface)
                                                            G_PARAM_READABLE |
                                                            G_PARAM_STATIC_STRINGS));
   /**
-   * GDtlsConnection:advertised-protocols:
+   * GDtlsConnection:advertised-protocols: (nullable)
    *
    * The list of application-layer protocols that the connection
    * advertises that it is willing to speak. See
@@ -328,7 +327,7 @@ g_dtls_connection_default_init (GDtlsConnectionInterface *iface)
 /**
  * g_dtls_connection_set_database:
  * @conn: a #GDtlsConnection
- * @database: a #GTlsDatabase
+ * @database: (nullable): a #GTlsDatabase
  *
  * Sets the certificate database that is used to verify peer certificates.
  * This is set to the default database by default. See
@@ -360,7 +359,7 @@ g_dtls_connection_set_database (GDtlsConnection *conn,
  * Gets the certificate database that @conn uses to verify
  * peer certificates. See g_dtls_connection_set_database().
  *
- * Returns: (transfer none): the certificate database that @conn uses or %NULL
+ * Returns: (transfer none) (nullable): the certificate database that @conn uses or %NULL
  *
  * Since: 2.48
  */
@@ -422,7 +421,7 @@ g_dtls_connection_set_certificate (GDtlsConnection *conn,
  * Gets @conn's certificate, as set by
  * g_dtls_connection_set_certificate().
  *
- * Returns: (transfer none): @conn's certificate, or %NULL
+ * Returns: (transfer none) (nullable): @conn's certificate, or %NULL
  *
  * Since: 2.48
  */
@@ -472,7 +471,7 @@ g_dtls_connection_set_interaction (GDtlsConnection *conn,
  * for things like prompting the user for passwords. If %NULL is returned, then
  * no user interaction will occur for this connection.
  *
- * Returns: (transfer none): The interaction object.
+ * Returns: (transfer none) (nullable): The interaction object.
  *
  * Since: 2.48
  */
@@ -494,11 +493,11 @@ g_dtls_connection_get_interaction (GDtlsConnection       *conn)
  * g_dtls_connection_get_peer_certificate:
  * @conn: a #GDtlsConnection
  *
- * Gets @conn's peer's certificate after the handshake has completed.
- * (It is not set during the emission of
+ * Gets @conn's peer's certificate after the handshake has completed
+ * or failed. (It is not set during the emission of
  * #GDtlsConnection::accept-certificate.)
  *
- * Returns: (transfer none): @conn's peer's certificate, or %NULL
+ * Returns: (transfer none) (nullable): @conn's peer's certificate, or %NULL
  *
  * Since: 2.48
  */
@@ -521,8 +520,8 @@ g_dtls_connection_get_peer_certificate (GDtlsConnection *conn)
  * @conn: a #GDtlsConnection
  *
  * Gets the errors associated with validating @conn's peer's
- * certificate, after the handshake has completed. (It is not set
- * during the emission of #GDtlsConnection::accept-certificate.)
+ * certificate, after the handshake has completed or failed. (It is
+ * not set during the emission of #GDtlsConnection::accept-certificate.)
  *
  * Returns: @conn's peer's certificate errors
  *
index 0e4bfc2..a38ac09 100644 (file)
@@ -38,7 +38,7 @@
  *
  * Keys are strings that contain a key namespace and a key name, separated
  * by a colon, e.g. "namespace::keyname". Namespaces are included to sort
- * key-value pairs by namespaces for relevance. Keys can be retrived
+ * key-value pairs by namespaces for relevance. Keys can be retrieved
  * using wildcards, e.g. "standard::*" will return all of the keys in the
  * "standard" namespace.
  *
index 1709c5f..0a2516e 100644 (file)
@@ -63,4 +63,3 @@ G_END_DECLS
 
 
 #endif /* __G_FILE_DESCRIPTOR_BASED_H__ */
-
index d96a798..ac2e4eb 100644 (file)
@@ -866,4 +866,3 @@ g_file_enumerator_real_close_finish (GFileEnumerator  *enumerator,
 
   return g_task_propagate_boolean (G_TASK (result), error);
 }
-
index 5ec5ec4..c871809 100644 (file)
@@ -830,7 +830,7 @@ _g_file_info_get_attribute_value (GFileInfo  *info,
  * @info: a #GFileInfo.
  * @attribute: a file attribute key.
  *
- * Gets the value of a attribute, formated as a string.
+ * Gets the value of a attribute, formatted as a string.
  * This escapes things as needed to make the string valid
  * UTF-8.
  *
@@ -858,8 +858,8 @@ g_file_info_get_attribute_as_string (GFileInfo  *info,
  * Gets the value of a #GObject attribute. If the attribute does
  * not contain a #GObject, %NULL will be returned.
  *
- * Returns: (transfer none): a #GObject associated with the given @attribute, or
- * %NULL otherwise.
+ * Returns: (transfer none) (nullable): a #GObject associated with the given @attribute,
+ * or %NULL otherwise.
  **/
 GObject *
 g_file_info_get_attribute_object (GFileInfo  *info,
@@ -882,8 +882,8 @@ g_file_info_get_attribute_object (GFileInfo  *info,
  * Gets the value of a string attribute. If the attribute does
  * not contain a string, %NULL will be returned.
  *
- * Returns: the contents of the @attribute value as a UTF-8 string, or
- * %NULL otherwise.
+ * Returns: (nullable): the contents of the @attribute value as a UTF-8 string,
+ * or %NULL otherwise.
  **/
 const char *
 g_file_info_get_attribute_string (GFileInfo  *info,
@@ -906,7 +906,7 @@ g_file_info_get_attribute_string (GFileInfo  *info,
  * Gets the value of a byte string attribute. If the attribute does
  * not contain a byte string, %NULL will be returned.
  *
- * Returns: the contents of the @attribute value as a byte string, or
+ * Returns: (nullable): the contents of the @attribute value as a byte string, or
  * %NULL otherwise.
  **/
 const char *
@@ -930,8 +930,8 @@ g_file_info_get_attribute_byte_string (GFileInfo  *info,
  * Gets the value of a stringv attribute. If the attribute does
  * not contain a stringv, %NULL will be returned.
  *
- * Returns: (transfer none): the contents of the @attribute value as a stringv, or
- * %NULL otherwise. Do not free. These returned strings are UTF-8.
+ * Returns: (transfer none) (nullable): the contents of the @attribute value as a stringv,
+ * or %NULL otherwise. Do not free. These returned strings are UTF-8.
  *
  * Since: 2.22
  **/
@@ -1454,7 +1454,7 @@ g_file_info_set_attribute_int64  (GFileInfo  *info,
  * available in G_FILE_ATTRIBUTE_TRASH_DELETION_DATE. If the
  * G_FILE_ATTRIBUTE_TRASH_DELETION_DATE attribute is unset, %NULL is returned.
  *
- * Returns: a #GDateTime, or %NULL.
+ * Returns: (nullable): a #GDateTime, or %NULL.
  *
  * Since: 2.36
  **/
@@ -1708,7 +1708,8 @@ g_file_info_get_symbolic_icon (GFileInfo *info)
  *
  * Gets the file's content type.
  *
- * Returns: a string containing the file's content type.
+ * Returns: (nullable): a string containing the file's content type,
+ * or %NULL if unknown.
  **/
 const char *
 g_file_info_get_content_type (GFileInfo *info)
@@ -2294,7 +2295,7 @@ struct _GFileAttributeMatcher {
 
   GArray *sub_matchers;
 
-  /* Interator */
+  /* Iterator */
   guint32 iterator_ns;
   gint iterator_pos;
 };
@@ -2728,7 +2729,7 @@ g_file_attribute_matcher_enumerate_namespace (GFileAttributeMatcher *matcher,
  *
  * Gets the next matched attribute from a #GFileAttributeMatcher.
  *
- * Returns: a string containing the next attribute or %NULL if
+ * Returns: (nullable): a string containing the next attribute or, %NULL if
  * no more attribute exist.
  **/
 const char *
index d245951..e642d31 100644 (file)
@@ -157,7 +157,7 @@ typedef struct _GFileInfoClass   GFileInfoClass;
  *
  * A key in the "standard" namespace for getting the description of the file.
  * The description is a utf8 string that describes the file, generally containing
- * the filename, but can also contain furter information. Example descriptions
+ * the filename, but can also contain further information. Example descriptions
  * could be "filename (on hostname)" for a remote file or "filename (in trash)"
  * for a file in the trash. This is useful for instance as the window title
  * when displaying a directory or for a bookmarks menu.
index 5883b80..bad2c6e 100644 (file)
@@ -278,7 +278,7 @@ got_enum (GObject *source_object,
        g_object_unref (data->completer->basenames_dir);
       g_list_free_full (data->completer->basenames, g_free);
 
-      /* Mark uptodate with no basenames */
+      /* Mark up-to-date with no basenames */
       data->completer->basenames_dir = g_object_ref (data->dir);
       data->completer->basenames = NULL;
       data->completer->basenames_are_escaped = data->should_escape;
index 4f73d75..42c0a09 100644 (file)
@@ -558,7 +558,7 @@ g_icon_deserialize_emblemed (GVariant *value)
 
 /**
  * g_icon_deserialize:
- * @value: a #GVariant created with g_icon_serialize()
+ * @value: (transfer none): a #GVariant created with g_icon_serialize()
  *
  * Deserializes a #GIcon previously serialized using g_icon_serialize().
  *
@@ -653,7 +653,7 @@ g_icon_deserialize (GVariant *value)
  * makes sense to transfer the #GVariant between processes on the same machine,
  * (as opposed to over the network), and within the same file system namespace.
  *
- * Returns: (transfer full): a #GVariant, or %NULL when serialization fails.
+ * Returns: (transfer full): a #GVariant, or %NULL when serialization fails. The #GVariant will not be floating.
  *
  * Since: 2.38
  */
index 787c757..808fc39 100644 (file)
@@ -382,8 +382,8 @@ g_inet_address_init (GInetAddress *address)
  *
  * Parses @string as an IP address and creates a new #GInetAddress.
  *
- * Returns: a new #GInetAddress corresponding to @string, or %NULL if
- * @string could not be parsed.
+ * Returns: (nullable) (transfer full): a new #GInetAddress corresponding
+ * to @string, or %NULL if @string could not be parsed.
  *     Free the returned object with g_object_unref().
  *
  * Since: 2.22
index 2963aff..87bb4e5 100644 (file)
@@ -121,4 +121,3 @@ gboolean              g_inet_address_get_is_mc_site_local (GInetAddress
 G_END_DECLS
 
 #endif /* __G_INET_ADDRESS_H__ */
-
index ce5e285..1e73281 100644 (file)
@@ -82,4 +82,3 @@ gboolean          g_inet_address_mask_equal           (GInetAddressMask  *mask,
 G_END_DECLS
 
 #endif /* __G_INET_ADDRESS_MASK_H__ */
-
index 81a527f..d7c8134 100644 (file)
@@ -398,8 +398,8 @@ g_inet_socket_address_new (GInetAddress *address,
  * If @address is an IPv6 address, it can also contain a scope ID
  * (separated from the address by a `%`).
  *
- * Returns: a new #GInetSocketAddress, or %NULL if @address cannot be
- * parsed.
+ * Returns: (nullable) (transfer full): a new #GInetSocketAddress,
+ * or %NULL if @address cannot be parsed.
  *
  * Since: 2.40
  */
index f3fd76f..1670a43 100644 (file)
@@ -50,7 +50,7 @@
  * unreferenced).
  *
  * For bindings in languages where the native constructor supports
- * exceptions the binding could check for objects implemention %GInitable
+ * exceptions the binding could check for objects implementing %GInitable
  * during normal construction and automatically initialize them, throwing
  * an exception on failure.
  */
index 7900704..66bf858 100644 (file)
@@ -108,4 +108,3 @@ handle_mkdir (int argc, char *argv[], gboolean do_help)
   return retval;
 
 }
-
index ddf085f..4969b8b 100644 (file)
@@ -200,4 +200,3 @@ handle_save (int argc, char *argv[], gboolean do_help)
 
   return res ? 0 : 2;
 }
-
index 3532b73..f5d2dd5 100644 (file)
--- a/gio/gio.h
+++ b/gio/gio.h
 #undef __GIO_GIO_H_INSIDE__
 
 #endif /* __G_IO_H__ */
-
index 6154d43..cd3654a 100644 (file)
@@ -117,7 +117,7 @@ typedef enum {
 
 /**
  * GFileAttributeType:
- * @G_FILE_ATTRIBUTE_TYPE_INVALID: indicates an invalid or uninitalized type.
+ * @G_FILE_ATTRIBUTE_TYPE_INVALID: indicates an invalid or uninitialized type.
  * @G_FILE_ATTRIBUTE_TYPE_STRING: a null terminated UTF8 string.
  * @G_FILE_ATTRIBUTE_TYPE_BYTE_STRING: a zero terminated string of non-zero bytes.
  * @G_FILE_ATTRIBUTE_TYPE_BOOLEAN: a boolean value.
@@ -1423,11 +1423,12 @@ typedef enum
 /**
  * GCredentialsType:
  * @G_CREDENTIALS_TYPE_INVALID: Indicates an invalid native credential type.
- * @G_CREDENTIALS_TYPE_LINUX_UCRED: The native credentials type is a struct ucred.
- * @G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED: The native credentials type is a struct cmsgcred.
- * @G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED: The native credentials type is a struct sockpeercred. Added in 2.30.
- * @G_CREDENTIALS_TYPE_SOLARIS_UCRED: The native credentials type is a ucred_t. Added in 2.40.
- * @G_CREDENTIALS_TYPE_NETBSD_UNPCBID: The native credentials type is a struct unpcbid.
+ * @G_CREDENTIALS_TYPE_LINUX_UCRED: The native credentials type is a `struct ucred`.
+ * @G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED: The native credentials type is a `struct cmsgcred`.
+ * @G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED: The native credentials type is a `struct sockpeercred`. Added in 2.30.
+ * @G_CREDENTIALS_TYPE_SOLARIS_UCRED: The native credentials type is a `ucred_t`. Added in 2.40.
+ * @G_CREDENTIALS_TYPE_NETBSD_UNPCBID: The native credentials type is a `struct unpcbid`. Added in 2.42.
+ * @G_CREDENTIALS_TYPE_APPLE_XUCRED: The native credentials type is a `struct xucred`. Added in 2.66.
  *
  * Enumeration describing different kinds of native credential types.
  *
@@ -1440,7 +1441,8 @@ typedef enum
   G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED,
   G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED,
   G_CREDENTIALS_TYPE_SOLARIS_UCRED,
-  G_CREDENTIALS_TYPE_NETBSD_UNPCBID
+  G_CREDENTIALS_TYPE_NETBSD_UNPCBID,
+  G_CREDENTIALS_TYPE_APPLE_XUCRED,
 } GCredentialsType;
 
 /**
index c420260..f49ea3e 100644 (file)
@@ -444,7 +444,7 @@ is_valid_module_name (const gchar        *basename,
  *
  * This may not actually load and initialize all the types in each
  * module, some modules may be lazily loaded and initialized when
- * an extension point it implementes is used with e.g.
+ * an extension point it implements is used with e.g.
  * g_io_extension_point_get_extensions() or
  * g_io_extension_point_get_extension_by_name().
  *
@@ -586,7 +586,7 @@ g_io_modules_scan_all_in_directory_with_scope (const char     *dirname,
  *
  * This may not actually load and initialize all the types in each
  * module, some modules may be lazily loaded and initialized when
- * an extension point it implementes is used with e.g.
+ * an extension point it implements is used with e.g.
  * g_io_extension_point_get_extensions() or
  * g_io_extension_point_get_extension_by_name().
  *
index 924e39a..f708e77 100644 (file)
@@ -830,7 +830,7 @@ splice_cancelled_cb (GCancellable *cancellable,
  * @callback: (scope async): a #GAsyncReadyCallback.
  * @user_data: (closure): user data passed to @callback.
  *
- * Asyncronously splice the output stream of @stream1 to the input stream of
+ * Asynchronously splice the output stream of @stream1 to the input stream of
  * @stream2, and splice the output stream of @stream2 to the input stream of
  * @stream1.
  *
index c9ad8dd..995c9cb 100644 (file)
@@ -194,7 +194,7 @@ typedef struct _GSocketListener                             GSocketListener;
 /**
  * GSocketService:
  *
- * A helper class for handling accepting incomming connections in the
+ * A helper class for handling accepting incoming connections in the
  * glib mainloop.
  *
  * Since: 2.22
index 0dde9ad..eb797ca 100644 (file)
@@ -73,7 +73,7 @@ G_DEFINE_INTERFACE (GListModel, g_list_model, G_TYPE_OBJECT)
  * it are gone.
  *
  * On the other side, a consumer is expected only to hold references on
- * objects that are currently "user visible", in order to faciliate the
+ * objects that are currently "user visible", in order to facilitate the
  * maximum level of laziness in the implementation of the list and to
  * reduce the required number of signal connections at a given time.
  *
index 5d01a4b..72ef947 100644 (file)
@@ -1511,7 +1511,7 @@ g_local_file_delete (GFile         *file,
     {
       int errsv = errno;
 
-      /* Posix allows EEXIST too, but the clearer error
+      /* Posix allows EEXIST too, but the more sane error
         is G_IO_ERROR_NOT_FOUND, and it's what nautilus
         expects */
       if (errsv == EEXIST)
index 5245567..db10f34 100644 (file)
@@ -123,6 +123,10 @@ _g_local_file_info_create_etag (GLocalFileStat *statbuf)
 {
   glong sec, usec;
 
+#if defined (G_OS_WIN32)
+  sec = statbuf->st_mtim.tv_sec;
+  usec = statbuf->st_mtim.tv_nsec / 1000;
+#else
   sec = statbuf->st_mtime;
 #if defined (HAVE_STRUCT_STAT_ST_MTIMENSEC)
   usec = statbuf->st_mtimensec / 1000;
@@ -131,6 +135,7 @@ _g_local_file_info_create_etag (GLocalFileStat *statbuf)
 #else
   usec = 0;
 #endif
+#endif
 
   return g_strdup_printf ("%lu:%lu", sec, usec);
 }
@@ -1000,7 +1005,13 @@ set_info_from_stat (GFileInfo             *info,
                                            statbuf->allocated_size);
 
 #endif
-  
+
+#if defined (G_OS_WIN32)
+  _g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED, statbuf->st_mtim.tv_sec);
+  _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_USEC, statbuf->st_mtim.tv_nsec / 1000);
+  _g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS, statbuf->st_atim.tv_sec);
+  _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS_USEC, statbuf->st_atim.tv_nsec / 1000);
+#else
   _g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED, statbuf->st_mtime);
 #if defined (HAVE_STRUCT_STAT_ST_MTIMENSEC)
   _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_USEC, statbuf->st_mtimensec / 1000);
@@ -1014,6 +1025,7 @@ set_info_from_stat (GFileInfo             *info,
 #elif defined (HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC)
   _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS_USEC, statbuf->st_atim.tv_nsec / 1000);
 #endif
+#endif
 
 #ifndef G_OS_WIN32
   /* Microsoft uses st_ctime for file creation time,
@@ -1040,7 +1052,8 @@ set_info_from_stat (GFileInfo             *info,
 #elif defined (HAVE_STRUCT_STAT_ST_BIRTHTIM)
   _g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_CREATED, statbuf->st_birthtim);
 #elif defined (G_OS_WIN32)
-  _g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_CREATED, statbuf->st_ctime);
+  _g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_CREATED, statbuf->st_ctim.tv_sec);
+  _g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_CREATED_USEC, statbuf->st_ctim.tv_nsec / 1000);
 #endif
 
   if (_g_file_attribute_matcher_matches_id (attribute_matcher,
@@ -2122,7 +2135,7 @@ get_uint32 (const GFileAttributeValue  *value,
   return TRUE;
 }
 
-#ifdef HAVE_UTIMES
+#if defined (HAVE_UTIMES) || defined (G_OS_WIN32)
 static gboolean
 get_uint64 (const GFileAttributeValue  *value,
            guint64                    *val_out,
@@ -2355,7 +2368,180 @@ set_symlink (char                       *filename,
 }
 #endif
 
-#ifdef HAVE_UTIMES
+#if defined (G_OS_WIN32)
+/* From
+ * https://support.microsoft.com/en-ca/help/167296/how-to-convert-a-unix-time-t-to-a-win32-filetime-or-systemtime
+ * FT = UT * 10000000 + 116444736000000000.
+ * Converts unix epoch time (a signed 64-bit integer) to FILETIME.
+ * Can optionally use a more precise timestamp that has
+ * a fraction of a second expressed in nanoseconds.
+ * UT must be between January 1st of year 1601 and December 31st of year 30827.
+ * nsec must be non-negative and < 1000000000.
+ * Returns TRUE if conversion succeeded, FALSE otherwise.
+ *
+ * The function that does the reverse can be found in
+ * glib/gstdio.c.
+ */
+static gboolean
+_g_win32_unix_time_to_filetime (gint64     ut,
+                                gint32     nsec,
+                                FILETIME  *ft,
+                                GError   **error)
+{
+  gint64 result;
+  /* 1 unit of FILETIME is 100ns */
+  const gint64 hundreds_of_usec_per_sec = 10000000;
+  /* The difference between January 1, 1601 UTC (FILETIME epoch) and UNIX epoch
+   * in hundreds of nanoseconds.
+   */
+  const gint64 filetime_unix_epoch_offset = 116444736000000000;
+  /* This is the maximum timestamp that SYSTEMTIME can
+   * represent (last millisecond of the year 30827).
+   * Since FILETIME and SYSTEMTIME are both used on Windows,
+   * we use this as a limit (FILETIME can support slightly
+   * larger interval, up to year 30828).
+   */
+  const gint64 max_systemtime = 0x7fff35f4f06c58f0;
+
+  g_return_val_if_fail (ft != NULL, FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+  if (nsec < 0)
+    {
+      g_set_error (error, G_IO_ERROR,
+                   G_IO_ERROR_INVALID_DATA,
+                   _("Extra nanoseconds %d for UNIX timestamp %lld are negative"),
+                   nsec, ut);
+      return FALSE;
+    }
+
+  if (nsec >= hundreds_of_usec_per_sec * 100)
+    {
+      g_set_error (error, G_IO_ERROR,
+                   G_IO_ERROR_INVALID_DATA,
+                   _("Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"),
+                   nsec, ut);
+      return FALSE;
+    }
+
+  if (ut >= (G_MAXINT64 / hundreds_of_usec_per_sec) ||
+      (ut * hundreds_of_usec_per_sec) >= (G_MAXINT64 - filetime_unix_epoch_offset))
+    {
+      g_set_error (error, G_IO_ERROR,
+                   G_IO_ERROR_INVALID_DATA,
+                   _("UNIX timestamp %lld does not fit into 64 bits"),
+                   ut);
+      return FALSE;
+    }
+
+  result = ut * hundreds_of_usec_per_sec + filetime_unix_epoch_offset + nsec / 100;
+
+  if (result >= max_systemtime || result < 0)
+    {
+      g_set_error (error, G_IO_ERROR,
+                   G_IO_ERROR_INVALID_DATA,
+                   _("UNIX timestamp %lld is outside of the range supported by Windows"),
+                   ut);
+      return FALSE;
+    }
+
+  ft->dwLowDateTime = (DWORD) (result);
+  ft->dwHighDateTime = (DWORD) (result >> 32);
+
+  return TRUE;
+}
+
+static gboolean
+set_mtime_atime (const char                 *filename,
+                const GFileAttributeValue  *mtime_value,
+                const GFileAttributeValue  *mtime_usec_value,
+                const GFileAttributeValue  *atime_value,
+                const GFileAttributeValue  *atime_usec_value,
+                GError                    **error)
+{
+  BOOL res;
+  guint64 val = 0;
+  guint32 val_usec = 0;
+  gunichar2 *filename_utf16;
+  SECURITY_ATTRIBUTES sec = { sizeof (SECURITY_ATTRIBUTES), NULL, FALSE };
+  HANDLE file_handle;
+  FILETIME mtime;
+  FILETIME atime;
+  FILETIME *p_mtime = NULL;
+  FILETIME *p_atime = NULL;
+  DWORD gle;
+
+  /* ATIME */
+  if (atime_value)
+    {
+      if (!get_uint64 (atime_value, &val, error))
+        return FALSE;
+      val_usec = 0;
+      if (atime_usec_value &&
+          !get_uint32 (atime_usec_value, &val_usec, error))
+       return FALSE;
+      if (!_g_win32_unix_time_to_filetime (val, val_usec, &atime, error))
+        return FALSE;
+      p_atime = &atime;
+    }
+
+  /* MTIME */
+  if (mtime_value)
+    {
+      if (!get_uint64 (mtime_value, &val, error))
+       return FALSE;
+      val_usec = 0;
+      if (mtime_usec_value &&
+          !get_uint32 (mtime_usec_value, &val_usec, error))
+       return FALSE;
+      if (!_g_win32_unix_time_to_filetime (val, val_usec, &mtime, error))
+        return FALSE;
+      p_mtime = &mtime;
+    }
+
+  filename_utf16 = g_utf8_to_utf16 (filename, -1, NULL, NULL, error);
+
+  if (filename_utf16 == NULL)
+    {
+      g_prefix_error (error,
+                      _("File name “%s” cannot be converted to UTF-16"),
+                      filename);
+      return FALSE;
+    }
+
+  file_handle = CreateFileW (filename_utf16,
+                             FILE_WRITE_ATTRIBUTES,
+                             FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE,
+                             &sec,
+                             OPEN_EXISTING,
+                             FILE_FLAG_BACKUP_SEMANTICS,
+                             NULL);
+  gle = GetLastError ();
+  g_clear_pointer (&filename_utf16, g_free);
+
+  if (file_handle == INVALID_HANDLE_VALUE)
+    {
+      g_set_error (error, G_IO_ERROR,
+                   g_io_error_from_errno (gle),
+                   _("File “%s” cannot be opened: Windows Error %lu"),
+                   filename, gle);
+
+      return FALSE;
+    }
+
+  res = SetFileTime (file_handle, NULL, p_atime, p_mtime);
+  gle = GetLastError ();
+  CloseHandle (file_handle);
+
+  if (!res)
+    g_set_error (error, G_IO_ERROR,
+                 g_io_error_from_errno (gle),
+                 _("Error setting modification or access time for file “%s”: %lu"),
+                 filename, gle);
+
+  return res;
+}
+#elif defined (HAVE_UTIMES)
 static int
 lazy_stat (char        *filename, 
            struct stat *statbuf, 
@@ -2535,7 +2721,7 @@ _g_local_file_info_set_attribute (char                 *filename,
     return set_symlink (filename, &value, error);
 #endif
 
-#ifdef HAVE_UTIMES
+#if defined (HAVE_UTIMES) || defined (G_OS_WIN32)
   else if (strcmp (attribute, G_FILE_ATTRIBUTE_TIME_MODIFIED) == 0)
     return set_mtime_atime (filename, &value, NULL, NULL, NULL, error);
   else if (strcmp (attribute, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC) == 0)
@@ -2602,9 +2788,11 @@ _g_local_file_info_set_attributes  (char                 *filename,
   GFileAttributeValue *value;
 #ifdef G_OS_UNIX
   GFileAttributeValue *uid, *gid;
-#ifdef HAVE_UTIMES
+#endif
+#if defined (HAVE_UTIMES) || defined (G_OS_WIN32)
   GFileAttributeValue *mtime, *mtime_usec, *atime, *atime_usec;
 #endif
+#if defined (G_OS_UNIX) || defined (G_OS_WIN32)
   GFileAttributeStatus status;
 #endif
   gboolean res;
@@ -2675,7 +2863,7 @@ _g_local_file_info_set_attributes  (char                 *filename,
        
     }
 
-#ifdef HAVE_UTIMES
+#if defined (HAVE_UTIMES) || defined (G_OS_WIN32)
   /* Group all time settings into one call
    * Change times as the last thing to avoid it changing due to metadata changes
    */
index 7a65661..4c58c86 100644 (file)
@@ -94,5 +94,3 @@ gboolean   _g_local_file_info_set_attributes  (char                   *filename,
 G_END_DECLS
 
 #endif /* __G_FILE_LOCAL_FILE_INFO_H__ */
-
-
index f9571c4..6858907 100644 (file)
@@ -2629,4 +2629,3 @@ _g_cclosure_marshal_VOID__VARIANT_BOXEDv (GClosure *closure,
   if ((param_types[1] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg1 != NULL)
     g_boxed_free (param_types[1] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg1);
 }
-
index 4368ee3..ae0d3f7 100644 (file)
  * - Run a garbage collection cycle
  * - Try and compress fragmented allocations
  * - Exit on idle if the process has no reason to stay around
+ * - Call [`malloc_trim(3)`](man:malloc_trim) to return cached heap pages to
+ *   the kernel (if supported by your libc)
+ *
+ * Note that some actions may not always improve system performance, and so
+ * should be profiled for your application. `malloc_trim()`, for example, may
+ * make future heap allocations slower (due to releasing cached heap pages back
+ * to the kernel).
  *
  * See #GMemoryMonitorWarningLevel for details on the various warning levels.
  *
index b3f3fb7..49a416c 100644 (file)
@@ -309,7 +309,7 @@ g_menu_model_real_iterate_item_attributes (GMenuModel *model,
   else
     {
       g_critical ("GMenuModel implementation '%s' doesn't override iterate_item_attributes() "
-                  "and fails to return valid values from get_item_attributes()",
+                  "and fails to return sane values from get_item_attributes()",
                   G_OBJECT_TYPE_NAME (model));
       result = NULL;
     }
@@ -373,7 +373,7 @@ g_menu_model_real_iterate_item_links (GMenuModel *model,
   else
     {
       g_critical ("GMenuModel implementation '%s' doesn't override iterate_item_links() "
-                  "and fails to return valid values from get_item_links()",
+                  "and fails to return sane values from get_item_links()",
                   G_OBJECT_TYPE_NAME (model));
       result = NULL;
     }
@@ -429,7 +429,7 @@ g_menu_model_class_init (GMenuModelClass *class)
    * @removed: the number of items removed
    * @added: the number of items added
    *
-   * Emitted when a change has occured to the menu.
+   * Emitted when a change has occurred to the menu.
    *
    * The only changes that can occur to a menu is that items are removed
    * or added.  Items may not change (except by being removed and added
index 39762e5..05fc506 100644 (file)
@@ -431,7 +431,7 @@ g_mount_operation_class_init (GMountOperationClass *klass)
   /**
    * GMountOperation::show-unmount-progress:
    * @op: a #GMountOperation:
-   * @message: string containing a mesage to display to the user
+   * @message: string containing a message to display to the user
    * @time_left: the estimated time left before the operation completes,
    *     in microseconds, or -1
    * @bytes_left: the amount of bytes to be written before the operation
index 40fe3ab..92225f1 100644 (file)
@@ -318,7 +318,7 @@ g_network_service_get_domain (GNetworkService *srv)
  * g_network_service_get_scheme:
  * @srv: a #GNetworkService
  *
- * Get's the URI scheme used to resolve proxies. By default, the service name
+ * Gets the URI scheme used to resolve proxies. By default, the service name
  * is used as scheme.
  *
  * Returns: @srv's scheme name
index 9cdb4ab..e4d76cb 100644 (file)
@@ -73,4 +73,3 @@ void                 g_network_service_set_scheme    (GNetworkService *srv, cons
 G_END_DECLS
 
 #endif /* __G_NETWORK_SERVICE_H__ */
-
index 463b2da..849d635 100644 (file)
@@ -326,7 +326,7 @@ get_bundle_for_id (CFStringRef bundle_id)
   CFArrayRef urls = LSCopyApplicationURLsForBundleIdentifier (bundle_id, NULL);
   if (urls)
     {
-      /* TODO: if there's multiple, we should perhaps prefer one thats in $HOME,
+      /* TODO: if there's multiple, we should perhaps prefer one that's in $HOME,
        * instead of just always picking the first.
        */
       app_url = CFArrayGetValueAtIndex (urls, 0);
index dd6046d..87b61a4 100644 (file)
@@ -2643,8 +2643,6 @@ g_output_stream_real_writev_finish (GOutputStream   *stream,
 typedef struct {
   GInputStream *source;
   GOutputStreamSpliceFlags flags;
-  guint istream_closed : 1;
-  guint ostream_closed : 1;
   gssize n_read;
   gssize n_written;
   gsize bytes_copied;
@@ -2667,11 +2665,11 @@ real_splice_async_complete_cb (GTask *task)
   SpliceData *op = g_task_get_task_data (task);
 
   if (op->flags & G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE &&
-      !op->istream_closed)
+      !g_input_stream_is_closed (op->source))
     return;
 
   if (op->flags & G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET &&
-      !op->ostream_closed)
+      !g_output_stream_is_closed (g_task_get_source_object (task)))
     return;
 
   if (op->error != NULL)
@@ -2693,10 +2691,8 @@ real_splice_async_close_input_cb (GObject      *source,
                                   gpointer      user_data)
 {
   GTask *task = user_data;
-  SpliceData *op = g_task_get_task_data (task);
 
   g_input_stream_close_finish (G_INPUT_STREAM (source), res, NULL);
-  op->istream_closed = TRUE;
 
   real_splice_async_complete_cb (task);
 }
@@ -2711,7 +2707,6 @@ real_splice_async_close_output_cb (GObject      *source,
   GError **error = (op->error == NULL) ? &op->error : NULL;
 
   g_output_stream_internal_close_finish (G_OUTPUT_STREAM (source), res, error);
-  op->ostream_closed = TRUE;
 
   real_splice_async_complete_cb (task);
 }
@@ -2958,7 +2953,7 @@ close_async_thread (GTask        *task,
       result = class->flush (stream, cancellable, &error);
     }
 
-  /* Auto handling of cancelation disabled, and ignore
+  /* Auto handling of cancellation disabled, and ignore
      cancellation, since we want to close things anyway, although
      possibly in a quick-n-dirty way. At least we never want to leak
      open handles */
index ce50312..823c83c 100644 (file)
@@ -102,4 +102,3 @@ G_END_DECLS
 
 
 #endif /* __G_POLLABLE_INPUT_STREAM_H__ */
-
index c282afd..e27841e 100644 (file)
@@ -123,4 +123,3 @@ G_END_DECLS
 
 
 #endif /* __G_POLLABLE_OUTPUT_STREAM_H__ */
-
index 0b78caa..a02b31f 100644 (file)
@@ -233,7 +233,7 @@ g_proxy_address_class_init (GProxyAddressClass *klass)
   g_object_class_install_property (gobject_class,
                                   PROP_DESTINATION_PROTOCOL,
                                   g_param_spec_string ("destination-protocol",
-                                                      P_("Destionation Protocol"),
+                                                      P_("Destination Protocol"),
                                                       P_("The proxy destination protocol"),
                                                       NULL,
                                                       G_PARAM_READWRITE |
index e1eabdb..ae00599 100644 (file)
@@ -44,4 +44,3 @@ GType g_proxy_resolver_portal_get_type (void);
 G_END_DECLS
 
 #endif /* __G_PROXY_RESOLVER_PORTAL_H__ */
-
index b0e295a..bae066a 100644 (file)
@@ -745,7 +745,7 @@ registry_cache_update_node (GNode        *cache_node,
 }
 
 /* Blocking notifications is a useful optimisation. When a change is made
- * through GSettings we update the cache manually, but a notifcation is
+ * through GSettings we update the cache manually, but a notification is
  * triggered as well. This function is also used for nested notifications,
  * eg. if /test and /test/foo are watched, and /test/foo/value is changed then
  * we will get notified both for /test/foo and /test and it is helpful to block
index 6886683..28e8157 100644 (file)
@@ -168,7 +168,7 @@ g_seekable_can_truncate (GSeekable *seekable)
  * 
  * Sets the length of the stream to @offset. If the stream was previously
  * larger than @offset, the extra data is discarded. If the stream was
- * previouly shorter than @offset, it is extended with NUL ('\0') bytes.
+ * previously shorter than @offset, it is extended with NUL ('\0') bytes.
  * 
  * If @cancellable is not %NULL, then the operation can be cancelled by
  * triggering the cancellable object from another thread. If the operation
index 2a15bdd..1958643 100644 (file)
@@ -2249,7 +2249,7 @@ g_socket_w32_get_adapter_ipv4_addr (const gchar *name_or_ip)
    */
   if_index = if_nametoindex (name_or_ip);
 
-  /* Step 3: Prepare wchar string for friendly name comparision */
+  /* Step 3: Prepare wchar string for friendly name comparison */
   if (if_index == 0)
     {
       size_t if_name_len = strlen (name_or_ip);
@@ -2259,7 +2259,7 @@ g_socket_w32_get_adapter_ipv4_addr (const gchar *name_or_ip)
       wchar_name_or_ip = (wchar_t *) g_try_malloc ((if_name_len + 1) * sizeof(wchar_t));
       if (wchar_name_or_ip)
         mbstowcs (wchar_name_or_ip, name_or_ip, if_name_len + 1);
-      /* NOTE: Even if malloc fails here, some comparisions can still be done later... so no exit here! */
+      /* NOTE: Even if malloc fails here, some comparisons can still be done later... so no exit here! */
     }
 
   /*
@@ -3117,6 +3117,9 @@ g_socket_get_available_bytes (GSocket *socket)
 
   g_return_val_if_fail (G_IS_SOCKET (socket), -1);
 
+  if (!check_socket (socket, NULL))
+    return -1;
+
 #ifdef SO_NREAD
   if (!g_socket_get_option (socket, SOL_SOCKET, SO_NREAD, &avail, NULL))
       return -1;
@@ -3745,7 +3748,6 @@ g_socket_is_closed (GSocket *socket)
   return socket->priv->closed;
 }
 
-#ifdef G_OS_WIN32
 /* Broken source, used on errors */
 static gboolean
 broken_dispatch (GSource     *source,
@@ -3763,6 +3765,7 @@ static GSourceFuncs broken_funcs =
   NULL
 };
 
+#ifdef G_OS_WIN32
 static gint
 network_events_for_condition (GIOCondition condition)
 {
@@ -4090,6 +4093,12 @@ socket_source_new (GSocket      *socket,
     }
 #endif
 
+  if (!check_socket (socket, NULL))
+    {
+      g_warning ("Socket check failed");
+      return g_source_new (&broken_funcs, sizeof (GSource));
+    }
+
   condition |= G_IO_HUP | G_IO_ERR | G_IO_NVAL;
 
   source = g_source_new (&socket_source_funcs, sizeof (GSocketSource));
@@ -5910,6 +5919,7 @@ g_socket_receive_message (GSocket                 *socket,
  * - OpenBSD since GLib 2.30
  * - Solaris, Illumos and OpenSolaris since GLib 2.40
  * - NetBSD since GLib 2.42
+ * - macOS, tvOS, iOS since GLib 2.66
  *
  * Other ways to obtain credentials from a foreign peer includes the
  * #GUnixCredentialsMessage type and
@@ -5930,6 +5940,9 @@ g_socket_get_credentials (GSocket   *socket,
   g_return_val_if_fail (G_IS_SOCKET (socket), NULL);
   g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
+  if (!check_socket (socket, error))
+    return NULL;
+
   ret = NULL;
 
 #if G_CREDENTIALS_SOCKET_GET_CREDENTIALS_SUPPORTED
@@ -5951,6 +5964,41 @@ g_socket_get_credentials (GSocket   *socket,
                                   native_creds_buf);
       }
   }
+#elif G_CREDENTIALS_USE_APPLE_XUCRED
+  {
+    struct xucred cred;
+    socklen_t optlen = sizeof (cred);
+
+    if (getsockopt (socket->priv->fd,
+                    0,
+                    LOCAL_PEERCRED,
+                    &cred,
+                    &optlen) == 0)
+      {
+        if (cred.cr_version == XUCRED_VERSION)
+          {
+            ret = g_credentials_new ();
+            g_credentials_set_native (ret,
+                                      G_CREDENTIALS_NATIVE_TYPE,
+                                      &cred);
+          }
+        else
+          {
+            g_set_error (error,
+                         G_IO_ERROR,
+                         G_IO_ERROR_NOT_SUPPORTED,
+                         /* No point in translating this! */
+                         "struct xucred cr_version %u != %u",
+                         cred.cr_version, XUCRED_VERSION);
+            /* Reuse a translatable string we already have */
+            g_prefix_error (error,
+                            _("Unable to read socket credentials: %s"),
+                            "");
+
+            return NULL;
+          }
+      }
+  }
 #elif G_CREDENTIALS_USE_NETBSD_UNPCBID
   {
     struct unpcbid cred;
@@ -6046,6 +6094,11 @@ g_socket_get_option (GSocket  *socket,
 
   g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
 
+  /* g_socket_get_option() is called during socket init, so skip the init checks
+   * in check_socket() */
+  if (socket->priv->inited && !check_socket (socket, error))
+    return FALSE;
+
   *value = 0;
   size = sizeof (gint);
   if (getsockopt (socket->priv->fd, level, optname, value, &size) != 0)
@@ -6109,6 +6162,9 @@ g_socket_set_option (GSocket  *socket,
 
   g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
 
+  if (!check_socket (socket, error))
+    return FALSE;
+
   if (setsockopt (socket->priv->fd, level, optname, &value, sizeof (gint)) == 0)
     return TRUE;
 
@@ -6137,4 +6193,3 @@ g_socket_set_option (GSocket  *socket,
 #endif
   return FALSE;
 }
-
index f25a1b6..4dc1e8f 100644 (file)
@@ -48,7 +48,7 @@ typedef struct _GSocketServiceClass                         GSocketServiceClass;
 
 /**
  * GSocketServiceClass:
- * @incomming: signal emitted when new connections are accepted
+ * @incoming: signal emitted when new connections are accepted
  *
  * Class structure for #GSocketService.
  */
index a6544df..09b7fca 100644 (file)
@@ -323,7 +323,7 @@ set_connect_msg (guint8       *msg,
  * +----+-----+-------+------+----------+----------+
  * | 1  |  1  | X'00' |  1   | Variable |    2     |
  * +----+-----+-------+------+----------+----------+
- * This reply need to be read by small part to determin size. Buffer
+ * This reply need to be read by small part to determine size. Buffer
  * size is determined in function of the biggest part to read.
  *
  * The parser only requires 4 bytes.
index 3ef16f1..4956915 100644 (file)
@@ -56,4 +56,3 @@ GList       *g_srv_target_list_sort    (GList       *targets);
 G_END_DECLS
 
 #endif /* __G_SRV_TARGET_H__ */
-
index 8cc9354..b5515c7 100644 (file)
@@ -1595,23 +1595,6 @@ g_subprocess_communicate_internal (GSubprocess         *subprocess,
   if (subprocess->stdin_pipe)
     {
       g_assert (stdin_buf != NULL);
-
-#ifdef G_OS_UNIX
-      /* We're doing async writes to the pipe, and the async write mechanism assumes
-       * that streams polling as writable do SOME progress (possibly partial) and then
-       * stop, but never block.
-       *
-       * However, for blocking pipes, unix will return writable if there is *any* space left
-       * but still block until the full buffer size is available before returning from write.
-       * So, to avoid async blocking on the main loop we make this non-blocking here.
-       *
-       * It should be safe to change the fd because we're the only user at this point as
-       * per the g_subprocess_communicate() docs, and all the code called by this function
-       * properly handles non-blocking fds.
-       */
-      g_unix_set_fd_nonblocking (g_unix_output_stream_get_fd (G_UNIX_OUTPUT_STREAM (subprocess->stdin_pipe)), TRUE, NULL);
-#endif
-
       state->stdin_buf = g_memory_input_stream_new_from_bytes (stdin_buf);
       g_output_stream_splice_async (subprocess->stdin_pipe, (GInputStream*)state->stdin_buf,
                                     G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE | G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET,
index 2059e51..e2877dc 100644 (file)
@@ -911,7 +911,7 @@ static void g_task_thread_complete (GTask *task);
  * g_task_return_error_if_cancelled() and then returned.
  *
  * This allows you to create a cancellable wrapper around an
- * uninterruptable function. The #GTaskThreadFunc just needs to be
+ * uninterruptible function. The #GTaskThreadFunc just needs to be
  * careful that it does not modify any externally-visible state after
  * it has been cancelled. To do that, the thread should call
  * g_task_set_return_on_cancel() again to (atomically) set
index 9c00869..7c3bf69 100644 (file)
@@ -188,7 +188,7 @@ g_tcp_wrapper_connection_new (GIOStream *base_io_stream,
  * g_tcp_wrapper_connection_get_base_io_stream:
  * @conn: a #GTcpWrapperConnection
  *
- * Get's @conn's base #GIOStream
+ * Gets @conn's base #GIOStream
  *
  * Returns: (transfer none): @conn's base #GIOStream
  */
index 8fb7036..3486162 100644 (file)
@@ -398,7 +398,7 @@ typedef struct {
                        /* fields in third byte */
        unsigned        qr: 1;          /* response flag */
        unsigned        opcode: 4;      /* purpose of message */
-       unsigned        aa: 1;          /* authoritive answer */
+       unsigned        aa: 1;          /* authoritative answer */
        unsigned        tc: 1;          /* truncated message */
        unsigned        rd: 1;          /* recursion desired */
                        /* fields in fourth byte */
@@ -412,7 +412,7 @@ typedef struct {
                        /* fields in third byte */
        unsigned        rd :1;          /* recursion desired */
        unsigned        tc :1;          /* truncated message */
-       unsigned        aa :1;          /* authoritive answer */
+       unsigned        aa :1;          /* authoritative answer */
        unsigned        opcode :4;      /* purpose of message */
        unsigned        qr :1;          /* response flag */
                        /* fields in fourth byte */
@@ -508,7 +508,7 @@ typedef enum __ns_type {
        ns_t_cert = 37,         /* Certification record */
        ns_t_a6 = 38,           /* IPv6 address (deprecates AAAA) */
        ns_t_dname = 39,        /* Non-terminal DNAME (for IPv6) */
-       ns_t_sink = 40,         /* Kitchen sink (experimentatl) */
+       ns_t_sink = 40,         /* Kitchen sink (experimental) */
        ns_t_opt = 41,          /* EDNS0 option (meta-RR) */
        ns_t_apl = 42,          /* Address prefix list (RFC 3123) */
        ns_t_tkey = 249,        /* Transaction key */
@@ -615,7 +615,7 @@ parse_res_txt (guchar  *answer,
   while (at < end)
     {
       len = *(at++);
-      if (len > (gsize) (end - at))
+      if (len > at - end)
         break;
       g_ptr_array_add (array, g_strndup ((gchar *)at, len));
       at += len;
index c48a934..6416e3a 100644 (file)
@@ -226,7 +226,7 @@ g_threaded_socket_service_class_init (GThreadedSocketServiceClass *class)
    * GThreadedSocketService::run:
    * @service: the #GThreadedSocketService.
    * @connection: a new #GSocketConnection object.
-   * @source_object: the source_object passed to g_socket_listener_add_address().
+   * @source_object: (nullable): the source_object passed to g_socket_listener_add_address().
    *
    * The ::run signal is emitted in a worker thread in response to an
    * incoming connection. This thread is dedicated to handling
index d41d0c2..f2a61c4 100644 (file)
@@ -55,7 +55,7 @@ g_tls_client_connection_default_init (GTlsClientConnectionInterface *iface)
    * GTlsClientConnection:validation-flags:
    *
    * What steps to perform when validating a certificate received from
-   * a server. Server certificates that fail to validate in all of the
+   * a server. Server certificates that fail to validate in any of the
    * ways indicated here will be rejected unless the application
    * overrides the default via #GTlsConnection::accept-certificate.
    *
index cc9a183..f01e492 100644 (file)
@@ -142,7 +142,7 @@ g_tls_connection_class_init (GTlsConnectionClass *klass)
                                                         G_PARAM_STATIC_STRINGS |
                                                         G_PARAM_DEPRECATED));
   /**
-   * GTlsConnection:database:
+   * GTlsConnection:database: (nullable)
    *
    * The certificate database to use when verifying this TLS connection.
    * If no certificate database is set, then the default database will be
@@ -158,7 +158,7 @@ g_tls_connection_class_init (GTlsConnectionClass *klass)
                                                         G_PARAM_READWRITE |
                                                         G_PARAM_STATIC_STRINGS));
   /**
-   * GTlsConnection:interaction:
+   * GTlsConnection:interaction: (nullable)
    *
    * A #GTlsInteraction object to be used when the connection or certificate
    * database need to interact with the user. This will be used to prompt the
@@ -225,12 +225,11 @@ g_tls_connection_class_init (GTlsConnectionClass *klass)
                                                        G_PARAM_READWRITE |
                                                        G_PARAM_STATIC_STRINGS));
   /**
-   * GTlsConnection:peer-certificate:
+   * GTlsConnection:peer-certificate: (nullable)
    *
    * The connection's peer's certificate, after the TLS handshake has
-   * completed and the certificate has been accepted. Note in
-   * particular that this is not yet set during the emission of
-   * #GTlsConnection::accept-certificate.
+   * completed or failed. Note in particular that this is not yet set
+   * during the emission of #GTlsConnection::accept-certificate.
    *
    * (You can watch for a #GObject::notify signal on this property to
    * detect when a handshake has occurred.)
@@ -247,7 +246,7 @@ g_tls_connection_class_init (GTlsConnectionClass *klass)
   /**
    * GTlsConnection:peer-certificate-errors:
    *
-   * The errors noticed-and-ignored while verifying
+   * The errors noticed while verifying
    * #GTlsConnection:peer-certificate. Normally this should be 0, but
    * it may not be if #GTlsClientConnection:validation-flags is not
    * %G_TLS_CERTIFICATE_VALIDATE_ALL, or if
@@ -265,7 +264,7 @@ g_tls_connection_class_init (GTlsConnectionClass *klass)
                                                       G_PARAM_READABLE |
                                                       G_PARAM_STATIC_STRINGS));
   /**
-   * GTlsConnection:advertised-protocols:
+   * GTlsConnection:advertised-protocols: (nullable)
    *
    * The list of application-layer protocols that the connection
    * advertises that it is willing to speak. See
@@ -445,7 +444,7 @@ g_tls_connection_get_use_system_certdb (GTlsConnection *conn)
 /**
  * g_tls_connection_set_database:
  * @conn: a #GTlsConnection
- * @database: a #GTlsDatabase
+ * @database: (nullable): a #GTlsDatabase
  *
  * Sets the certificate database that is used to verify peer certificates.
  * This is set to the default database by default. See
@@ -477,7 +476,7 @@ g_tls_connection_set_database (GTlsConnection *conn,
  * Gets the certificate database that @conn uses to verify
  * peer certificates. See g_tls_connection_set_database().
  *
- * Returns: (transfer none): the certificate database that @conn uses or %NULL
+ * Returns: (transfer none) (nullable): the certificate database that @conn uses or %NULL
  *
  * Since: 2.30
  */
@@ -539,7 +538,7 @@ g_tls_connection_set_certificate (GTlsConnection  *conn,
  * Gets @conn's certificate, as set by
  * g_tls_connection_set_certificate().
  *
- * Returns: (transfer none): @conn's certificate, or %NULL
+ * Returns: (transfer none) (nullable): @conn's certificate, or %NULL
  *
  * Since: 2.28
  */
@@ -589,7 +588,7 @@ g_tls_connection_set_interaction (GTlsConnection       *conn,
  * for things like prompting the user for passwords. If %NULL is returned, then
  * no user interaction will occur for this connection.
  *
- * Returns: (transfer none): The interaction object.
+ * Returns: (transfer none) (nullable): The interaction object.
  *
  * Since: 2.30
  */
@@ -611,11 +610,11 @@ g_tls_connection_get_interaction (GTlsConnection       *conn)
  * g_tls_connection_get_peer_certificate:
  * @conn: a #GTlsConnection
  *
- * Gets @conn's peer's certificate after the handshake has completed.
- * (It is not set during the emission of
+ * Gets @conn's peer's certificate after the handshake has completed
+ * or failed. (It is not set during the emission of
  * #GTlsConnection::accept-certificate.)
  *
- * Returns: (transfer none): @conn's peer's certificate, or %NULL
+ * Returns: (transfer none) (nullable): @conn's peer's certificate, or %NULL
  *
  * Since: 2.28
  */
@@ -638,8 +637,8 @@ g_tls_connection_get_peer_certificate (GTlsConnection *conn)
  * @conn: a #GTlsConnection
  *
  * Gets the errors associated with validating @conn's peer's
- * certificate, after the handshake has completed. (It is not set
- * during the emission of #GTlsConnection::accept-certificate.)
+ * certificate, after the handshake has completed or failed. (It is
+ * not set during the emission of #GTlsConnection::accept-certificate.)
  *
  * Returns: @conn's peer's certificate errors
  *
index f06dabf..256369d 100644 (file)
@@ -473,9 +473,13 @@ g_tls_database_class_init (GTlsDatabaseClass *klass)
  * which means that the certificate is being used to authenticate a server
  * (and we are acting as the client).
  *
- * The @identity is used to check for pinned certificates (trust exceptions)
- * in the database. These will override the normal verification process on a
- * host by host basis.
+ * The @identity is used to ensure the server certificate is valid for
+ * the expected peer identity. If the identity does not match the
+ * certificate, %G_TLS_CERTIFICATE_BAD_IDENTITY will be set in the
+ * return value. If @identity is %NULL, that bit will never be set in
+ * the return value. The peer identity may also be used to check for
+ * pinned certificates (trust exceptions) in the database. These may
+ * override the normal verification process on a host-by-host basis.
  *
  * Currently there are no @flags, and %G_TLS_DATABASE_VERIFY_NONE should be
  * used.
index 03c9332..9922be2 100644 (file)
@@ -74,9 +74,8 @@ g_trash_portal_trash_file (GFile   *file,
   GUnixFDList *fd_list = NULL;
   int fd, fd_in, errsv;
   gboolean ret = FALSE;
-  guint portal_result = 0;
   GXdpTrash *proxy;
-
+  
   proxy = ensure_trash_portal ();
   if (proxy == NULL)
     {
@@ -115,17 +114,11 @@ g_trash_portal_trash_file (GFile   *file,
   ret = gxdp_trash_call_trash_file_sync (proxy,
                                          g_variant_new_handle (fd_in),
                                          fd_list,
-                                         &portal_result,
+                                         NULL,
                                          NULL,
                                          NULL,
                                          error);
 
-  if (ret && portal_result != 1)
-    {
-      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "Trash portal failed on %s", path);
-      ret = FALSE;
-    }
-
  out:
   g_clear_object (&fd_list);
   g_free (path);
index 93b74e5..c017303 100644 (file)
@@ -546,7 +546,7 @@ _g_mount_get_for_mount_path (const gchar  *mount_path,
 
   /* TODO: How do we know this succeeded? Keep in mind that the native
    *       volume monitor may fail (e.g. not being able to connect to
-   *       hald). Is the get_mount_for_mount_path() method allowed to
+   *       udisks). Is the get_mount_for_mount_path() method allowed to
    *       return NULL? Seems like it is ... probably the method needs
    *       to take a boolean and write if it succeeds or not.. Messy.
    *       Very messy.
index 02d59c8..9e5c7d3 100644 (file)
@@ -96,6 +96,7 @@ g_unix_credentials_message_get_msg_type (GSocketControlMessage *message)
 #elif G_CREDENTIALS_UNIX_CREDENTIALS_MESSAGE_SUPPORTED
   #error "G_CREDENTIALS_UNIX_CREDENTIALS_MESSAGE_SUPPORTED is set but there is no msg_type defined for this platform"
 #else
+  /* includes G_CREDENTIALS_USE_APPLE_XUCRED */
   return 0;
 #endif
 }
index c63e4e5..796aa54 100644 (file)
@@ -103,14 +103,6 @@ static void     g_unix_input_stream_skip_async   (GInputStream         *stream,
 static gssize   g_unix_input_stream_skip_finish  (GInputStream         *stream,
                                                  GAsyncResult         *result,
                                                  GError              **error);
-static void     g_unix_input_stream_close_async  (GInputStream         *stream,
-                                                 int                   io_priority,
-                                                 GCancellable         *cancellable,
-                                                 GAsyncReadyCallback   callback,
-                                                 gpointer              data);
-static gboolean g_unix_input_stream_close_finish (GInputStream         *stream,
-                                                 GAsyncResult         *result,
-                                                 GError              **error);
 
 static gboolean g_unix_input_stream_pollable_can_poll      (GPollableInputStream *stream);
 static gboolean g_unix_input_stream_pollable_is_readable   (GPollableInputStream *stream);
@@ -134,8 +126,6 @@ g_unix_input_stream_class_init (GUnixInputStreamClass *klass)
       stream_class->skip_async = g_unix_input_stream_skip_async;
       stream_class->skip_finish = g_unix_input_stream_skip_finish;
     }
-  stream_class->close_async = g_unix_input_stream_close_async;
-  stream_class->close_finish = g_unix_input_stream_close_finish;
 
   /**
    * GUnixInputStream:fd:
@@ -452,37 +442,6 @@ g_unix_input_stream_skip_finish  (GInputStream  *stream,
   /* TODO: Not implemented */
 }
 
-static void
-g_unix_input_stream_close_async (GInputStream        *stream,
-                                int                  io_priority,
-                                GCancellable        *cancellable,
-                                GAsyncReadyCallback  callback,
-                                gpointer             user_data)
-{
-  GTask *task;
-  GError *error = NULL;
-
-  task = g_task_new (stream, cancellable, callback, user_data);
-  g_task_set_source_tag (task, g_unix_input_stream_close_async);
-  g_task_set_priority (task, io_priority);
-
-  if (g_unix_input_stream_close (stream, cancellable, &error))
-    g_task_return_boolean (task, TRUE);
-  else
-    g_task_return_error (task, error);
-  g_object_unref (task);
-}
-
-static gboolean
-g_unix_input_stream_close_finish (GInputStream  *stream,
-                                 GAsyncResult  *result,
-                                 GError       **error)
-{
-  g_return_val_if_fail (g_task_is_valid (result, stream), FALSE);
-
-  return g_task_propagate_boolean (G_TASK (result), error);
-}
-
 static gboolean
 g_unix_input_stream_pollable_can_poll (GPollableInputStream *stream)
 {
index 1880d99..86aa22d 100644 (file)
@@ -421,7 +421,7 @@ guess_system_internal (const char *mountpoint,
    * to not mengle those mounts with the "regular" mounts (i.e. which points to
    * the root). But because those mounts usually just duplicate other mounts and
    * are completely ignored with mntend-based implementation, let's mark them as
-   * system internal. Given the different approches it doesn't mean that all
+   * system internal. Given the different approaches it doesn't mean that all
    * mounts which were ignored will be system internal now, but this should work
    * in most cases. For more info, see g_unix_mount_get_root_path() annotation,
    * comment in mntent-based _g_get_unix_mounts() implementation and the
index 1af0b44..6b2071f 100644 (file)
@@ -102,14 +102,6 @@ static gboolean g_unix_output_stream_writev       (GOutputStream        *stream,
 static gboolean g_unix_output_stream_close        (GOutputStream        *stream,
                                                   GCancellable         *cancellable,
                                                   GError              **error);
-static void     g_unix_output_stream_close_async  (GOutputStream        *stream,
-                                                  int                   io_priority,
-                                                  GCancellable         *cancellable,
-                                                  GAsyncReadyCallback   callback,
-                                                  gpointer              data);
-static gboolean g_unix_output_stream_close_finish (GOutputStream        *stream,
-                                                  GAsyncResult         *result,
-                                                  GError              **error);
 
 static gboolean g_unix_output_stream_pollable_can_poll      (GPollableOutputStream *stream);
 static gboolean g_unix_output_stream_pollable_is_writable   (GPollableOutputStream *stream);
@@ -133,8 +125,6 @@ g_unix_output_stream_class_init (GUnixOutputStreamClass *klass)
   stream_class->write_fn = g_unix_output_stream_write;
   stream_class->writev_fn = g_unix_output_stream_writev;
   stream_class->close_fn = g_unix_output_stream_close;
-  stream_class->close_async = g_unix_output_stream_close_async;
-  stream_class->close_finish = g_unix_output_stream_close_finish;
 
    /**
    * GUnixOutputStream:fd:
@@ -539,37 +529,6 @@ g_unix_output_stream_close (GOutputStream  *stream,
   return res != -1;
 }
 
-static void
-g_unix_output_stream_close_async (GOutputStream       *stream,
-                                 int                  io_priority,
-                                 GCancellable        *cancellable,
-                                 GAsyncReadyCallback  callback,
-                                 gpointer             user_data)
-{
-  GTask *task;
-  GError *error = NULL;
-
-  task = g_task_new (stream, cancellable, callback, user_data);
-  g_task_set_source_tag (task, g_unix_output_stream_close_async);
-  g_task_set_priority (task, io_priority);
-
-  if (g_unix_output_stream_close (stream, cancellable, &error))
-    g_task_return_boolean (task, TRUE);
-  else
-    g_task_return_error (task, error);
-  g_object_unref (task);
-}
-
-static gboolean
-g_unix_output_stream_close_finish (GOutputStream  *stream,
-                                  GAsyncResult   *result,
-                                  GError        **error)
-{
-  g_return_val_if_fail (g_task_is_valid (result, stream), FALSE);
-
-  return g_task_propagate_boolean (G_TASK (result), error);
-}
-
 static gboolean
 g_unix_output_stream_pollable_can_poll (GPollableOutputStream *stream)
 {
index 2383e60..b8ecbe3 100644 (file)
@@ -339,9 +339,11 @@ file_builder_allocate_for_hash (FileBuilder            *fb,
 #undef chunk
 
   memset (*bloom_filter, 0, n_bloom_words * sizeof (guint32_le));
+  memset (*hash_buckets, 0, n_buckets * sizeof (guint32_le));
+  memset (*hash_items, 0, n_items * sizeof (struct gvdb_hash_item));
 
   /* NOTE - the code to actually fill in the bloom filter here is missing.
-   * Patches welcome! 
+   * Patches welcome!
    *
    * http://en.wikipedia.org/wiki/Bloom_filter
    * http://0pointer.de/blog/projects/bloom.html
@@ -450,6 +452,13 @@ file_builder_new (gboolean byteswap)
   return builder;
 }
 
+static void
+file_builder_free (FileBuilder *fb)
+{
+  g_queue_free (fb->chunks);
+  g_slice_free (FileBuilder, fb);
+}
+
 static GString *
 file_builder_serialise (FileBuilder          *fb,
                         struct gvdb_pointer   root)
@@ -494,9 +503,6 @@ file_builder_serialise (FileBuilder          *fb,
       g_slice_free (FileChunk, chunk);
     }
 
-  g_queue_free (fb->chunks);
-  g_slice_free (FileBuilder, fb);
-
   return result;
 }
 
@@ -511,12 +517,118 @@ gvdb_table_write_contents (GHashTable   *table,
   FileBuilder *fb;
   GString *str;
 
+  g_return_val_if_fail (table != NULL, FALSE);
+  g_return_val_if_fail (filename != NULL, FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
   fb = file_builder_new (byteswap);
   file_builder_add_hash (fb, table, &root);
   str = file_builder_serialise (fb, root);
+  file_builder_free (fb);
 
   status = g_file_set_contents (filename, str->str, str->len, error);
   g_string_free (str, TRUE);
 
   return status;
 }
+
+typedef struct {
+  GBytes *contents;  /* (owned) */
+  GFile  *file;      /* (owned) */
+} WriteContentsData;
+
+static WriteContentsData *
+write_contents_data_new (GBytes *contents,
+                         GFile  *file)
+{
+  WriteContentsData *data;
+
+  data = g_slice_new (WriteContentsData);
+  data->contents = g_bytes_ref (contents);
+  data->file = g_object_ref (file);
+
+  return data;
+}
+
+static void
+write_contents_data_free (WriteContentsData *data)
+{
+  g_bytes_unref (data->contents);
+  g_object_unref (data->file);
+  g_slice_free (WriteContentsData, data);
+}
+
+static void
+replace_contents_cb (GObject      *source_object,
+                     GAsyncResult *result,
+                     gpointer      user_data)
+{
+  GTask *task = user_data;
+  WriteContentsData *data = g_task_get_task_data (task);
+  GError *error = NULL;
+
+  g_return_if_fail (g_task_get_source_tag (task) == gvdb_table_write_contents_async);
+
+  if (!g_file_replace_contents_finish (data->file, result, NULL, &error))
+    g_task_return_error (task, g_steal_pointer (&error));
+  else
+    g_task_return_boolean (task, TRUE);
+
+  g_object_unref (task);
+}
+
+void
+gvdb_table_write_contents_async (GHashTable          *table,
+                                 const gchar         *filename,
+                                 gboolean             byteswap,
+                                 GCancellable        *cancellable,
+                                 GAsyncReadyCallback  callback,
+                                 gpointer             user_data)
+{
+  struct gvdb_pointer root;
+  FileBuilder *fb;
+  WriteContentsData *data;
+  GString *str;
+  GBytes *bytes;
+  GFile *file;
+  GTask *task;
+
+  g_return_if_fail (table != NULL);
+  g_return_if_fail (filename != NULL);
+  g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
+
+  fb = file_builder_new (byteswap);
+  file_builder_add_hash (fb, table, &root);
+  str = file_builder_serialise (fb, root);
+  bytes = g_string_free_to_bytes (str);
+  file_builder_free (fb);
+
+  file = g_file_new_for_path (filename);
+  data = write_contents_data_new (bytes, file);
+
+  task = g_task_new (NULL, cancellable, callback, user_data);
+  g_task_set_task_data (task, data, (GDestroyNotify)write_contents_data_free);
+  g_task_set_source_tag (task, gvdb_table_write_contents_async);
+
+  g_file_replace_contents_async (file,
+                                 g_bytes_get_data (bytes, NULL),
+                                 g_bytes_get_size (bytes),
+                                 NULL, FALSE,
+                                 G_FILE_CREATE_PRIVATE,
+                                 cancellable, replace_contents_cb, g_steal_pointer (&task));
+
+  g_bytes_unref (bytes);
+  g_object_unref (file);
+}
+
+gboolean
+gvdb_table_write_contents_finish (GHashTable    *table,
+                                  GAsyncResult  *result,
+                                  GError       **error)
+{
+  g_return_val_if_fail (table != NULL, FALSE);
+  g_return_val_if_fail (g_task_is_valid (result, NULL), FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+  return g_task_propagate_boolean (G_TASK (result), error);
+}
index b4815f0..30757d0 100644 (file)
@@ -51,5 +51,16 @@ gboolean                gvdb_table_write_contents                       (GHashTa
                                                                          const gchar    *filename,
                                                                          gboolean        byteswap,
                                                                          GError        **error);
+G_GNUC_INTERNAL
+void                    gvdb_table_write_contents_async                 (GHashTable          *table,
+                                                                         const gchar         *filename,
+                                                                         gboolean             byteswap,
+                                                                         GCancellable        *cancellable,
+                                                                         GAsyncReadyCallback  callback,
+                                                                         gpointer             user_data);
+G_GNUC_INTERNAL
+gboolean                gvdb_table_write_contents_finish                (GHashTable          *table,
+                                                                         GAsyncResult        *result,
+                                                                         GError             **error);
 
 #endif /* __gvdb_builder_h__ */
index 83ad2ac..6bc4c6f 100644 (file)
@@ -351,10 +351,10 @@ gvdb_table_get_names (GvdbTable *table,
                       gsize     *length)
 {
   gchar **names;
-  gint n_names;
-  gint filled;
-  gint total;
-  gint i;
+  guint n_names;
+  guint filled;
+  guint total;
+  guint i;
 
   /* We generally proceed by iterating over the list of items in the
    * hash table (in order of appearance) recording them into an array.
index 446d88e..ec3e2b7 100644 (file)
@@ -497,80 +497,6 @@ static GWin32RegistryKey *classes_root_key;
  */
 #include "giowin32-private.c"
 
-static gunichar2 *
-read_resource_string (gunichar2 *res)
-{
-  gunichar2 *id_str;
-  gunichar2 *id_str_end;
-  gunichar2 *filename_str;
-  unsigned long id;
-  HMODULE resource_module;
-  gunichar2 *buffer;
-  int string_length;
-  int buffer_length;
-
-  if (res == NULL || res[0] != L'@')
-    return res;
-
-  id_str = wcsrchr (res, L'-');
-
-  if (id_str == NULL || id_str[-1] != L',')
-    return res;
-
-  id_str += 1;
-
-  id = wcstoul (id_str, &id_str_end, 10);
-
-  if (id_str_end == id_str || id_str_end[0] != L'\0' || id == ULONG_MAX)
-    return res;
-
-  filename_str = &res[1];
-  id_str[-2] = L'\0';
-
-  resource_module = LoadLibraryExW (filename_str,
-                                    0,
-                                    LOAD_LIBRARY_AS_DATAFILE |
-                                    LOAD_LIBRARY_AS_IMAGE_RESOURCE);
-
-  g_free (res);
-
-  if (resource_module == NULL)
-    return NULL;
-
-  buffer_length = 256;
-  string_length = buffer_length - 1;
-
-  while (TRUE)
-    {
-      buffer = g_malloc (buffer_length * sizeof (gunichar2));
-      string_length = LoadStringW (resource_module, id, buffer, buffer_length);
-
-      if (string_length != 0 && string_length == buffer_length - 1)
-        {
-          g_free (buffer);
-          buffer_length *= 2;
-        }
-      else
-        {
-          if (string_length == 0)
-            g_clear_pointer (&buffer, g_free);
-
-          break;
-        }
-    }
-
-  FreeLibrary (resource_module);
-
-  if (buffer)
-    {
-      gunichar2 *result = g_wcsdup (buffer, -1);
-      g_free (buffer);
-      return result;
-    }
-
-  return NULL;
-}
-
 static void
 read_handler_icon (GWin32RegistryKey  *proxy_key,
                    GWin32RegistryKey  *program_key,
@@ -601,6 +527,7 @@ read_handler_icon (GWin32RegistryKey  *proxy_key,
           gchar *default_value;
 
           if (g_win32_registry_key_get_value (icon_key,
+                                              NULL,
                                               TRUE,
                                               "",
                                               &default_type,
@@ -763,6 +690,7 @@ follow_class_chain_to_handler (const gunichar2    *program_id,
   if (key != NULL)
     {
       got_value = g_win32_registry_key_get_value_w (key,
+                                                    NULL,
                                                     TRUE,
                                                     L"",
                                                     &val_type,
@@ -799,6 +727,7 @@ follow_class_chain_to_handler (const gunichar2    *program_id,
     return FALSE;
 
   got_value = g_win32_registry_key_get_value_w (key,
+                                                NULL,
                                                 TRUE,
                                                 L"",
                                                 &val_type,
@@ -826,6 +755,7 @@ follow_class_chain_to_handler (const gunichar2    *program_id,
     }
 
   got_value = g_win32_registry_key_get_value_w (key,
+                                                NULL,
                                                 TRUE,
                                                 L"",
                                                 &val_type,
@@ -890,6 +820,7 @@ get_url_association (const gunichar2 *schema)
   schema_rec = g_hash_table_lookup (urls, schema_folded);
 
   if (!g_win32_registry_key_get_value_w (user_choice,
+                                         NULL,
                                          TRUE,
                                          L"Progid",
                                          &val_type,
@@ -1054,6 +985,7 @@ get_file_ext (const gunichar2 *ext)
   if (user_choice != NULL)
     {
       if (g_win32_registry_key_get_value_w (user_choice,
+                                            NULL,
                                             TRUE,
                                             L"Progid",
                                             &val_type,
@@ -1336,6 +1268,7 @@ collect_capable_apps_from_clients (GPtrArray *capable_apps,
         continue;
 
       if (g_win32_registry_key_get_value_w (system_client_type,
+                                            NULL,
                                             TRUE,
                                             L"",
                                             &default_type,
@@ -1591,6 +1524,7 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
   shell_open_command = NULL;
 
   success = g_win32_registry_key_get_value_w (shell_open_command_key,
+                                              NULL,
                                               TRUE,
                                               L"",
                                               &vtype,
@@ -1655,6 +1589,7 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
 
   fallback_friendly_name = NULL;
   success = g_win32_registry_key_get_value_w (appkey,
+                                              NULL,
                                               TRUE,
                                               L"",
                                               &vtype,
@@ -1678,6 +1613,7 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
 
   friendly_name = NULL;
   success = g_win32_registry_key_get_value_w (capabilities,
+                                              g_win32_registry_get_os_dirs_w (),
                                               TRUE,
                                               L"LocalizedString",
                                               &vtype,
@@ -1685,11 +1621,9 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
                                               NULL,
                                               NULL);
 
-  if (success && (vtype != G_WIN32_REGISTRY_VALUE_STR || friendly_name[0] != L'@'))
+  if (success && vtype != G_WIN32_REGISTRY_VALUE_STR)
     g_clear_pointer (&friendly_name, g_free);
 
-  friendly_name = read_resource_string (friendly_name);
-
   if (friendly_name && app->localized_pretty_name == NULL)
     {
       app->localized_pretty_name = g_wcsdup (friendly_name, -1);
@@ -1703,6 +1637,7 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
 
   description = NULL;
   success = g_win32_registry_key_get_value_w (capabilities,
+                                              g_win32_registry_get_os_dirs_w (),
                                               TRUE,
                                               L"ApplicationDescription",
                                               &vtype,
@@ -1713,8 +1648,6 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
   if (success && vtype != G_WIN32_REGISTRY_VALUE_STR)
     g_clear_pointer (&description, g_free);
 
-  description = read_resource_string (description);
-
   if (description && app->description == NULL)
     {
       app->description = g_wcsdup (description, -1);
@@ -1731,6 +1664,7 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
   if (default_icon_key != NULL)
     {
       success = g_win32_registry_key_get_value_w (default_icon_key,
+                                                  NULL,
                                                   TRUE,
                                                   L"",
                                                   &vtype,
@@ -1747,6 +1681,7 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
   if (icon_source == NULL)
     {
       success = g_win32_registry_key_get_value_w (capabilities,
+                                                  NULL,
                                                   TRUE,
                                                   L"ApplicationIcon",
                                                   &vtype,
@@ -1767,6 +1702,7 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
 
   narrow_application_name = NULL;
   success = g_win32_registry_key_get_value_w (capabilities,
+                                              g_win32_registry_get_os_dirs_w (),
                                               TRUE,
                                               L"ApplicationName",
                                               &vtype,
@@ -1777,8 +1713,6 @@ read_capable_app (gunichar2 *input_app_key_path, gboolean user_specific, gboolea
   if (success && vtype != G_WIN32_REGISTRY_VALUE_STR)
     g_clear_pointer (&narrow_application_name, g_free);
 
-  narrow_application_name = read_resource_string (narrow_application_name);
-
   /* TODO: do something with the narrow name. Maybe make a kind of sub-app?
    * Narrow name is a more precise name of the application in given context.
    * I.e. Thunderbird's name is "Thunderbird", whereas its narrow name is
@@ -2218,6 +2152,7 @@ read_exeapps (void)
       if (shell_open_command_key != NULL)
         {
           success = g_win32_registry_key_get_value_w (shell_open_command_key,
+                                                      NULL,
                                                       TRUE,
                                                       L"",
                                                       &vtype,
@@ -2237,6 +2172,7 @@ read_exeapps (void)
 
       friendly_app_name = NULL;
       success = g_win32_registry_key_get_value_w (incapable_app,
+                                                  g_win32_registry_get_os_dirs_w (),
                                                   TRUE,
                                                   L"FriendlyAppName",
                                                   &vtype,
@@ -2247,10 +2183,9 @@ read_exeapps (void)
       if (success && vtype != G_WIN32_REGISTRY_VALUE_STR)
         g_clear_pointer (&friendly_app_name, g_free);
 
-      friendly_app_name = read_resource_string (friendly_app_name);
-
       no_open_with = FALSE;
       success = g_win32_registry_key_get_value_w (incapable_app,
+                                                  NULL,
                                                   TRUE,
                                                   L"NoOpenWith",
                                                   &vtype,
@@ -2272,6 +2207,7 @@ read_exeapps (void)
       {
         success =
             g_win32_registry_key_get_value_w (default_icon_key,
+                                              NULL,
                                               TRUE,
                                               L"",
                                               &vtype,
@@ -2590,6 +2526,7 @@ read_class_url (GWin32RegistryKey *classes_root,
     return;
 
   success = g_win32_registry_key_get_value_w (class_key,
+                                              NULL,
                                               TRUE,
                                               L"URL Protocol",
                                               &vtype,
@@ -3980,6 +3917,7 @@ get_appath_for_exe (gunichar2 *exe_basename)
     return NULL;
 
   got_value = g_win32_registry_key_get_value_w (apppath_key,
+                                                NULL,
                                                 TRUE,
                                                 L"Path",
                                                 &val_type,
index aa78192..a963d6c 100644 (file)
@@ -1839,8 +1839,118 @@ g_win32_registry_key_get_path_w (GWin32RegistryKey *key)
 }
 
 /**
+ * g_win32_registry_get_os_dirs_w:
+ *
+ * Returns a list of directories for DLL lookups.
+ * Can be used with g_win32_registry_key_get_value_w().
+ *
+ * Returns: (array zero-terminated=1) (transfer none): a %NULL-terminated array of UTF-16 strings.
+ *
+ * Since: 2.66
+ */
+const gunichar2 * const *
+g_win32_registry_get_os_dirs_w (void)
+{
+  static gunichar2 **mui_os_dirs = NULL;
+
+  if (g_once_init_enter (&mui_os_dirs))
+    {
+      gunichar2 **new_mui_os_dirs;
+      gunichar2 *system32 = NULL;
+      gunichar2 *syswow64 = NULL;
+      UINT buffer_size;
+      gsize array_index = 0;
+
+      buffer_size = GetSystemWow64DirectoryW (NULL, 0);
+
+      if (buffer_size > 0)
+        {
+          UINT copied;
+          syswow64 = g_malloc (buffer_size * sizeof (gunichar2));
+          copied = GetSystemWow64DirectoryW (syswow64, buffer_size);
+          if (copied <= 0)
+            g_clear_pointer (&syswow64, g_free);
+        }
+
+      buffer_size = GetSystemDirectoryW (NULL, 0);
+
+      if (buffer_size > 0)
+        {
+          UINT copied;
+          system32 = g_malloc (buffer_size * sizeof (gunichar2));
+          copied = GetSystemDirectoryW (system32, buffer_size);
+          if (copied <= 0)
+            g_clear_pointer (&system32, g_free);
+        }
+
+      new_mui_os_dirs = g_new0 (gunichar2 *, 3);
+
+      if (system32 != NULL)
+        new_mui_os_dirs[array_index++] = system32;
+
+      if (syswow64 != NULL)
+        new_mui_os_dirs[array_index++] = syswow64;
+
+      new_mui_os_dirs[array_index++] = NULL;
+
+      g_once_init_leave (&mui_os_dirs, new_mui_os_dirs);
+    }
+
+  return (const gunichar2 * const *) mui_os_dirs;
+}
+
+/**
+ * g_win32_registry_get_os_dirs:
+ *
+ * Returns a list of directories for DLL lookups.
+ * Can be used with g_win32_registry_key_get_value().
+ *
+ * Returns: (array zero-terminated=1) (transfer none): a %NULL-terminated array of UTF-8 strings.
+ *
+ * Since: 2.66
+ */
+const gchar * const *
+g_win32_registry_get_os_dirs (void)
+{
+  static gchar **mui_os_dirs = NULL;
+
+  if (g_once_init_enter (&mui_os_dirs))
+    {
+      gchar **new_mui_os_dirs;
+      gsize array_index;
+      gsize new_array_index;
+      const gunichar2 * const *mui_os_dirs_utf16 = g_win32_registry_get_os_dirs_w ();
+
+      for (array_index = 0; mui_os_dirs_utf16[array_index] != NULL; array_index++)
+        ;
+
+      new_mui_os_dirs = g_new0 (gchar *, array_index + 1);
+
+      for (array_index = 0, new_array_index = 0;
+           mui_os_dirs_utf16[array_index] != NULL;
+           array_index++)
+        {
+          new_mui_os_dirs[new_array_index] = g_utf16_to_utf8 (mui_os_dirs_utf16[array_index],
+                                                              -1, NULL, NULL, NULL);
+          if (new_mui_os_dirs[new_array_index] != NULL)
+            new_array_index += 1;
+          else
+            g_critical ("Failed to convert to a system directory #%zu to UTF-8", array_index);
+        }
+
+      g_once_init_leave (&mui_os_dirs, new_mui_os_dirs);
+    }
+
+  return (const gchar * const *) mui_os_dirs;
+}
+
+/**
  * g_win32_registry_key_get_value:
  * @key: (in) (transfer none): a #GWin32RegistryKey
+ * @mui_dll_dirs: (in) (transfer none) (array zero-terminated=1) (optional): a %NULL-terminated
+ *     array of directory names where the OS
+ *     should look for a DLL indicated in a MUI string, if the
+ *     DLL path in the string is not absolute
  * @auto_expand: (in) %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR
  *     to G_WIN32_REGISTRY_VALUE_STR.
  * @value_name: (in) (transfer none): name of the value to get (in UTF-8).
@@ -1854,12 +1964,32 @@ g_win32_registry_key_get_path_w (GWin32RegistryKey *key)
  * Get data from a value of a key. String data is guaranteed to be
  * appropriately terminated and will be in UTF-8.
  *
+ * When not %NULL, @mui_dll_dirs indicates that `RegLoadMUIStringW()` API
+ * should be used instead of the usual `RegQueryValueExW()`. This implies
+ * that the value being queried is of type `REG_SZ` or `REG_EXPAND_SZ` (if it is not, the function
+ * falls back to `RegQueryValueExW()`), and that this string must undergo special processing
+ * (see [`SHLoadIndirectString()` documentation](https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shloadindirectstring) for an explanation on what
+ * kinds of strings are processed) to get the result.
+ *
+ * If no specific MUI DLL directories need to be used, pass
+ * the return value of g_win32_registry_get_os_dirs() as @mui_dll_dirs
+ * (as an bonus, the value from g_win32_registry_get_os_dirs()
+ * does not add any extra UTF8->UTF16 conversion overhead).
+ *
+ * @auto_expand works with @mui_dll_dirs, but only affects the processed
+ * string, making it somewhat useless. The unprocessed string is always expanded
+ * internally, if its type is `REG_EXPAND_SZ` - there is no need to enable
+ * @auto_expand for this to work.
+ *
+ * The API for this function changed in GLib 2.66 to add the @mui_dll_dirs argument.
+ *
  * Returns: %TRUE on success, %FALSE on failure.
  *
- * Since: 2.46
+ * Since: 2.66
  **/
 gboolean
 g_win32_registry_key_get_value (GWin32RegistryKey        *key,
+                                const gchar * const      *mui_dll_dirs,
                                 gboolean                  auto_expand,
                                 const gchar              *value_name,
                                 GWin32RegistryValueType  *value_type,
@@ -1874,6 +2004,9 @@ g_win32_registry_key_get_value (GWin32RegistryKey        *key,
   gchar *value_data_u8;
   gsize value_data_u8_len;
   gboolean result;
+  gsize mui_dll_dirs_count;
+  gunichar2 **mui_dll_dirs_utf16;
+  const gchar * const *mui_os_dirs;
 
   g_return_val_if_fail (G_IS_WIN32_REGISTRY_KEY (key), FALSE);
   g_return_val_if_fail (value_name != NULL, FALSE);
@@ -1889,7 +2022,48 @@ g_win32_registry_key_get_value (GWin32RegistryKey        *key,
   if (value_name_w == NULL)
     return FALSE;
 
+  mui_dll_dirs_utf16 = NULL;
+  mui_os_dirs = g_win32_registry_get_os_dirs ();
+
+  if (mui_dll_dirs != NULL &&
+      mui_dll_dirs != mui_os_dirs)
+    {
+      gsize i;
+
+      mui_dll_dirs_count = g_strv_length ((gchar **) mui_dll_dirs);
+      mui_dll_dirs_utf16 = g_new0 (gunichar2 *, mui_dll_dirs_count + 1);
+
+      for (i = 0; mui_dll_dirs[i] != NULL; i++)
+        {
+          mui_dll_dirs_utf16[i] = g_utf8_to_utf16 (mui_dll_dirs[i], -1, NULL, NULL, error);
+
+          if (mui_dll_dirs_utf16[i] == NULL)
+            break;
+        }
+
+      if (mui_dll_dirs[i] != NULL)
+        {
+          g_prefix_error (error,
+                          "A mui_dll_dirs string #%zu `%s' failed to convert: ",
+                          i, mui_dll_dirs[i]);
+
+          for (i = 0; i < mui_dll_dirs_count; i++)
+            g_free (mui_dll_dirs_utf16[i]);
+
+          g_free (mui_dll_dirs_utf16);
+          g_free (value_name_w);
+
+          return FALSE;
+        }
+    }
+  else if (mui_dll_dirs != NULL &&
+           mui_dll_dirs == mui_os_dirs)
+    {
+      mui_dll_dirs_utf16 = (gunichar2 **) g_win32_registry_get_os_dirs_w ();
+    }
+
   result = g_win32_registry_key_get_value_w (key,
+                                             (const gunichar2 * const *) mui_dll_dirs_utf16,
                                              auto_expand,
                                              value_name_w,
                                              &value_type_g,
@@ -1898,6 +2072,14 @@ g_win32_registry_key_get_value (GWin32RegistryKey        *key,
                                              error);
 
   g_free (value_name_w);
+  if (mui_dll_dirs_utf16 != NULL &&
+      mui_dll_dirs != mui_os_dirs)
+    {
+      gsize array_index;
+      for (array_index = 0; mui_dll_dirs_utf16[array_index] != NULL; array_index++)
+        g_free (mui_dll_dirs_utf16[array_index]);
+      g_free (mui_dll_dirs_utf16);
+    }
 
   if (!result)
     return FALSE;
@@ -1944,9 +2126,98 @@ g_win32_registry_key_get_value (GWin32RegistryKey        *key,
   return TRUE;
 }
 
+/* A wrapper that calls either RegQueryValueExW() or
+ * RegLoadMUIStringW() depending on the value of the
+ * last argument.
+ * Apart from the extra argument, the function behaves
+ * just like RegQueryValueExW(), with a few caveats.
+ */
+static LSTATUS
+MuiRegQueryValueExW (HKEY                     hKey,
+                     LPCWSTR                  lpValueName,
+                     LPDWORD                  lpReserved,
+                     LPDWORD                  lpType,
+                     LPBYTE                   lpData,
+                     LPDWORD                  lpcbData,
+                     const gunichar2 * const *mui_dll_dirs)
+{
+  gsize dir_index;
+  LSTATUS result = ERROR_PATH_NOT_FOUND;
+  DWORD bufsize;
+  DWORD data_size;
+  PVOID old_value;
+
+  if (mui_dll_dirs == NULL)
+    return RegQueryValueExW (hKey, lpValueName, lpReserved, lpType, lpData, lpcbData);
+
+  bufsize = 0;
+
+  if (lpcbData != NULL)
+    bufsize = *lpcbData;
+
+  if (mui_dll_dirs[0] != NULL)
+    {
+      /* Optimization: check that the value actually exists,
+       * before we start trying different mui dll dirs
+       */
+      result = RegQueryValueExW (hKey, lpValueName, NULL, NULL, NULL, 0);
+
+      if (result == ERROR_FILE_NOT_FOUND)
+        return result;
+    }
+
+  Wow64DisableWow64FsRedirection (&old_value);
+
+  /* Try with NULL dir first */
+  result = RegLoadMUIStringW (hKey,
+                              lpValueName,
+                              (wchar_t *) lpData,
+                              bufsize,
+                              &data_size,
+                              0,
+                              NULL);
+
+  /* Not a MUI value, load normally */
+  if (result == ERROR_INVALID_DATA)
+    {
+      Wow64RevertWow64FsRedirection (old_value);
+
+      return RegQueryValueExW (hKey, lpValueName, lpReserved, lpType, lpData, lpcbData);
+    }
+
+  for (dir_index = 0;
+       result == ERROR_FILE_NOT_FOUND &&
+       mui_dll_dirs[dir_index] != NULL;
+       dir_index++)
+    result = RegLoadMUIStringW (hKey,
+                                lpValueName,
+                                (wchar_t *) lpData,
+                                bufsize,
+                                &data_size,
+                                0,
+                                mui_dll_dirs[dir_index]);
+
+  Wow64RevertWow64FsRedirection (old_value);
+
+  if (lpcbData != NULL &&
+      result == ERROR_MORE_DATA)
+    *lpcbData = data_size;
+
+  if (lpType != NULL &&
+      result != ERROR_INVALID_DATA &&
+      result != ERROR_FILE_NOT_FOUND)
+    *lpType = REG_SZ;
+
+  return result;
+}
+
 /**
  * g_win32_registry_key_get_value_w:
  * @key: (in) (transfer none): a #GWin32RegistryKey
+ * @mui_dll_dirs: (in) (transfer none) (array zero-terminated=1) (optional): a %NULL-terminated
+ *     array of directory names where the OS
+ *     should look for a DLL indicated in a MUI string, if the
+ *     DLL path in the string is not absolute
  * @auto_expand: (in) %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR
  *     to G_WIN32_REGISTRY_VALUE_STR.
  * @value_name: (in) (transfer none): name of the value to get (in UTF-16).
@@ -1957,23 +2228,39 @@ g_win32_registry_key_get_value (GWin32RegistryKey        *key,
  *   by @value_data.
  * @error: (nullable): a pointer to %NULL #GError, or %NULL
  *
- * Get data from a value of a key.
- *
  * Get data from a value of a key. String data is guaranteed to be
  * appropriately terminated and will be in UTF-16.
  *
  * When calling with value_data == NULL (to get data size without getting
  * the data itself) remember that returned size corresponds to possibly
  * unterminated string data (if value is some kind of string), because
- * termination cannot be checked and fixed unless the data is retreived
+ * termination cannot be checked and fixed unless the data is retrieved
  * too.
  *
+ * When not %NULL, @mui_dll_dirs indicates that `RegLoadMUIStringW()` API
+ * should be used instead of the usual `RegQueryValueExW()`. This implies
+ * that the value being queried is of type `REG_SZ` or `REG_EXPAND_SZ` (if it is not, the function
+ * falls back to `RegQueryValueExW()`), and that this string must undergo special processing
+ * (see [`SHLoadIndirectString()` documentation](https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shloadindirectstring) for an explanation on what
+ * kinds of strings are processed) to get the result.
+ *
+ * If no specific MUI DLL directories need to be used, pass
+ * the return value of g_win32_registry_get_os_dirs_w() as @mui_dll_dirs.
+ *
+ * @auto_expand works with @mui_dll_dirs, but only affects the processed
+ * string, making it somewhat useless. The unprocessed string is always expanded
+ * internally, if its type is `REG_EXPAND_SZ` - there is no need to enable
+ * @auto_expand for this to work.
+ *
+ * The API for this function changed in GLib 2.66 to add the @mui_dll_dirs argument.
+ *
  * Returns: %TRUE on success, %FALSE on failure.
  *
- * Since: 2.46
+ * Since: 2.66
  **/
 gboolean
 g_win32_registry_key_get_value_w (GWin32RegistryKey        *key,
+                                  const gunichar2 * const  *mui_dll_dirs,
                                   gboolean                  auto_expand,
                                   const gunichar2          *value_name,
                                   GWin32RegistryValueType  *value_type,
@@ -2000,12 +2287,13 @@ g_win32_registry_key_get_value_w (GWin32RegistryKey        *key,
                         value_data_size != NULL, FALSE);
 
   req_value_data_size = 0;
-  status = RegQueryValueExW (key->priv->handle,
-                             value_name,
-                             NULL,
-                             &value_type_w,
-                             NULL,
-                             &req_value_data_size);
+  status = MuiRegQueryValueExW (key->priv->handle,
+                                value_name,
+                                NULL,
+                                &value_type_w,
+                                NULL,
+                                &req_value_data_size,
+                                mui_dll_dirs);
 
   if (status != ERROR_MORE_DATA && status != ERROR_SUCCESS)
     {
@@ -2032,12 +2320,13 @@ g_win32_registry_key_get_value_w (GWin32RegistryKey        *key,
 
   req_value_data = g_malloc (req_value_data_size + sizeof (gunichar2) * 2);
   req_value_data_size2 = req_value_data_size;
-  status = RegQueryValueExW (key->priv->handle,
-                             value_name,
-                             NULL,
-                             &value_type_w2,
-                             (gpointer) req_value_data,
-                             &req_value_data_size2);
+  status = MuiRegQueryValueExW (key->priv->handle,
+                                value_name,
+                                NULL,
+                                &value_type_w2,
+                                (gpointer) req_value_data,
+                                &req_value_data_size2,
+                                mui_dll_dirs);
 
   if (status != ERROR_SUCCESS)
     {
index 52ccd5c..28b57a8 100644 (file)
@@ -239,8 +239,9 @@ gboolean         g_win32_registry_value_iter_get_data_w      (GWin32RegistryValu
                                                               gsize                           *value_data_size,
                                                               GError                         **error);
 
-GLIB_AVAILABLE_IN_2_46
+GLIB_AVAILABLE_IN_2_66
 gboolean         g_win32_registry_key_get_value              (GWin32RegistryKey               *key,
+                                                              const gchar * const             *mui_dll_dirs,
                                                               gboolean                         auto_expand,
                                                               const gchar                     *value_name,
                                                               GWin32RegistryValueType         *value_type,
@@ -248,8 +249,9 @@ gboolean         g_win32_registry_key_get_value              (GWin32RegistryKey
                                                               gsize                           *value_data_size,
                                                               GError                         **error);
 
-GLIB_AVAILABLE_IN_2_46
+GLIB_AVAILABLE_IN_2_66
 gboolean         g_win32_registry_key_get_value_w            (GWin32RegistryKey               *key,
+                                                              const gunichar2 * const         *mui_dll_dirs,
                                                               gboolean                         auto_expand,
                                                               const gunichar2                 *value_name,
                                                               GWin32RegistryValueType         *value_type,
@@ -276,6 +278,12 @@ gboolean         g_win32_registry_key_has_changed            (GWin32RegistryKey
 GLIB_AVAILABLE_IN_2_46
 void             g_win32_registry_key_erase_change_indicator (GWin32RegistryKey               *key);
 
+GLIB_AVAILABLE_IN_2_66
+const gunichar2 * const *g_win32_registry_get_os_dirs_w (void);
+
+GLIB_AVAILABLE_IN_2_66
+const gchar * const     *g_win32_registry_get_os_dirs   (void);
+
 G_END_DECLS
 
 #endif /* G_PLATFORM_WIN32 */
index 5124718..83d6d32 100644 (file)
@@ -105,7 +105,7 @@ get_viewable_logical_drives (void)
   return viewable_drives; 
 }
 
-/* deliver accesible (aka 'mounted') volumes */
+/* deliver accessible (aka 'mounted') volumes */
 static GList *
 get_mounts (GVolumeMonitor *volume_monitor)
 {
@@ -237,7 +237,7 @@ g_win32_volume_monitor_class_init (GWin32VolumeMonitorClass *klass)
 static void
 g_win32_volume_monitor_init (GWin32VolumeMonitor *win32_monitor)
 {
-  /* maybe we shoud setup a callback window to listern for WM_DEVICECHANGE ? */
+  /* maybe we should setup a callback window to listen for WM_DEVICECHANGE ? */
 #if 0
   unix_monitor->mount_monitor = g_win32_mount_monitor_new ();
 
index 3e79765..0a46aa8 100644 (file)
@@ -231,7 +231,7 @@ error:
  * 
  * @param[in,out] before A pointer to a pointer to a list. Will contain items
  *     which were not found in the 'after' list.
- * @param[in,out] after  A pointer to a pointer to a list. Will containt items
+ * @param[in,out] after  A pointer to a pointer to a list. Will contain items
  *     which were not found in the 'before' list.
  **/
 void
@@ -356,7 +356,7 @@ G_STMT_START {                                                          \
  * Detect and notify about moves in the watched directory.
  *
  * A move is what happens when you rename a file in a directory, and
- * a new name is unique, i.e. you didnt overwrite any existing files
+ * a new name is unique, i.e. you didn't overwrite any existing files
  * with this one.
  *
  * @param[in,out] removed  A list of the removed files in the directory.
@@ -387,7 +387,7 @@ dl_detect_moves (dep_list           **removed,
 /**
  * Detect and notify about replacements in the watched directory.
  *
- * Consider you are watching a directory foo with the folloing files
+ * Consider you are watching a directory foo with the following files
  * insinde:
  *
  *    foo/bar
@@ -534,4 +534,3 @@ dl_calculate (dep_list           *before,
     dl_shallow_free (pre);
     dl_shallow_free (was);
 }
-
index c6e4ec4..f69f98e 100644 (file)
@@ -354,7 +354,7 @@ g_kqueue_file_monitor_callback (gint fd, GIOCondition condition, gpointer user_d
              * rescan of missing files immediately so we don't have to wait for
              * 4 seconds for discovering missing files. We pass the sub_file
              * corresponding to the GKqueueFileMonitor to 'check_this_sub_only'
-             * argument to prevent _km_scan_missing from emiting 'CREATED'
+             * argument to prevent _km_scan_missing from emitting 'CREATED'
              * events because _kh_dir_diff will do it for us. */
             if (sub->mon->sub_file != NULL && sub->mon->sub_file->fd == -1)
               _km_scan_missing (sub->mon->sub_file);
index 36a5b58..b3e42a2 100644 (file)
@@ -194,5 +194,3 @@ _kh_dir_diff (kqueue_sub *sub, gboolean handle_deleted)
 
   dl_free (was);
 }
-
-
index 2ef60ed..39e246b 100644 (file)
@@ -813,6 +813,10 @@ endif
 
 schemas_subdir = join_paths('glib-2.0', 'schemas')
 
+libgio_dep = declare_dependency(link_with : libgio,
+  dependencies : [libgmodule_dep, libgobject_dep, gioenumtypes_dep],
+  include_directories : [gioinc])
+
 pkg.generate(libgio,
   libraries_private : [osx_ldflags],
   requires : ['glib-2.0', 'gobject-2.0'],
@@ -835,6 +839,11 @@ pkg.generate(libgio,
   description : 'glib I/O library',
 )
 
+if meson.version().version_compare('>=0.54.0')
+  meson.override_dependency('gio-2.0', libgio_dep)
+endif
+
+
 if host_system == 'windows'
   pkg.generate(requires : ['gobject-2.0', 'gmodule-no-export-2.0', 'gio-2.0'],
     subdirs : ['gio-win32-2.0'],
@@ -844,6 +853,9 @@ if host_system == 'windows'
     name : 'GIO Windows specific APIs',
     description : 'Windows specific headers for glib I/O library',
   )
+  if meson.version().version_compare('>=0.54.0')
+    meson.override_dependency('gio-win32-2.0', libgio_dep)
+  endif
 else
   pkg.generate(requires : ['gobject-2.0', 'gio-2.0'],
     subdirs : ['gio-unix-2.0'],
@@ -853,12 +865,11 @@ else
     name : 'GIO unix specific APIs',
     description : 'unix specific headers for glib I/O library',
   )
+  if meson.version().version_compare('>=0.54.0')
+    meson.override_dependency('gio-unix-2.0', libgio_dep)
+  endif
 endif
 
-libgio_dep = declare_dependency(link_with : libgio,
-  dependencies : [libgmodule_dep, libgobject_dep, gioenumtypes_dep],
-  include_directories : [gioinc])
-
 if host_system == 'windows'
   # Hack till https://github.com/mesonbuild/meson/issues/2324 is fixed
   libgiounix_dep = dependency('', required : false)
index da28630..7867931 100644 (file)
     <!--
         List:
         @app_id: an application ID, or '' to list all documents
-        @docs: a dictonary mapping document IDs to their filesystem path
+        @docs: a dictionary mapping document IDs to their filesystem path
 
         Lists documents in the document store for an application (or for
         all applications).
index 3a91a2f..1b64a8f 100644 (file)
@@ -26,4 +26,3 @@ main (int argc, char *argv[])
 
   return 0;
 }
-
index 4fec6b3..2f0f430 100644 (file)
@@ -600,4 +600,3 @@ main (int argc, char *argv[])
 
   return g_test_run ();
 }
-
index fb317b7..e69c4db 100644 (file)
@@ -32,7 +32,6 @@ typedef enum
   TEST_THREADED_NONE    = 0,
   TEST_THREADED_ISTREAM = 1,
   TEST_THREADED_OSTREAM = 2,
-  TEST_CANCEL           = 4,
   TEST_THREADED_BOTH    = TEST_THREADED_ISTREAM | TEST_THREADED_OSTREAM,
 } TestThreadedFlags;
 
@@ -59,14 +58,6 @@ test_copy_chunks_splice_cb (GObject      *source,
 
   bytes_spliced = g_output_stream_splice_finish (G_OUTPUT_STREAM (source),
                                                  res, &error);
-
-  if (data->flags & TEST_CANCEL)
-    {
-      g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
-      g_main_loop_quit (data->main_loop);
-      return;
-    }
-
   g_assert_no_error (error);
   g_assert_cmpint (bytes_spliced, ==, strlen (data->data));
 
@@ -109,18 +100,11 @@ test_copy_chunks_start (TestThreadedFlags flags)
 {
   TestCopyChunksData data;
   GError *error = NULL;
-  GCancellable *cancellable = NULL;
 
   data.main_loop = g_main_loop_new (NULL, FALSE);
   data.data = "abcdefghijklmnopqrstuvwxyz";
   data.flags = flags;
 
-  if (data.flags & TEST_CANCEL)
-    {
-      cancellable = g_cancellable_new ();
-      g_cancellable_cancel (cancellable);
-    }
-
   if (data.flags & TEST_THREADED_ISTREAM)
     {
       GFile *file;
@@ -166,7 +150,7 @@ test_copy_chunks_start (TestThreadedFlags flags)
   g_output_stream_splice_async (data.ostream, data.istream,
                                 G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE |
                                 G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET,
-                                G_PRIORITY_DEFAULT, cancellable,
+                                G_PRIORITY_DEFAULT, NULL,
                                 test_copy_chunks_splice_cb, &data);
 
   /* We do not hold a ref in data struct, this is to make sure the operation
@@ -174,7 +158,6 @@ test_copy_chunks_start (TestThreadedFlags flags)
    */
   g_object_unref (data.istream);
   g_object_unref (data.ostream);
-  g_clear_object (&cancellable);
 
   g_main_loop_run (data.main_loop);
   g_main_loop_unref (data.main_loop);
@@ -204,12 +187,6 @@ test_copy_chunks_threaded (void)
   test_copy_chunks_start (TEST_THREADED_BOTH);
 }
 
-static void
-test_cancelled (void)
-{
-  test_copy_chunks_start (TEST_THREADED_NONE | TEST_CANCEL);
-}
-
 int
 main (int   argc,
       char *argv[])
@@ -223,8 +200,6 @@ main (int   argc,
                    test_copy_chunks_threaded_output);
   g_test_add_func ("/async-splice/copy-chunks-threaded",
                    test_copy_chunks_threaded);
-  g_test_add_func ("/async-splice/cancelled",
-                   test_cancelled);
 
   return g_test_run();
 }
index cd349a8..e53ae6e 100644 (file)
@@ -138,7 +138,7 @@ mock_operation_finish (GAsyncResult  *result,
   MockOperationData *data;
   GTask *task;
 
-  g_assert (g_task_is_valid (result, NULL));
+  g_assert_true (g_task_is_valid (result, NULL));
 
   /* This test expects the return value to be iterations_done even
    * when an error is set.
@@ -212,7 +212,7 @@ test_cancel_multiple_concurrent (void)
   if (g_test_verbose ())
     g_printerr ("CANCEL: %d operations\n", num_async_operations);
   g_cancellable_cancel (cancellable);
-  g_assert (g_cancellable_is_cancelled (cancellable));
+  g_assert_true (g_cancellable_is_cancelled (cancellable));
 
   /* Wait for all operations to be cancelled */
   g_main_loop_run (loop);
@@ -228,6 +228,102 @@ test_cancel_null (void)
   g_cancellable_cancel (NULL);
 }
 
+typedef struct
+{
+  GCond cond;
+  GMutex mutex;
+  gboolean thread_ready;
+  GAsyncQueue *cancellable_source_queue;  /* (owned) (element-type GCancellableSource) */
+} ThreadedDisposeData;
+
+static gboolean
+cancelled_cb (GCancellable *cancellable,
+              gpointer      user_data)
+{
+  /* Nothing needs to be done here. */
+  return G_SOURCE_CONTINUE;
+}
+
+static gpointer
+threaded_dispose_thread_cb (gpointer user_data)
+{
+  ThreadedDisposeData *data = user_data;
+  GSource *cancellable_source;
+
+  g_mutex_lock (&data->mutex);
+  data->thread_ready = TRUE;
+  g_cond_broadcast (&data->cond);
+  g_mutex_unlock (&data->mutex);
+
+  while ((cancellable_source = g_async_queue_pop (data->cancellable_source_queue)) != (gpointer) 1)
+    {
+      /* Race with cancellation of the cancellable. */
+      g_source_unref (cancellable_source);
+    }
+
+  return NULL;
+}
+
+static void
+test_cancellable_source_threaded_dispose (void)
+{
+  ThreadedDisposeData data;
+  GThread *thread = NULL;
+  guint i;
+
+  g_test_summary ("Test a thread race between disposing of a GCancellableSource "
+                  "(in one thread) and cancelling the GCancellable it refers "
+                  "to (in another thread)");
+  g_test_bug ("https://gitlab.gnome.org/GNOME/glib/issues/1841");
+
+  /* Create a new thread and wait until it’s ready to execute. Each iteration of
+   * the test will pass it a new #GCancellableSource. */
+  g_cond_init (&data.cond);
+  g_mutex_init (&data.mutex);
+  data.cancellable_source_queue = g_async_queue_new_full ((GDestroyNotify) g_source_unref);
+  data.thread_ready = FALSE;
+
+  g_mutex_lock (&data.mutex);
+  thread = g_thread_new ("/cancellable-source/threaded-dispose",
+                         threaded_dispose_thread_cb, &data);
+
+  while (!data.thread_ready)
+    g_cond_wait (&data.cond, &data.mutex);
+  g_mutex_unlock (&data.mutex);
+
+  for (i = 0; i < 100000; i++)
+    {
+      GCancellable *cancellable = NULL;
+      GSource *cancellable_source = NULL;
+
+      /* Create a cancellable and a cancellable source for it. For this test,
+       * there’s no need to attach the source to a #GMainContext. */
+      cancellable = g_cancellable_new ();
+      cancellable_source = g_cancellable_source_new (cancellable);
+      g_source_set_callback (cancellable_source, G_SOURCE_FUNC (cancelled_cb), NULL, NULL);
+
+      /* Send it to the thread and wait until it’s ready to execute before
+       * cancelling our cancellable. */
+      g_async_queue_push (data.cancellable_source_queue, g_steal_pointer (&cancellable_source));
+
+      /* Race with disposal of the cancellable source. */
+      g_cancellable_cancel (cancellable);
+
+      g_object_unref (cancellable);
+    }
+
+  /* Indicate that the test has finished. Can’t use %NULL as #GAsyncQueue
+   * doesn’t allow that.*/
+  g_async_queue_push (data.cancellable_source_queue, (gpointer) 1);
+
+  g_thread_join (g_steal_pointer (&thread));
+
+  g_assert (g_async_queue_length (data.cancellable_source_queue) == 0);
+  g_async_queue_unref (data.cancellable_source_queue);
+  g_mutex_clear (&data.mutex);
+  g_cond_clear (&data.cond);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -235,6 +331,7 @@ main (int argc, char *argv[])
 
   g_test_add_func ("/cancellable/multiple-concurrent", test_cancel_multiple_concurrent);
   g_test_add_func ("/cancellable/null", test_cancel_null);
+  g_test_add_func ("/cancellable-source/threaded-dispose", test_cancellable_source_threaded_dispose);
 
   return g_test_run ();
 }
index 6d76099..2b0f1f7 100644 (file)
@@ -54,9 +54,16 @@ test_basic (void)
   g_assert_cmpuint (g_credentials_get_unix_user (creds, &error), ==,
       geteuid ());
   g_assert_no_error (error);
-  g_assert_cmpuint (g_credentials_get_unix_pid (creds, &error), ==,
+
+#if G_CREDENTIALS_HAS_PID
+  g_assert_cmpint (g_credentials_get_unix_pid (creds, &error), ==,
       getpid ());
   g_assert_no_error (error);
+#else
+  g_assert_cmpint (g_credentials_get_unix_pid (creds, &error), ==, -1);
+  g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED);
+  g_clear_error (&error);
+#endif
 
   set = g_credentials_set_unix_user (other, not_me, &error);
 #if G_CREDENTIALS_SPOOFING_SUPPORTED
@@ -92,6 +99,14 @@ test_basic (void)
           g_assert_cmpuint (native->uid, ==, geteuid ());
           g_assert_cmpuint (native->pid, ==, getpid ());
         }
+#elif G_CREDENTIALS_USE_APPLE_XUCRED
+        {
+          struct xucred *native = g_credentials_get_native (creds,
+              G_CREDENTIALS_TYPE_APPLE_XUCRED);
+
+          g_assert_cmpuint (native->cr_version, ==, XUCRED_VERSION);
+          g_assert_cmpuint (native->cr_uid, ==, geteuid ());
+        }
 #elif G_CREDENTIALS_USE_FREEBSD_CMSGCRED
         {
           struct cmsgcred *native = g_credentials_get_native (creds,
index 8d3aafa..c3877af 100644 (file)
@@ -18,11 +18,11 @@ test_basic_for_file (GFile       *file,
   g_free (s);
 
   s = g_file_get_uri (file);
-  g_assert (g_str_has_prefix (s, "file://"));
-  g_assert (g_str_has_suffix (s, suffix));
+  g_assert_true (g_str_has_prefix (s, "file://"));
+  g_assert_true (g_str_has_suffix (s, suffix));
   g_free (s);
 
-  g_assert (g_file_has_uri_scheme (file, "file"));
+  g_assert_true (g_file_has_uri_scheme (file, "file"));
   s = g_file_get_uri_scheme (file);
   g_assert_cmpstr (s, ==, "file");
   g_free (s);
@@ -64,13 +64,13 @@ test_parent (void)
   file2 = g_file_new_for_path ("./some/directory");
   root = g_file_new_for_path ("/");
 
-  g_assert (g_file_has_parent (file, file2));
+  g_assert_true (g_file_has_parent (file, file2));
 
   parent = g_file_get_parent (file);
-  g_assert (g_file_equal (parent, file2));
+  g_assert_true (g_file_equal (parent, file2));
   g_object_unref (parent);
 
-  g_assert (g_file_get_parent (root) == NULL);
+  g_assert_null (g_file_get_parent (root));
 
   g_object_unref (file);
   g_object_unref (file2);
@@ -86,10 +86,10 @@ test_child (void)
 
   file = g_file_new_for_path ("./some/directory");
   child = g_file_get_child (file, "child");
-  g_assert (g_file_has_parent (child, file));
+  g_assert_true (g_file_has_parent (child, file));
 
   child2 = g_file_get_child_for_display_name (file, "child2", NULL);
-  g_assert (g_file_has_parent (child2, file));
+  g_assert_true (g_file_has_parent (child2, file));
 
   g_object_unref (child);
   g_object_unref (child2);
@@ -137,18 +137,18 @@ test_parse_name (void)
 
   file = g_file_parse_name ("~foo");
   name = g_file_get_parse_name (file);
-  g_assert (name != NULL);
+  g_assert_nonnull (name);
   g_object_unref (file);
   g_free (name);
 }
 
 typedef struct
 {
+  GMainContext *context;
   GFile *file;
   GFileMonitor *monitor;
   GOutputStream *ostream;
   GInputStream *istream;
-  GMainLoop *loop;
   gint buffersize;
   gint monitor_created;
   gint monitor_deleted;
@@ -158,6 +158,8 @@ typedef struct
   const gchar *data;
   gchar *buffer;
   guint timeout;
+  gboolean file_deleted;
+  gboolean timed_out;
 } CreateDeleteData;
 
 static void
@@ -183,18 +185,8 @@ monitor_changed (GFileMonitor      *monitor,
     data->monitor_deleted++;
   if (event_type == G_FILE_MONITOR_EVENT_CHANGED)
     data->monitor_changed++;
-}
-
-
-static gboolean
-quit_idle (gpointer user_data)
-{
-  CreateDeleteData *data = user_data;
-
-  g_source_remove (data->timeout); 
-  g_main_loop_quit (data->loop);
 
-  return FALSE;
+  g_main_context_wakeup (data->context);
 }
 
 static void
@@ -209,19 +201,16 @@ iclosed_cb (GObject      *source,
   error = NULL;
   ret = g_input_stream_close_finish (data->istream, res, &error);
   g_assert_no_error (error);
-  g_assert (ret);
+  g_assert_true (ret);
 
-  g_assert (g_input_stream_is_closed (data->istream));
+  g_assert_true (g_input_stream_is_closed (data->istream));
 
   ret = g_file_delete (data->file, NULL, &error);
-  g_assert (ret);
+  g_assert_true (ret);
   g_assert_no_error (error);
 
-  /* work around file monitor bug:
-   * inotify events are only processed every 1000 ms, regardless
-   * of the rate limit set on the file monitor
-   */
-  g_timeout_add (2000, quit_idle, data);
+  data->file_deleted = TRUE;
+  g_main_context_wakeup (data->context);
 }
 
 static void
@@ -251,7 +240,7 @@ read_cb (GObject      *source,
   else
     {
       g_assert_cmpstr (data->buffer, ==, data->data);
-      g_assert (!g_input_stream_is_closed (data->istream));
+      g_assert_false (g_input_stream_is_closed (data->istream));
       g_input_stream_close_async (data->istream, 0, NULL, iclosed_cb, data);
     }
 }
@@ -346,8 +335,8 @@ oclosed_cb (GObject      *source,
   error = NULL;
   ret = g_output_stream_close_finish (data->ostream, res, &error);
   g_assert_no_error (error);
-  g_assert (ret);
-  g_assert (g_output_stream_is_closed (data->ostream));
+  g_assert_true (ret);
+  g_assert_true (g_output_stream_is_closed (data->ostream));
 
   g_file_read_async (data->file, 0, NULL, opened_cb, data);
 }
@@ -378,7 +367,7 @@ written_cb (GObject      *source,
     }
   else
     {
-      g_assert (!g_output_stream_is_closed (data->ostream));
+      g_assert_false (g_output_stream_is_closed (data->ostream));
       g_output_stream_close_async (data->ostream, 0, NULL, oclosed_cb, data);
     }
 }
@@ -409,7 +398,7 @@ created_cb (GObject      *source,
   error = NULL;
   base = g_file_create_finish (G_FILE (source), res, &error);
   g_assert_no_error (error);
-  g_assert (g_file_query_exists  (data->file, NULL));
+  g_assert_true (g_file_query_exists (data->file, NULL));
 
   if (data->buffersize == 0)
     data->ostream = G_OUTPUT_STREAM (g_object_ref (base));
@@ -435,11 +424,14 @@ created_cb (GObject      *source,
 }
 
 static gboolean
-stop_timeout (gpointer data)
+stop_timeout (gpointer user_data)
 {
-  g_assert_not_reached ();
+  CreateDeleteData *data = user_data;
 
-  return FALSE;
+  data->timed_out = TRUE;
+  g_main_context_wakeup (data->context);
+
+  return G_SOURCE_REMOVE;
 }
 
 /*
@@ -461,13 +453,13 @@ test_create_delete (gconstpointer d)
 
   data->file = g_file_new_tmp ("g_file_create_delete_XXXXXX",
                               &iostream, NULL);
-  g_assert (data->file != NULL);
+  g_assert_nonnull (data->file);
   g_object_unref (iostream);
 
   data->monitor_path = g_file_get_path (data->file);
   remove (data->monitor_path);
 
-  g_assert (!g_file_query_exists  (data->file, NULL));
+  g_assert_false (g_file_query_exists (data->file, NULL));
 
   error = NULL;
   data->monitor = g_file_monitor_file (data->file, 0, NULL, &error);
@@ -495,23 +487,32 @@ test_create_delete (gconstpointer d)
 
   g_signal_connect (data->monitor, "changed", G_CALLBACK (monitor_changed), data);
 
-  data->loop = g_main_loop_new (NULL, FALSE);
-
-  data->timeout = g_timeout_add (10000, stop_timeout, NULL);
+  /* Use the global default main context */
+  data->context = NULL;
+  data->timeout = g_timeout_add_seconds (10, stop_timeout, data);
 
   g_file_create_async (data->file, 0, 0, NULL, created_cb, data);
 
-  g_main_loop_run (data->loop);
+  while (!data->timed_out &&
+         (data->monitor_created == 0 ||
+          data->monitor_deleted == 0 ||
+          data->monitor_changed == 0 ||
+          !data->file_deleted))
+    g_main_context_iteration (data->context, TRUE);
 
+  g_source_remove (data->timeout);
+
+  g_assert_false (data->timed_out);
+  g_assert_true (data->file_deleted);
   g_assert_cmpint (data->monitor_created, ==, 1);
   g_assert_cmpint (data->monitor_deleted, ==, 1);
   g_assert_cmpint (data->monitor_changed, >, 0);
 
-  g_assert (!g_file_monitor_is_cancelled (data->monitor));
+  g_assert_false (g_file_monitor_is_cancelled (data->monitor));
   g_file_monitor_cancel (data->monitor);
-  g_assert (g_file_monitor_is_cancelled (data->monitor));
+  g_assert_true (g_file_monitor_is_cancelled (data->monitor));
 
-  g_main_loop_unref (data->loop);
+  g_clear_pointer (&data->context, g_main_context_unref);
   g_object_unref (data->ostream);
   g_object_unref (data->istream);
 
@@ -582,7 +583,7 @@ loaded_cb (GObject      *source,
 
   error = NULL;
   ret = g_file_load_contents_finish (data->file, res, &contents, &length, NULL, &error);
-  g_assert (ret);
+  g_assert_true (ret);
   g_assert_no_error (error);
   g_assert_cmpint (length, ==, strlen (data->data));
   g_assert_cmpstr (contents, ==, data->data);
@@ -609,8 +610,8 @@ loaded_cb (GObject      *source,
        error = NULL;
        ret = g_file_delete (data->file, NULL, &error);
        g_assert_no_error (error);
-       g_assert (ret);
-       g_assert (!g_file_query_exists (data->file, NULL));
+       g_assert_true (ret);
+       g_assert_false (g_file_query_exists (data->file, NULL));
 
        g_main_loop_quit (data->loop);
     }
@@ -644,13 +645,13 @@ test_replace_load (void)
 
   data->file = g_file_new_tmp ("g_file_replace_load_XXXXXX",
                               &iostream, NULL);
-  g_assert (data->file != NULL);
+  g_assert_nonnull (data->file);
   g_object_unref (iostream);
 
   path = g_file_peek_path (data->file);
   remove (path);
 
-  g_assert (!g_file_query_exists (data->file, NULL));
+  g_assert_false (g_file_query_exists (data->file, NULL));
 
   data->loop = g_main_loop_new (NULL, FALSE);
 
@@ -717,11 +718,11 @@ test_replace_cancel (void)
 
   info = g_file_enumerator_next_file (fenum, NULL, &error);
   g_assert_no_error (error);
-  g_assert (info != NULL);
+  g_assert_nonnull (info);
   g_object_unref (info);
   info = g_file_enumerator_next_file (fenum, NULL, &error);
   g_assert_no_error (error);
-  g_assert (info != NULL);
+  g_assert_nonnull (info);
   g_object_unref (info);
 
   g_file_enumerator_close (fenum, NULL, &error);
@@ -736,7 +737,7 @@ test_replace_cancel (void)
   while (TRUE)
     {
       gboolean ret = g_file_enumerator_iterate (fenum, &info, NULL, NULL, &error);
-      g_assert (ret);
+      g_assert_true (ret);
       g_assert_no_error (error);
       if (!info)
         break;
@@ -758,13 +759,13 @@ test_replace_cancel (void)
       GFile *child;
       gboolean ret = g_file_enumerator_iterate (fenum, NULL, &child, NULL, &error);
 
-      g_assert (ret);
+      g_assert_true (ret);
       g_assert_no_error (error);
 
       if (!child)
         break;
 
-      g_assert (G_IS_FILE (child));
+      g_assert_true (G_IS_FILE (child));
       count++;
     }
   g_assert_cmpint (count, ==, 2);
@@ -832,7 +833,7 @@ test_async_delete (void)
   g_assert_no_error (local_error);
   g_object_unref (iostream);
 
-  g_assert (g_file_query_exists (file, NULL));
+  g_assert_true (g_file_query_exists (file, NULL));
 
   loop = g_main_loop_new (NULL, TRUE);
 
@@ -840,7 +841,7 @@ test_async_delete (void)
 
   g_main_loop_run (loop);
 
-  g_assert (!g_file_query_exists (file, NULL));
+  g_assert_false (g_file_query_exists (file, NULL));
 
   g_main_loop_unref (loop);
   g_object_unref (file);
@@ -1034,7 +1035,7 @@ test_measure (void)
                                   &num_dirs,
                                   &num_files,
                                   &error);
-  g_assert (ok);
+  g_assert_true (ok);
   g_assert_no_error (error);
 
   if (size > 0)
@@ -1087,7 +1088,7 @@ measure_done (GObject      *source,
   gboolean ok;
 
   ok = g_file_measure_disk_usage_finish (G_FILE (source), res, &num_bytes, &num_dirs, &num_files, &error);
-  g_assert (ok);
+  g_assert_true (ok);
   g_assert_no_error (error);
 
   if (data->expected_bytes > 0)
@@ -1160,7 +1161,7 @@ test_load_bytes (void)
   file = g_file_new_for_path (filename);
   bytes = g_file_load_bytes (file, NULL, NULL, &error);
   g_assert_no_error (error);
-  g_assert (bytes != NULL);
+  g_assert_nonnull (bytes);
   g_assert_cmpint (len, ==, g_bytes_get_size (bytes));
   g_assert_cmpstr ("test_load_bytes", ==, (gchar *)g_bytes_get_data (bytes, NULL));
 
@@ -1188,7 +1189,7 @@ test_load_bytes_cb (GObject      *object,
 
   data->bytes = g_file_load_bytes_finish (file, result, NULL, &error);
   g_assert_no_error (error);
-  g_assert (data->bytes != NULL);
+  g_assert_nonnull (data->bytes);
 
   g_main_loop_quit (data->main_loop);
 }
index 1fbdf71..c4cfd37 100644 (file)
@@ -229,6 +229,13 @@ test_internal_enhanced_stdio (void)
     { 0x62AB5D82, 0xFDC1, 0x4DC3, { 0xA9, 0xDD, 0x07, 0x0D, 0x1D, 0x49, 0x5D, 0x97 } };
   static const GUID folder_id_users = 
     { 0x0762D272, 0xC50A, 0x4BB0, { 0xA3, 0x82, 0x69, 0x7D, 0xCD, 0x72, 0x9B, 0x80 } };
+  GDateTime *dt = NULL, *dt2 = NULL;
+  GTimeSpan ts;
+  /* Just before SYSTEMTIME limit (Jan 1 30827) */
+  const gint64 one_sec_before_systemtime_limit = 910670515199;
+  gboolean retval;
+  GError *local_error = NULL;
+
 
   programdata_dir_w = NULL;
   SHGetKnownFolderPath (&folder_id_programdata, 0, NULL, &programdata_dir_w);
@@ -552,7 +559,8 @@ test_internal_enhanced_stdio (void)
                              G_FILE_ATTRIBUTE_STANDARD_SIZE ","
                              G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE ","
                              G_FILE_ATTRIBUTE_ID_FILE ","
-                             G_FILE_ATTRIBUTE_TIME_MODIFIED,
+                             G_FILE_ATTRIBUTE_TIME_MODIFIED ","
+                             G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC,
                              G_FILE_QUERY_INFO_NONE,
                              NULL, NULL);
 
@@ -560,7 +568,8 @@ test_internal_enhanced_stdio (void)
                              G_FILE_ATTRIBUTE_STANDARD_SIZE ","
                              G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE ","
                              G_FILE_ATTRIBUTE_ID_FILE ","
-                             G_FILE_ATTRIBUTE_TIME_MODIFIED,
+                             G_FILE_ATTRIBUTE_TIME_MODIFIED ","
+                             G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC,
                              G_FILE_QUERY_INFO_NONE,
                              NULL, NULL);
 
@@ -568,11 +577,13 @@ test_internal_enhanced_stdio (void)
   g_assert_true (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE));
   g_assert_true (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_ID_FILE));
   g_assert_true (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_TIME_MODIFIED));
+  g_assert_true (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC));
 
   g_assert_true (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_STANDARD_SIZE));
   g_assert_true (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE));
   g_assert_true (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_ID_FILE));
   g_assert_true (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_TIME_MODIFIED));
+  g_assert_true (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC));
 
   size_p0 = g_file_info_get_attribute_uint64 (fi_p0, G_FILE_ATTRIBUTE_STANDARD_SIZE);
   alsize_p0 = g_file_info_get_attribute_uint64 (fi_p0, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE);
@@ -604,6 +615,56 @@ test_internal_enhanced_stdio (void)
    */
   g_assert_cmpuint (time_p0, >, G_GUINT64_CONSTANT (0xFFFFFFFF));
 
+  dt = g_file_info_get_modification_date_time (fi_p0);
+  g_assert_nonnull (dt);
+  dt2 = g_date_time_add (dt, G_USEC_PER_SEC / 100 * 200);
+  g_object_unref (fi_p0);
+  fi_p0 = g_file_info_new ();
+  g_file_info_set_modification_date_time (fi_p0, dt2);
+
+  g_assert_true (g_file_set_attributes_from_info (gf_p0,
+                                                  fi_p0,
+                                                  G_FILE_QUERY_INFO_NONE,
+                                                  NULL,
+                                                  NULL));
+  g_date_time_unref (dt2);
+  g_object_unref (fi_p0);
+  fi_p0 = g_file_query_info (gf_p0,
+                             G_FILE_ATTRIBUTE_TIME_MODIFIED ","
+                             G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC,
+                             G_FILE_QUERY_INFO_NONE,
+                             NULL, NULL);
+  dt2 = g_file_info_get_modification_date_time (fi_p0);
+  ts = g_date_time_difference (dt2, dt);
+  g_assert_cmpint (ts, >, 0);
+  g_assert_cmpint (ts, <, G_USEC_PER_SEC / 100 * 300);
+
+  g_date_time_unref (dt);
+  g_date_time_unref (dt2);
+
+  g_file_info_set_attribute_uint64 (fi_p0,
+                                    G_FILE_ATTRIBUTE_TIME_MODIFIED,
+                                    one_sec_before_systemtime_limit);
+  g_file_info_set_attribute_uint32 (fi_p0, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC, 0);
+  g_assert_true (g_file_set_attributes_from_info (gf_p0,
+                                                  fi_p0,
+                                                  G_FILE_QUERY_INFO_NONE,
+                                                  NULL,
+                                                  NULL));
+
+  g_file_info_set_attribute_uint64 (fi_p0,
+                                   G_FILE_ATTRIBUTE_TIME_MODIFIED,
+                                   one_sec_before_systemtime_limit + G_USEC_PER_SEC * 2);
+  g_file_info_set_attribute_uint32 (fi_p0, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC, 0);
+  retval = g_file_set_attributes_from_info (gf_p0,
+                                            fi_p0,
+                                            G_FILE_QUERY_INFO_NONE,
+                                            NULL,
+                                            &local_error);
+  g_assert_error (local_error, G_IO_ERROR, G_IO_ERROR_INVALID_DATA);
+  g_assert_false (retval);
+  g_clear_error (&local_error);
+
   g_object_unref (fi_p0);
   g_object_unref (fi_p1);
   g_object_unref (gf_p0);
index 26c21ee..dbff79c 100644 (file)
@@ -39,7 +39,7 @@ test_empty_address (void)
   g_error_free (error);
 }
 
-/* Test that g_dbus_is_supported_address() returns FALSE for an unparseable
+/* Test that g_dbus_is_supported_address() returns FALSE for an unparsable
  * address. */
 static void
 test_unsupported_address (void)
@@ -221,4 +221,3 @@ main (int   argc,
 
   return g_test_run();
 }
-
index f44e932..8be4473 100644 (file)
@@ -310,4 +310,3 @@ main (int   argc,
 
   return ret;
 }
-
index 4690185..7bd7a02 100644 (file)
@@ -89,6 +89,7 @@ static const GDBusInterfaceVTable boo_vtable =
   NULL  /* _set_property */
 };
 
+/* Runs in a worker thread. */
 static GDBusMessage *
 some_filter_func (GDBusConnection *connection,
                   GDBusMessage    *message,
@@ -129,9 +130,9 @@ test_connection_bus_failure (void)
    *
    */
   c = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
-  g_assert (error != NULL);
-  g_assert (!g_dbus_error_is_remote_error (error));
-  g_assert (c == NULL);
+  g_assert_nonnull (error);
+  g_assert_false (g_dbus_error_is_remote_error (error));
+  g_assert_null (c);
   g_error_free (error);
 }
 
@@ -159,8 +160,8 @@ test_connection_life_cycle (void)
   error = NULL;
   c = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
   g_assert_no_error (error);
-  g_assert (c != NULL);
-  g_assert (!g_dbus_connection_is_closed (c));
+  g_assert_nonnull (c);
+  g_assert_false (g_dbus_connection_is_closed (c));
 
   /*
    * Check that singleton handling work
@@ -168,8 +169,8 @@ test_connection_life_cycle (void)
   error = NULL;
   c2 = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
   g_assert_no_error (error);
-  g_assert (c2 != NULL);
-  g_assert (c == c2);
+  g_assert_nonnull (c2);
+  g_assert_true (c == c2);
   g_object_unref (c2);
 
   /*
@@ -177,23 +178,23 @@ test_connection_life_cycle (void)
    */
   c2 = _g_bus_get_priv (G_BUS_TYPE_SESSION, NULL, &error);
   g_assert_no_error (error);
-  g_assert (c2 != NULL);
-  g_assert (c != c2);
+  g_assert_nonnull (c2);
+  g_assert_true (c != c2);
   g_object_unref (c2);
 
   c2 = _g_bus_get_priv (G_BUS_TYPE_SESSION, NULL, &error);
   g_assert_no_error (error);
-  g_assert (c2 != NULL);
-  g_assert (!g_dbus_connection_is_closed (c2));
+  g_assert_nonnull (c2);
+  g_assert_false (g_dbus_connection_is_closed (c2));
   ret = g_dbus_connection_close_sync (c2, NULL, &error);
   g_assert_no_error (error);
-  g_assert (ret);
+  g_assert_true (ret);
   _g_assert_signal_received (c2, "closed");
-  g_assert (g_dbus_connection_is_closed (c2));
+  g_assert_true (g_dbus_connection_is_closed (c2));
   ret = g_dbus_connection_close_sync (c2, NULL, &error);
   g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CLOSED);
   g_error_free (error);
-  g_assert (!ret);
+  g_assert_false (ret);
   g_object_unref (c2);
 
   /*
@@ -205,7 +206,7 @@ test_connection_life_cycle (void)
   error = NULL;
   c2 = _g_bus_get_priv (G_BUS_TYPE_SESSION, NULL, &error);
   g_assert_no_error (error);
-  g_assert (c2 != NULL);
+  g_assert_nonnull (c2);
   /* signal registration */
   on_signal_registration_freed_called = FALSE;
   g_dbus_connection_signal_subscribe (c2,
@@ -235,7 +236,7 @@ test_connection_life_cycle (void)
                                                        a_gdestroynotify_that_sets_a_gboolean_to_true_and_quits_loop,
                                                        &error);
   g_assert_no_error (error);
-  g_assert (registration_id > 0);
+  g_assert_cmpuint (registration_id, >, 0);
   /* ok, finalize the connection and check that all the GDestroyNotify functions are invoked as expected */
   g_object_unref (c2);
   quit_mainloop_fired = FALSE;
@@ -260,20 +261,20 @@ test_connection_life_cycle (void)
       _log ("exiting loop");
     }
   g_source_remove (quit_mainloop_id);
-  g_assert (on_signal_registration_freed_called);
-  g_assert (on_filter_freed_called);
-  g_assert (on_register_object_freed_called);
-  g_assert (!quit_mainloop_fired);
+  g_assert_true (on_signal_registration_freed_called);
+  g_assert_true (on_filter_freed_called);
+  g_assert_true (on_register_object_freed_called);
+  g_assert_false (quit_mainloop_fired);
 
   /*
    *  Check for correct behavior when the bus goes away
    *
    */
-  g_assert (!g_dbus_connection_is_closed (c));
+  g_assert_false (g_dbus_connection_is_closed (c));
   g_dbus_connection_set_exit_on_close (c, FALSE);
   session_bus_stop ();
   _g_assert_signal_received (c, "closed");
-  g_assert (g_dbus_connection_is_closed (c));
+  g_assert_true (g_dbus_connection_is_closed (c));
   g_object_unref (c);
 
   session_bus_down ();
@@ -299,9 +300,9 @@ msg_cb_expect_error_disconnected (GDBusConnection *connection,
                                           res,
                                           &error);
   g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CLOSED);
-  g_assert (!g_dbus_error_is_remote_error (error));
+  g_assert_false (g_dbus_error_is_remote_error (error));
   g_error_free (error);
-  g_assert (result == NULL);
+  g_assert_null (result);
 
   g_main_loop_quit (loop);
 }
@@ -322,9 +323,9 @@ msg_cb_expect_error_unknown_method (GDBusConnection *connection,
                                           res,
                                           &error);
   g_assert_error (error, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD);
-  g_assert (g_dbus_error_is_remote_error (error));
+  g_assert_true (g_dbus_error_is_remote_error (error));
   g_error_free (error);
-  g_assert (result == NULL);
+  g_assert_null (result);
 
   g_main_loop_quit (loop);
 }
@@ -345,7 +346,7 @@ msg_cb_expect_success (GDBusConnection *connection,
                                           res,
                                           &error);
   g_assert_no_error (error);
-  g_assert (result != NULL);
+  g_assert_nonnull (result);
   g_variant_unref (result);
 
   g_main_loop_quit (loop);
@@ -367,9 +368,9 @@ msg_cb_expect_error_cancelled (GDBusConnection *connection,
                                           res,
                                           &error);
   g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
-  g_assert (!g_dbus_error_is_remote_error (error));
+  g_assert_false (g_dbus_error_is_remote_error (error));
   g_error_free (error);
-  g_assert (result == NULL);
+  g_assert_null (result);
 
   g_main_loop_quit (loop);
 }
@@ -390,9 +391,9 @@ msg_cb_expect_error_cancelled_2 (GDBusConnection *connection,
                                           res,
                                           &error);
   g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
-  g_assert (!g_dbus_error_is_remote_error (error));
+  g_assert_false (g_dbus_error_is_remote_error (error));
   g_error_free (error);
-  g_assert (result == NULL);
+  g_assert_null (result);
 
   g_main_loop_quit (loop);
 }
@@ -409,8 +410,8 @@ test_connection_send (void)
 
   /* First, get an unopened connection */
   c = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
-  g_assert (c != NULL);
-  g_assert (!g_dbus_connection_is_closed (c));
+  g_assert_nonnull (c);
+  g_assert_false (g_dbus_connection_is_closed (c));
 
   /*
    * Check that we never actually send a message if the GCancellable
@@ -490,7 +491,7 @@ test_connection_send (void)
   g_dbus_connection_set_exit_on_close (c, FALSE);
   session_bus_stop ();
   _g_assert_signal_received (c, "closed");
-  g_assert (g_dbus_connection_is_closed (c));
+  g_assert_true (g_dbus_connection_is_closed (c));
 
   g_dbus_connection_call (c,
                           "org.freedesktop.DBus",  /* bus_name */
@@ -567,13 +568,13 @@ test_connection_signals (void)
   if (g_getenv ("G_DBUS_MONITOR") == NULL)
     {
       c1 = _g_bus_get_priv (G_BUS_TYPE_SESSION, NULL, NULL);
-      g_assert (c1 != NULL);
-      g_assert (!g_dbus_connection_is_closed (c1));
+      g_assert_nonnull (c1);
+      g_assert_false (g_dbus_connection_is_closed (c1));
       g_object_unref (c1);
     }
   c1 = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
-  g_assert (c1 != NULL);
-  g_assert (!g_dbus_connection_is_closed (c1));
+  g_assert_nonnull (c1);
+  g_assert_false (g_dbus_connection_is_closed (c1));
   g_assert_cmpstr (g_dbus_connection_get_unique_name (c1), ==, ":1.1");
 
   /*
@@ -628,10 +629,10 @@ test_connection_signals (void)
                                             test_connection_signal_handler,
                                             &count_s1b,
                                             NULL);
-  g_assert (s1 != 0);
-  g_assert (s1b != 0);
-  g_assert (s2 != 0);
-  g_assert (s3 != 0);
+  g_assert_cmpuint (s1, !=, 0);
+  g_assert_cmpuint (s1b, !=, 0);
+  g_assert_cmpuint (s2, !=, 0);
+  g_assert_cmpuint (s3, !=, 0);
 
   count_s1 = 0;
   count_s1b = 0;
@@ -661,19 +662,19 @@ test_connection_signals (void)
                                         NULL,
                                         &error);
   g_assert_no_error (error);
-  g_assert (result != NULL);
+  g_assert_nonnull (result);
   g_variant_unref (result);
 
   /*
    * Bring up two other connections
    */
   c2 = _g_bus_get_priv (G_BUS_TYPE_SESSION, NULL, NULL);
-  g_assert (c2 != NULL);
-  g_assert (!g_dbus_connection_is_closed (c2));
+  g_assert_nonnull (c2);
+  g_assert_false (g_dbus_connection_is_closed (c2));
   g_assert_cmpstr (g_dbus_connection_get_unique_name (c2), ==, ":1.2");
   c3 = _g_bus_get_priv (G_BUS_TYPE_SESSION, NULL, NULL);
-  g_assert (c3 != NULL);
-  g_assert (!g_dbus_connection_is_closed (c3));
+  g_assert_nonnull (c3);
+  g_assert_false (g_dbus_connection_is_closed (c3));
   g_assert_cmpstr (g_dbus_connection_get_unique_name (c3), ==, ":1.3");
 
   /* now, emit the signal on c2 */
@@ -685,7 +686,7 @@ test_connection_signals (void)
                                        NULL,
                                        &error);
   g_assert_no_error (error);
-  g_assert (ret);
+  g_assert_true (ret);
   while (!(count_s1 >= 1 && count_s2 >= 1))
     g_main_loop_run (loop);
   g_assert_cmpint (count_s1, ==, 1);
@@ -702,7 +703,7 @@ test_connection_signals (void)
                                        NULL,
                                        &error);
   g_assert_no_error (error);
-  g_assert (ret);
+  g_assert_true (ret);
   while (!(count_s1 == 1 && count_s2 == 2))
     g_main_loop_run (loop);
   g_assert_cmpint (count_s1, ==, 1);
@@ -812,13 +813,15 @@ test_connection_signal_match_rules (void)
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+/* Accessed both from the test code and the filter function (in a worker thread)
+ * so all accesses must be atomic. */
 typedef struct
 {
-  guint num_handled;
-  guint num_outgoing;
-  guint32 serial;
+  GAsyncQueue *incoming_queue;  /* (element-type GDBusMessage) */
+  guint num_outgoing;  /* (atomic) */
 } FilterData;
 
+/* Runs in a worker thread. */
 static GDBusMessage *
 filter_func (GDBusConnection *connection,
              GDBusMessage    *message,
@@ -826,22 +829,31 @@ filter_func (GDBusConnection *connection,
              gpointer         user_data)
 {
   FilterData *data = user_data;
-  guint32 reply_serial;
 
   if (incoming)
-    {
-      reply_serial = g_dbus_message_get_reply_serial (message);
-      if (reply_serial == data->serial)
-        data->num_handled += 1;
-    }
+    g_async_queue_push (data->incoming_queue, g_object_ref (message));
   else
-    {
-      data->num_outgoing += 1;
-    }
+    g_atomic_int_inc (&data->num_outgoing);
 
   return message;
 }
 
+static void
+wait_for_filtered_reply (GAsyncQueue *incoming_queue,
+                         guint32      expected_serial)
+{
+  GDBusMessage *popped_message = NULL;
+
+  while ((popped_message = g_async_queue_pop (incoming_queue)) != NULL)
+    {
+      guint32 reply_serial = g_dbus_message_get_reply_serial (popped_message);
+      g_object_unref (popped_message);
+      if (reply_serial == expected_serial)
+        return;
+    }
+
+  g_assert_not_reached ();
+}
 
 typedef struct
 {
@@ -849,13 +861,14 @@ typedef struct
   gboolean alter_outgoing;
 } FilterEffects;
 
+/* Runs in a worker thread. */
 static GDBusMessage *
 other_filter_func (GDBusConnection *connection,
                    GDBusMessage    *message,
                    gboolean         incoming,
                    gpointer         user_data)
 {
-  FilterEffects *effects = user_data;
+  const FilterEffects *effects = user_data;
   GDBusMessage *ret;
   gboolean alter;
 
@@ -928,7 +941,7 @@ static void
 test_connection_filter (void)
 {
   GDBusConnection *c;
-  FilterData data;
+  FilterData data = { NULL, 0 };
   GDBusMessage *m;
   GDBusMessage *m2;
   GDBusMessage *r;
@@ -939,16 +952,17 @@ test_connection_filter (void)
   FilterEffects effects;
   GVariant *result;
   const gchar *s;
-
-  memset (&data, '\0', sizeof (FilterData));
+  guint32 serial_temp;
 
   session_bus_up ();
 
   error = NULL;
   c = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
   g_assert_no_error (error);
-  g_assert (c != NULL);
+  g_assert_nonnull (c);
 
+  data.incoming_queue = g_async_queue_new_full (g_object_unref);
+  data.num_outgoing = 0;
   filter_id = g_dbus_connection_add_filter (c,
                                             filter_func,
                                             &data,
@@ -960,32 +974,29 @@ test_connection_filter (void)
                                       "GetNameOwner");
   g_dbus_message_set_body (m, g_variant_new ("(s)", "org.freedesktop.DBus"));
   error = NULL;
-  g_dbus_connection_send_message (c, m, G_DBUS_SEND_MESSAGE_FLAGS_NONE, &data.serial, &error);
+  g_dbus_connection_send_message (c, m, G_DBUS_SEND_MESSAGE_FLAGS_NONE, &serial_temp, &error);
   g_assert_no_error (error);
 
-  while (data.num_handled == 0)
-    g_thread_yield ();
+  wait_for_filtered_reply (data.incoming_queue, serial_temp);
 
   m2 = g_dbus_message_copy (m, &error);
   g_assert_no_error (error);
-  g_dbus_connection_send_message (c, m2, G_DBUS_SEND_MESSAGE_FLAGS_NONE, &data.serial, &error);
+  g_dbus_connection_send_message (c, m2, G_DBUS_SEND_MESSAGE_FLAGS_NONE, &serial_temp, &error);
   g_object_unref (m2);
   g_assert_no_error (error);
 
-  while (data.num_handled == 1)
-    g_thread_yield ();
+  wait_for_filtered_reply (data.incoming_queue, serial_temp);
 
   m2 = g_dbus_message_copy (m, &error);
   g_assert_no_error (error);
-  g_dbus_message_set_serial (m2, data.serial);
+  g_dbus_message_set_serial (m2, serial_temp);
   /* lock the message to test PRESERVE_SERIAL flag. */
   g_dbus_message_lock (m2);
-  g_dbus_connection_send_message (c, m2, G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL, &data.serial, &error);
+  g_dbus_connection_send_message (c, m2, G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL, &serial_temp, &error);
   g_object_unref (m2);
   g_assert_no_error (error);
 
-  while (data.num_handled == 2)
-    g_thread_yield ();
+  wait_for_filtered_reply (data.incoming_queue, serial_temp);
 
   m2 = g_dbus_message_copy (m, &error);
   g_assert_no_error (error);
@@ -993,14 +1004,16 @@ test_connection_filter (void)
                                                       m2,
                                                       G_DBUS_SEND_MESSAGE_FLAGS_NONE,
                                                       -1,
-                                                      &data.serial,
+                                                      &serial_temp,
                                                       NULL, /* GCancellable */
                                                       &error);
   g_object_unref (m2);
   g_assert_no_error (error);
-  g_assert (r != NULL);
+  g_assert_nonnull (r);
   g_object_unref (r);
-  g_assert_cmpint (data.num_handled, ==, 4);
+
+  wait_for_filtered_reply (data.incoming_queue, serial_temp);
+  g_assert_cmpint (g_async_queue_length (data.incoming_queue), ==, 0);
 
   g_dbus_connection_remove_filter (c, filter_id);
 
@@ -1010,15 +1023,15 @@ test_connection_filter (void)
                                                       m2,
                                                       G_DBUS_SEND_MESSAGE_FLAGS_NONE,
                                                       -1,
-                                                      &data.serial,
+                                                      &serial_temp,
                                                       NULL, /* GCancellable */
                                                       &error);
   g_object_unref (m2);
   g_assert_no_error (error);
-  g_assert (r != NULL);
+  g_assert_nonnull (r);
   g_object_unref (r);
-  g_assert_cmpint (data.num_handled, ==, 4);
-  g_assert_cmpint (data.num_outgoing, ==, 4);
+  g_assert_cmpint (g_async_queue_length (data.incoming_queue), ==, 0);
+  g_assert_cmpint (g_atomic_int_get (&data.num_outgoing), ==, 4);
 
   /* wait for service to be available */
   signal_handler_id = g_dbus_connection_signal_subscribe (c,
@@ -1034,7 +1047,7 @@ test_connection_filter (void)
   g_assert_cmpint (signal_handler_id, !=, 0);
 
   /* this is safe; testserver will exit once the bus goes away */
-  g_assert (g_spawn_command_line_async (g_test_get_filename (G_TEST_BUILT, "gdbus-testserver", NULL), NULL));
+  g_assert_true (g_spawn_command_line_async (g_test_get_filename (G_TEST_BUILT, "gdbus-testserver", NULL), NULL));
 
   timeout_mainloop_id = g_timeout_add (30000, test_connection_filter_on_timeout, NULL);
   g_main_loop_run (loop);
@@ -1090,6 +1103,7 @@ test_connection_filter (void)
 
   g_object_unref (c);
   g_object_unref (m);
+  g_async_queue_unref (data.incoming_queue);
 
   session_bus_down ();
 }
@@ -1159,7 +1173,7 @@ test_connection_serials (void)
   error = NULL;
   c = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
   g_assert_no_error (error);
-  g_assert (c != NULL);
+  g_assert_nonnull (c);
 
   /* Status after initialization */
   g_assert_cmpint (g_dbus_connection_get_last_serial (c), ==, 1);
@@ -1210,11 +1224,11 @@ test_connection_basic (void)
   error = NULL;
   connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
   g_assert_no_error (error);
-  g_assert (connection != NULL);
+  g_assert_nonnull (connection);
 
   flags = g_dbus_connection_get_capabilities (connection);
-  g_assert (flags == G_DBUS_CAPABILITY_FLAGS_NONE ||
-            flags == G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING);
+  g_assert_true (flags == G_DBUS_CAPABILITY_FLAGS_NONE ||
+                 flags == G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING);
 
   connection_flags = g_dbus_connection_get_flags (connection);
   g_assert_cmpint (connection_flags, ==,
@@ -1222,7 +1236,7 @@ test_connection_basic (void)
                    G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION);
 
   credentials = g_dbus_connection_get_peer_credentials (connection);
-  g_assert (credentials == NULL);
+  g_assert_null (credentials);
 
   g_object_get (connection,
                 "stream", &stream,
@@ -1233,13 +1247,13 @@ test_connection_basic (void)
                 "capabilities", &flags,
                 NULL);
 
-  g_assert (G_IS_IO_STREAM (stream));
-  g_assert (g_dbus_is_guid (guid));
-  g_assert (g_dbus_is_unique_name (name));
-  g_assert (!closed);
-  g_assert (exit_on_close);
-  g_assert (flags == G_DBUS_CAPABILITY_FLAGS_NONE ||
-            flags == G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING);
+  g_assert_true (G_IS_IO_STREAM (stream));
+  g_assert_true (g_dbus_is_guid (guid));
+  g_assert_true (g_dbus_is_unique_name (name));
+  g_assert_false (closed);
+  g_assert_true (exit_on_close);
+  g_assert_true (flags == G_DBUS_CAPABILITY_FLAGS_NONE ||
+                 flags == G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING);
   g_object_unref (stream);
   g_free (name);
   g_free (guid);
@@ -1257,9 +1271,6 @@ main (int   argc,
 {
   int ret;
 
-  /* FIXME: Add debug for https://gitlab.gnome.org/GNOME/glib/issues/1957 */
-  g_setenv ("G_DBUS_DEBUG", "all", TRUE);
-
   g_test_init (&argc, &argv, NULL);
 
   /* all the tests rely on a shared main loop */
index fda654c..ba53886 100644 (file)
@@ -1279,7 +1279,7 @@ test_object_registration (void)
   g_strfreev (nodes);
   g_assert_cmpint (count_interfaces (c, "/foo/dyna/dynamicallycreated"), ==, 4);
 
-  /* now check that the object hierarachy is properly generated... yes, it's a bit
+  /* now check that the object hierarchy is properly generated... yes, it's a bit
    * perverse that we round-trip to the bus to introspect ourselves ;-)
    */
   nodes = get_nodes_at (c, "/");
index 5cb141d..9323574 100644 (file)
@@ -223,4 +223,3 @@ main (int   argc,
 
   return g_test_run ();
 }
-
index 4cfb848..f9c3bce 100644 (file)
@@ -13,6 +13,8 @@ gdbus_example_objectmanager_generated = custom_target('objectmanager-gen',
              '--output-directory', '@OUTDIR@',
              '--generate-c-code', 'objectmanager-gen',
              '--generate-docbook', 'objectmanager-gen',
+             '--symbol-decorator', '_GLIB_EXTERN',
+             '--symbol-decorator-define', 'HAVE_CONFIG_H',
              '@INPUT@'])
 
 libgdbus_example_objectmanager = library('gdbus-example-objectmanager',
index d01bc9a..617d756 100644 (file)
@@ -344,7 +344,7 @@ on_new_connection (GDBusServer *server,
                    gpointer user_data)
 {
   PeerData *data = user_data;
-  GError *error;
+  GError *error = NULL;
   guint reg_id;
 
   //g_printerr ("Client connected.\n"
@@ -362,13 +362,19 @@ on_new_connection (GDBusServer *server,
       g_assert (credentials != NULL);
       g_assert_cmpuint (g_credentials_get_unix_user (credentials, NULL), ==,
                         getuid ());
-      g_assert_cmpuint (g_credentials_get_unix_pid (credentials, NULL), ==,
-                        getpid ());
+#if G_CREDENTIALS_HAS_PID
+      g_assert_cmpint (g_credentials_get_unix_pid (credentials, &error), ==,
+                       getpid ());
+      g_assert_no_error (error);
+#else
+      g_assert_cmpint (g_credentials_get_unix_pid (credentials, &error), ==, -1);
+      g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED);
+      g_clear_error (&error);
+#endif
     }
 #endif
 
   /* export object on the newly established connection */
-  error = NULL;
   reg_id = g_dbus_connection_register_object (connection,
                                               "/org/gtk/GDBus/PeerTestObject",
                                               test_interface_introspection_data,
@@ -922,8 +928,15 @@ do_test_peer (void)
 
     g_assert_cmpuint (g_credentials_get_unix_user (credentials, NULL), ==,
                       getuid ());
-    g_assert_cmpuint (g_credentials_get_unix_pid (credentials, NULL), ==,
-                      getpid ());
+#if G_CREDENTIALS_HAS_PID
+    g_assert_cmpint (g_credentials_get_unix_pid (credentials, &error), ==,
+                     getpid ());
+    g_assert_no_error (error);
+#else
+    g_assert_cmpint (g_credentials_get_unix_pid (credentials, &error), ==, -1);
+    g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED);
+    g_clear_error (&error);
+#endif
     g_object_unref (credentials);
 #else
     g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED);
@@ -1849,7 +1862,7 @@ codegen_test_peer (void)
   g_assert (value != NULL);
   g_variant_unref (value);
 
-  /* Give the proxies a chance to refresh in the defaul main loop */
+  /* Give the proxies a chance to refresh in the default main loop */
   g_timeout_add (100, codegen_quit_mainloop_timeout, NULL);
   g_main_loop_run (loop);
 
@@ -1884,7 +1897,7 @@ codegen_test_peer (void)
   g_assert (value != NULL);
   g_variant_unref (value);
 
-  /* Give the proxies a chance to refresh in the defaul main loop */
+  /* Give the proxies a chance to refresh in the default main loop */
   g_timeout_add (1000, codegen_quit_mainloop_timeout, NULL);
   g_main_loop_run (loop);
 
index 75ed21d..690a9cc 100644 (file)
@@ -230,7 +230,7 @@ test_proxy (void)
   g_main_loop_unref (loop);
 
   /* TODO: should call session_bus_down() but that requires waiting
-   * for all the oustanding method calls to complete...
+   * for all the outstanding method calls to complete...
    */
   if (g_test_verbose ())
     g_printerr ("\n");
index 05b22ea..a2160dc 100644 (file)
@@ -388,7 +388,7 @@ test_proxy_signals_on_emit_signal_cb (GDBusProxy   *proxy,
   g_assert_cmpstr (g_variant_get_type_string (result), ==, "()");
   g_variant_unref (result);
 
-  /* check that the signal was recieved before we got the method result */
+  /* check that the signal was received before we got the method result */
   g_assert_cmpuint (strlen (data->s->str), >, 0);
 
   /* break out of the loop */
index 2ca28d9..7bc53c6 100644 (file)
@@ -1451,4 +1451,3 @@ main (int   argc,
 
   return g_test_run();
 }
-
index 2554ad6..b3ee8aa 100644 (file)
@@ -244,6 +244,11 @@ assert_expected_uid_pid (InteropFlags flags,
        * on Linux. */
       g_assert_cmpint (uid, ==, getuid ());
       g_assert_cmpint (pid, ==, getpid ());
+#elif defined(__APPLE__)
+      /* We know (or at least suspect) that both GDBus and libdbus support
+       * passing the uid only on macOS. */
+      g_assert_cmpint (uid, ==, getuid ());
+      /* No pid here */
 #else
       g_test_message ("Please open a merge request to add appropriate "
                       "assertions for your platform");
index 691506f..bb1d059 100644 (file)
@@ -2434,7 +2434,7 @@ test_interface_stability (void)
  *
  * - check that a property with name "Type" is mapped into g-name "type"
  *   with C accessors get_type_ (to avoid clashing with the GType accessor)
- *   and set_type_ (for symmetri)
+ *   and set_type_ (for symmetry)
  *   (see https://bugzilla.gnome.org/show_bug.cgi?id=679473 for details)
  *
  * - (could add more tests here)
index 2b89fb0..4519fda 100644 (file)
@@ -409,7 +409,7 @@ test_method_calls_on_proxy (GDBusProxy *proxy)
   guint n, divisor;
 
   /*
-   * Check that multiple threads can do calls without interferring with
+   * Check that multiple threads can do calls without interfering with
    * each other. We do this by creating three threads that call the
    * Sleep() method on the server (which handles it asynchronously, e.g.
    * it won't block other requests) with different sleep durations and
index 4143bc3..34410f4 100644 (file)
@@ -181,4 +181,4 @@ main (int argc, char *argv[])
 
 
   return g_test_run ();
-}
\ No newline at end of file
+}
index 400fa00..bccf6a3 100644 (file)
@@ -1046,7 +1046,7 @@ test_communicate_utf8_async (gconstpointer test_data)
   g_object_unref (proc);
 }
 
-/* Test g_subprocess_communicate_utf8_async() can be cancelled correclty. */
+/* Test g_subprocess_communicate_utf8_async() can be cancelled correctly. */
 static void
 test_communicate_utf8_cancelled_async (gconstpointer test_data)
 {
@@ -1721,7 +1721,7 @@ test_launcher_environment (void)
   /* unset a variable */
   g_subprocess_launcher_unsetenv (launcher, "A");
 
-  /* and set a diffferent one */
+  /* and set a different one */
   g_subprocess_launcher_setenv (launcher, "E", "F", TRUE);
 
   args = get_test_subprocess_args ("printenv", "A", "C", "E", NULL);
index ae734ba..4a12ea8 100644 (file)
@@ -32,7 +32,7 @@
 
 /*
  * WARNING: This is not the example you're looking for [slow hand wave]. This
- * is not industrial strength, it's just for testing. It uses embarassing
+ * is not industrial strength, it's just for testing. It uses embarrassing
  * functions like getpass() and does lazy things with threads.
  */
 
index 95da0e0..1873a05 100644 (file)
@@ -3,7 +3,7 @@ Before you start testing it would be good to explain how it works.
 The script works in three modes:
  1. read-only (no special arguments) - suitable for read-only backends. Just 
         create the sample structure using the second mode, pack it (tar -p is 
-        preffered to preserve unix modes) and put it on a reachable place.
+        preferred to preserve unix modes) and put it on a reachable place.
  2. create-structure - only creates reference structure for later testing 
         in read-only mode
  3. write mode - full test suite, creates testing structure and performs all 
index 48891b0..c7c3e30 100644 (file)
@@ -105,7 +105,7 @@ if not dbus1_dep.found()
     # MSVC: Search for the DBus library by the configuration, which corresponds
     # to the output of CMake builds of DBus.  Note that debugoptimized
     # is really a Release build with .PDB files.
-    if buildtype == 'debug'
+    if vs_crt == 'debug'
       dbus1_dep = cc.find_library('dbus-1d', required : false)
     else
       dbus1_dep = cc.find_library('dbus-1', required : false)
index b8c8710..6b9d990 100644 (file)
@@ -292,4 +292,3 @@ main (int   argc,
 
   return g_test_run();
 }
-
index 8f6dccf..e3c0d09 100644 (file)
@@ -1387,4 +1387,3 @@ main (int   argc,
 
   return result;
 }
-
index fc8d8d2..1f218f2 100644 (file)
@@ -4,7 +4,7 @@
  * This must be done before including any GLib headers,
  * since GLIB_AVAILABLE_IN_ALL, which is used to mark the
  * g_io_module*() symbols, is defined to be _GLIB_EXTERN,
- * which must be overriden to export the symbols.
+ * which must be overridden to export the symbols.
  */
 #include "modules/symbol-visibility.h"
 #define _GLIB_EXTERN GLIB_TEST_EXPORT_SYMBOL
@@ -26,4 +26,3 @@ g_io_module_query (void)
 {
   return NULL;
 }
-
index c44d214..0749b7d 100644 (file)
@@ -605,7 +605,7 @@ test_resource_binary_linked (void)
 
 /* Test resource whose xml file starts with more than one digit
  * and where no explicit c-name is given
- * Checks if resources are sucessfully registered and
+ * Checks if resources are successfully registered and
  * data can be found and read. */
 static void
 test_resource_digits (void)
index 31f9446..71e70b2 100644 (file)
@@ -92,4 +92,3 @@ main (int   argc,
 
   return g_test_run();
 }
-
index dc8bdec..f1dd783 100644 (file)
@@ -63,7 +63,7 @@ test_start_stop (void)
   saddr = g_inet_socket_address_new (iaddr, 0);
   g_object_unref (iaddr);
 
-  /* instanciate with g_object_new so we can pass active = false */
+  /* instantiate with g_object_new so we can pass active = false */
   service = g_object_new (G_TYPE_SOCKET_SERVICE, "active", FALSE, NULL);
   g_assert_false (g_socket_service_is_active (service));
 
index e095d01..d6eecdc 100644 (file)
@@ -1957,4 +1957,3 @@ main (int   argc,
 
   return g_test_run();
 }
-
index 0323b47..b6dca2b 100644 (file)
@@ -4,7 +4,7 @@
     <file>test1.txt</file>
   </gresource>
   <!-- Test compiling the generated GResource C-code
-       that has a resouce entry size over 65536 bytes -->
+       that has a resource entry size over 65536 bytes -->
   <gresource prefix="/big_prefix">
     <file>gresource-big-test.txt</file>
   </gresource>
index ef2ca70..d50638f 100644 (file)
@@ -99,7 +99,11 @@ test_validity (void)
       thumbnail_path = g_test_get_filename (G_TEST_DIST, "thumbnails",
                                             tests[i].filename, NULL);
       file_uri = g_strconcat ("file:///tmp/", tests[i].filename, NULL);
+#ifdef G_OS_WIN32
+      stat_buf.st_mtim.tv_sec = tests[i].mtime;
+#else
       stat_buf.st_mtime = tests[i].mtime;
+#endif
       stat_buf.st_size = tests[i].size;
 
       result = thumbnail_verify (thumbnail_path, file_uri, &stat_buf);
index e1ba237..89e3d14 100644 (file)
@@ -285,7 +285,7 @@ from_files (const Reference *ref)
   g_assert_null (cert);
 
   /* Using this method twice with a file containing both private key and
-   * certificate as a way to inforce private key presence is a fair use
+   * certificate as a way to enforce private key presence is a fair use
    */
   cert = g_tls_certificate_new_from_files (g_test_get_filename (G_TEST_DIST, "cert-tests", "key-cert.pem", NULL),
                                            g_test_get_filename (G_TEST_DIST, "cert-tests", "key-cert.pem", NULL),
index 4bf8fd0..adf729b 100644 (file)
@@ -211,4 +211,3 @@ main (int argc, char *argv[])
 
   return g_test_run ();
 }
-
index 6b61c30..e902eab 100644 (file)
@@ -178,4 +178,3 @@ main (int argc, char *argv[])
 
   return ret;
 }
-
index 78052c3..fa8aa2a 100644 (file)
@@ -467,4 +467,3 @@ main (int   argc,
 
   return g_test_run ();
 }
-
index 1a722e4..4baeeea 100644 (file)
@@ -232,7 +232,11 @@ thumbnail_verify (const char     *thumbnail_path,
     return FALSE;
 
   expected_info.uri = file_uri;
+#ifdef G_OS_WIN32
+  expected_info.mtime = (guint64) file_stat_buf->st_mtim.tv_sec;
+#else
   expected_info.mtime = (guint64) file_stat_buf->st_mtime;
+#endif
   expected_info.size = file_stat_buf->st_size;
 
   file = g_mapped_file_new (thumbnail_path, FALSE, NULL);
index ff8d171..e6b7d1d 100644 (file)
@@ -416,7 +416,7 @@ g_win32_fs_monitor_close_handle (GWin32FSMonitorPrivate *monitor)
   /* This triggers a last callback() with nBytes==0. */
 
   /* Actually I am not so sure about that, it seems to trigger a last
-   * callback allright, but the way to recognize that it is the final
+   * callback correctly, but the way to recognize that it is the final
    * one is not to check for nBytes==0, I think that was a
    * misunderstanding.
    */
index 509cdeb..cf5eed3 100644 (file)
@@ -29,7 +29,6 @@
 #include "gio/gfile.h"
 #include "gio/gfileattribute.h"
 #include "gio/gfileinfo.h"
-#include "gio/gfileinfo-priv.h"
 #include "gwinhttpfile.h"
 #include "gwinhttpfileinputstream.h"
 #include "gwinhttpfileoutputstream.h"
@@ -179,21 +178,6 @@ g_winhttp_file_get_basename (GFile *file)
 }
 
 static char *
-g_winhttp_file_get_display_name (GFile *file)
-{
-  char *basename;
-
-  /* FIXME: This could be improved by using a new g_utf16_make_valid() function
-   * to recover what we can from the URI, and then suffixing it with
-   * “ (invalid encoding)” as per g_filename_display_basename(). */
-  basename = g_winhttp_file_get_basename (file);
-  if (!basename)
-    return g_strdup (_(" (invalid encoding)"));
-
-  return g_steal_pointer (&basename);
-}
-
-static char *
 g_winhttp_file_get_path (GFile *file)
 {
   return NULL;
@@ -529,14 +513,6 @@ g_winhttp_file_query_info (GFile                *file,
   g_file_info_set_name (info, basename);
   g_free (basename);
 
-  if (_g_file_attribute_matcher_matches_id (matcher,
-                                            G_FILE_ATTRIBUTE_ID_STANDARD_DISPLAY_NAME))
-    {
-      char *display_name = g_winhttp_file_get_display_name (file);
-      g_file_info_set_display_name (info, display_name);
-      g_free (display_name);
-    }
-
   content_length = NULL;
   if (_g_winhttp_query_header (winhttp_file->vfs,
                                request,
index 272b062..a2f4dd2 100644 (file)
@@ -178,4 +178,3 @@ _xdg_mime_icon_list_dump (XdgIconList *list)
 }
 
 #endif
-
index e87bf55..b06b749 100644 (file)
@@ -215,4 +215,3 @@ _xdg_mime_parent_list_dump (XdgParentList *list)
 }
 
 #endif
-
index af7052f..05ec43c 100755 (executable)
@@ -73,7 +73,7 @@ This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
       $echo "Written by" "Ulrich Drepper"
       exit 0 ;;
-    -- )       # Stop option prcessing
+    -- )       # Stop option processing
       shift; break ;;
     -* )
       $echo "glib-gettextize: unknown option $1"
index a732aa5..ba3ceb7 100644 (file)
--- a/glib.supp
+++ b/glib.supp
 {
        g-type-register-static
        Memcheck:Leak
-       match-leak-kinds:reachable
+       match-leak-kinds:possible,reachable
        fun:malloc
        ...
        fun:g_type_register_static
 {
        g-type-register-static-calloc
        Memcheck:Leak
-       match-leak-kinds:reachable
+       match-leak-kinds:possible,reachable
        fun:calloc
        ...
        fun:g_type_register_static
 }
 
 {
-       g-test-rand-init2
+       g-rand-init2
        Memcheck:Leak
        match-leak-kinds:reachable
        fun:calloc
        fun:g_rand_new_with_seed_array
        ...
        fun:get_global_random
-       ...
-       fun:g_test_init
 }
 
 {
 }
 
 {
+        g-get-language_names-with-category-malloc
+        Memcheck:Leak
+        match-leak-kinds:reachable
+        fun:malloc
+        ...
+        fun:g_get_language_names_with_category
+}
+
+{
+        g-get-language_names-with-category-calloc
+        Memcheck:Leak
+        match-leak-kinds:reachable
+        fun:calloc
+        ...
+        fun:g_get_language_names_with_category
+}
+
+{
+        g-get-language_names-with-category-realloc
+        Memcheck:Leak
+        match-leak-kinds:reachable
+        fun:realloc
+        ...
+        fun:g_get_language_names_with_category
+}
+
+{
        g-static-mutex
        Memcheck:Leak
        match-leak-kinds:reachable
        fun:g_dbus_error_quark
 }
 
+# g_win32_registry_get_os_dirs_w*() caches an array of strings that is allocated only once.
+{
+       g_win32_registry_get_os_dirs
+       Memcheck:Leak
+       match-leak-kinds:reachable,definite
+       fun:malloc
+       ...
+       fun:g_win32_registry_get_os_dirs*
+}
+
 # Thread-private data allocated once per thread
 {
        g_private_set_alloc0
        fun:g_private_set_alloc0
 }
 
+# Keys for thread-private data
+{
+       g_private_key
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       fun:g_private_impl_new
+}
+
 # Thread-private GMainContext stack
 {
        g_main_context_push_thread_default
        ...
        fun:g_file_*
 }
+
+# Cached charset
+{
+       g_get_charset
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_get_charset
+}
+
+# Global unused thread queue
+{
+       g_thread_pool_unused_thread_queue
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_async_queue_new_full
+       ...
+       fun:g_thread_pool_new
+}
+
+# One-time program name storage
+{
+       g_set_prgname
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_set_prgname
+}
index 2199328..5d08eb6 100644 (file)
@@ -115,7 +115,7 @@ G_BEGIN_DECLS
  *
  * Returns: %TRUE if any events are pending.
  *
- * Deprected: 2.2: Use g_main_context_pending() instead.
+ * Deprecated: 2.2: Use g_main_context_pending() instead.
  */
 #define g_main_pending()            g_main_context_pending (NULL) GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_main_context_pending)
 
index 8ca255c..4841817 100644 (file)
@@ -424,7 +424,7 @@ g_once_init_enter_impl (volatile gsize *location)
  * want to require prior calling to g_thread_init(), because your code
  * should also be usable in non-threaded programs, you are not able to
  * use g_mutex_new() and thus #GMutex, as that requires a prior call to
- * g_thread_init(). In theses cases you can also use a #GStaticMutex.
+ * g_thread_init(). In these cases you can also use a #GStaticMutex.
  * It must be initialized with g_static_mutex_init() before using it
  * and freed with with g_static_mutex_free() when not needed anymore to
  * free up any allocated resources.
@@ -1025,7 +1025,7 @@ g_static_rw_lock_reader_lock (GStaticRWLock* lock)
  *
  * Returns: %TRUE, if @lock could be locked for reading
  *
- * Deprectated: 2.32: Use g_rw_lock_reader_trylock() instead
+ * Deprecated: 2.32: Use g_rw_lock_reader_trylock() instead
  */
 gboolean
 g_static_rw_lock_reader_trylock (GStaticRWLock* lock)
@@ -1055,7 +1055,7 @@ g_static_rw_lock_reader_trylock (GStaticRWLock* lock)
  * locks for reading have been unlocked, the waiting thread is woken up
  * and can lock @lock for writing.
  *
- * Deprectated: 2.32: Use g_rw_lock_reader_unlock() instead
+ * Deprecated: 2.32: Use g_rw_lock_reader_unlock() instead
  */
 void
 g_static_rw_lock_reader_unlock  (GStaticRWLock* lock)
@@ -1084,7 +1084,7 @@ g_static_rw_lock_reader_unlock  (GStaticRWLock* lock)
  * @lock (neither for reading nor writing). This lock has to be
  * unlocked by g_static_rw_lock_writer_unlock().
  *
- * Deprectated: 2.32: Use g_rw_lock_writer_lock() instead
+ * Deprecated: 2.32: Use g_rw_lock_writer_lock() instead
  */
 void
 g_static_rw_lock_writer_lock (GStaticRWLock* lock)
@@ -1114,7 +1114,7 @@ g_static_rw_lock_writer_lock (GStaticRWLock* lock)
  *
  * Returns: %TRUE, if @lock could be locked for writing
  *
- * Deprectated: 2.32: Use g_rw_lock_writer_trylock() instead
+ * Deprecated: 2.32: Use g_rw_lock_writer_trylock() instead
  */
 gboolean
 g_static_rw_lock_writer_trylock (GStaticRWLock* lock)
@@ -1147,7 +1147,7 @@ g_static_rw_lock_writer_trylock (GStaticRWLock* lock)
  * lock @lock for reading, the waiting threads are woken up and can
  * lock @lock for reading.
  *
- * Deprectated: 2.32: Use g_rw_lock_writer_unlock() instead
+ * Deprecated: 2.32: Use g_rw_lock_writer_unlock() instead
  */
 void
 g_static_rw_lock_writer_unlock (GStaticRWLock* lock)
index 0fa207c..70aebb6 100644 (file)
  * If you need to clear the contents of the data, you will need to use an
  * ancillary function that calls g_rc_box_release_full():
  *
- * |[<!-- laguage="C" -->
+ * |[<!-- language="C" -->
  * static void
  * my_data_struct_release (MyDataStruct *data)
  * {
@@ -188,7 +188,7 @@ g_atomic_rc_box_alloc (gsize block_size)
  * @block_size: the size of the allocation, must be greater than 0
  *
  * Allocates @block_size bytes of memory, and adds atomic
- * referenc counting semantics to it.
+ * reference counting semantics to it.
  *
  * The contents of the returned data is set to zero.
  *
index abae3a2..4d29bc0 100644 (file)
  * To create a new array use g_array_new().
  *
  * To add elements to an array, use g_array_append_val(),
- * g_array_append_vals(), g_array_prepend_val(), and
- * g_array_prepend_vals().
+ * g_array_append_vals(), g_array_prepend_val(), g_array_prepend_vals(),
+ * g_array_insert_val() and g_array_insert_vals().
  *
- * To access an element of an array, use g_array_index().
+ * To access an element of an array (to read it or write it),
+ * use g_array_index().
  *
  * To set the size of an array, use g_array_set_size().
  *
- * To free an array, use g_array_free().
+ * To free an array, use g_array_unref() or g_array_free().
  *
  * Here is an example that stores integers in a #GArray:
  * |[<!-- language="C" -->
@@ -117,14 +118,29 @@ struct _GRealArray
  * @i: the index of the element to return
  *
  * Returns the element of a #GArray at the given index. The return
- * value is cast to the given type.
+ * value is cast to the given type. This is the main way to read or write an
+ * element in a #GArray.
  *
- * This example gets a pointer to an element in a #GArray:
+ * Writing an element is typically done by reference, as in the following
+ * example. This example gets a pointer to an element in a #GArray, and then
+ * writes to a field in it:
  * |[<!-- language="C" -->
  *   EDayViewEvent *event;
  *   // This gets a pointer to the 4th element in the array of
  *   // EDayViewEvent structs.
  *   event = &g_array_index (events, EDayViewEvent, 3);
+ *   event->start_time = g_get_current_time ();
+ * ]|
+ *
+ * This example reads from and writes to an array of integers:
+ * |[<!-- language="C" -->
+ *   g_autoptr(GArray) int_array = g_array_new (FALSE, FALSE, sizeof (guint));
+ *   for (guint i = 0; i < 10; i++)
+ *     g_array_append_val (int_array, i);
+ *
+ *   guint *my_int = &g_array_index (int_array, guint, 1);
+ *   g_print ("Int at index 1 is %u; decrementing it\n", *my_int);
+ *   *my_int = *my_int - 1;
  * ]|
  *
  * Returns: the element of the #GArray at the index given by @i
@@ -563,6 +579,10 @@ g_array_prepend_vals (GArray        *farray,
  * will be initialised to zero if the array was configured to clear elements;
  * otherwise their values will be undefined.
  *
+ * If @index_ is less than the array’s current length, new entries will be
+ * inserted into the array, and the existing entries above @index_ will be moved
+ * upwards.
+ *
  * @data may be %NULL if (and only if) @len is zero. If @len is zero, this
  * function is a no-op.
  *
@@ -1051,6 +1071,27 @@ struct _GRealPtrArray
 static void g_ptr_array_maybe_expand (GRealPtrArray *array,
                                       guint          len);
 
+static GPtrArray *
+ptr_array_new (guint reserved_size,
+               GDestroyNotify element_free_func)
+{
+  GRealPtrArray *array;
+
+  array = g_slice_new (GRealPtrArray);
+
+  array->pdata = NULL;
+  array->len = 0;
+  array->alloc = 0;
+  array->element_free_func = element_free_func;
+
+  g_atomic_ref_count_init (&array->ref_count);
+
+  if (reserved_size != 0)
+    g_ptr_array_maybe_expand (array, reserved_size);
+
+  return (GPtrArray *) array;
+}
+
 /**
  * g_ptr_array_new:
  *
@@ -1061,7 +1102,7 @@ static void g_ptr_array_maybe_expand (GRealPtrArray *array,
 GPtrArray*
 g_ptr_array_new (void)
 {
-  return g_ptr_array_sized_new (0);
+  return ptr_array_new (0, NULL);
 }
 
 /**
@@ -1166,16 +1207,17 @@ g_ptr_array_copy (GPtrArray *array,
                   GCopyFunc  func,
                   gpointer   user_data)
 {
-  gsize i;
   GPtrArray *new_array;
 
   g_return_val_if_fail (array != NULL, NULL);
 
-  new_array = g_ptr_array_sized_new (array->len);
-  g_ptr_array_set_free_func (new_array, ((GRealPtrArray *) array)->element_free_func);
+  new_array = ptr_array_new (array->len,
+                             ((GRealPtrArray *) array)->element_free_func);
 
   if (func != NULL)
     {
+      guint i;
+
       for (i = 0; i < array->len; i++)
         new_array->pdata[i] = func (array->pdata[i], user_data);
     }
@@ -1201,24 +1243,10 @@ g_ptr_array_copy (GPtrArray *array,
  *
  * Returns: the new #GPtrArray
  */
-GPtrArray*  
+GPtrArray*
 g_ptr_array_sized_new (guint reserved_size)
 {
-  GRealPtrArray *array;
-
-  array = g_slice_new (GRealPtrArray);
-
-  array->pdata = NULL;
-  array->len = 0;
-  array->alloc = 0;
-  array->element_free_func = NULL;
-
-  g_atomic_ref_count_init (&array->ref_count);
-
-  if (reserved_size != 0)
-    g_ptr_array_maybe_expand (array, reserved_size);
-
-  return (GPtrArray*) array;  
+  return ptr_array_new (reserved_size, NULL);
 }
 
 /**
@@ -1269,12 +1297,7 @@ g_array_copy (GArray *array)
 GPtrArray*
 g_ptr_array_new_with_free_func (GDestroyNotify element_free_func)
 {
-  GPtrArray *array;
-
-  array = g_ptr_array_new ();
-  g_ptr_array_set_free_func (array, element_free_func);
-
-  return array;
+  return ptr_array_new (0, element_free_func);
 }
 
 /**
@@ -1299,12 +1322,7 @@ GPtrArray*
 g_ptr_array_new_full (guint          reserved_size,
                       GDestroyNotify element_free_func)
 {
-  GPtrArray *array;
-
-  array = g_ptr_array_sized_new (reserved_size);
-  g_ptr_array_set_free_func (array, element_free_func);
-
-  return array;
+  return ptr_array_new (reserved_size, element_free_func);
 }
 
 /**
@@ -1438,7 +1456,8 @@ ptr_array_free (GPtrArray      *array,
       gpointer *stolen_pdata = g_steal_pointer (&rarray->pdata);
       if (rarray->element_free_func != NULL)
         {
-          gsize i;
+          guint i;
+
           for (i = 0; i < rarray->len; ++i)
             rarray->element_free_func (stolen_pdata[i]);
         }
@@ -1663,7 +1682,7 @@ g_ptr_array_remove_range (GPtrArray *array,
                           guint      length)
 {
   GRealPtrArray *rarray = (GRealPtrArray *)array;
-  guint n;
+  guint i;
 
   g_return_val_if_fail (rarray != NULL, NULL);
   g_return_val_if_fail (rarray->len == 0 || (rarray->len != 0 && rarray->pdata != NULL), NULL);
@@ -1672,8 +1691,8 @@ g_ptr_array_remove_range (GPtrArray *array,
 
   if (rarray->element_free_func != NULL)
     {
-      for (n = index_; n < index_ + length; n++)
-        rarray->element_free_func (rarray->pdata[n]);
+      for (i = index_; i < index_ + length; i++)
+        rarray->element_free_func (rarray->pdata[i]);
     }
 
   if (index_ + length != rarray->len)
@@ -1686,7 +1705,6 @@ g_ptr_array_remove_range (GPtrArray *array,
   rarray->len -= length;
   if (G_UNLIKELY (g_mem_gc_friendly))
     {
-      guint i;
       for (i = 0; i < length; i++)
         rarray->pdata[rarray->len + i] = NULL;
     }
@@ -1820,7 +1838,6 @@ g_ptr_array_extend (GPtrArray  *array_to_extend,
                     gpointer    user_data)
 {
   GRealPtrArray *rarray_to_extend = (GRealPtrArray *) array_to_extend;
-  gsize i;
 
   g_return_if_fail (array_to_extend != NULL);
   g_return_if_fail (array != NULL);
@@ -1829,6 +1846,8 @@ g_ptr_array_extend (GPtrArray  *array_to_extend,
 
   if (func != NULL)
     {
+      guint i;
+
       for (i = 0; i < array->len; i++)
         rarray_to_extend->pdata[i + rarray_to_extend->len] =
           func (array->pdata[i], user_data);
index 9e9cba1..09b8ccb 100644 (file)
@@ -61,7 +61,7 @@ void g_on_error_stack_trace (const gchar *prg_name);
 #  define G_BREAKPOINT()        G_STMT_START{ __debugbreak(); }G_STMT_END
 #elif defined (__alpha__) && !defined(__osf__) && defined (__GNUC__) && __GNUC__ >= 2
 #  define G_BREAKPOINT()        G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END
-#elif defined (__APPLE__)
+#elif defined (__APPLE__) || (defined(_WIN32) && (defined(__clang__) || defined(__GNUC__)))
 #  define G_BREAKPOINT()        G_STMT_START{ __builtin_trap(); }G_STMT_END
 #else   /* !__i386__ && !__alpha__ */
 #  define G_BREAKPOINT()        G_STMT_START{ raise (SIGTRAP); }G_STMT_END
index 23024d0..c08a6f9 100644 (file)
@@ -88,7 +88,7 @@ g_futex_wait (const volatile gint *address,
  * Nominally, wakes one thread that is blocked in g_futex_wait() on
  * @address (if any thread is currently waiting).
  *
- * As mentioned in the documention for g_futex_wait(), spurious
+ * As mentioned in the documentation for g_futex_wait(), spurious
  * wakeups may occur.  As such, this call may result in more than one
  * thread being woken up.
  */
index e22f794..d796b25 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "gconvert.h"
 #include "gdataset.h"
+#include "gdatetime.h"
 #include "gerror.h"
 #include "gfileutils.h"
 #include "ghash.h"
@@ -86,7 +87,7 @@
  *
  * The important caveat of bookmark files is that when you add a new
  * bookmark you must also add the application that is registering it, using
- * g_bookmark_file_add_application() or g_bookmark_file_set_app_info().
+ * g_bookmark_file_add_application() or g_bookmark_file_set_application_info().
  * If a bookmark has no applications then it won't be dumped when creating
  * the on disk representation, using g_bookmark_file_to_data() or
  * g_bookmark_file_to_file().
@@ -165,7 +166,7 @@ struct _BookmarkAppInfo
 
   guint count;
 
-  time_t stamp;
+  GDateTime *stamp;  /* (owned) */
 };
 
 struct _BookmarkMetadata
@@ -190,9 +191,9 @@ struct _BookmarkItem
   gchar *title;
   gchar *description;
 
-  time_t added;
-  time_t modified;
-  time_t visited;
+  GDateTime *added;  /* (owned) */
+  GDateTime *modified;  /* (owned) */
+  GDateTime *visited;  /* (owned) */
 
   BookmarkMetadata *metadata;
 };
@@ -245,10 +246,9 @@ static void          g_bookmark_file_add_item    (GBookmarkFile  *bookmark,
                                                  BookmarkItem   *item,
                                                  GError        **error);
 
-static gboolean  timestamp_from_iso8601 (const gchar  *iso_date,
-                                         time_t       *out_timestamp,
-                                         GError      **error);
-static gchar    *timestamp_to_iso8601   (time_t        timestamp);
+static gboolean timestamp_from_iso8601 (const gchar  *iso_date,
+                                        GDateTime   **out_date_time,
+                                        GError      **error);
 
 /********************************
  * BookmarkAppInfo              *
@@ -267,7 +267,7 @@ bookmark_app_info_new (const gchar *name)
   retval->name = g_strdup (name);
   retval->exec = NULL;
   retval->count = 0;
-  retval->stamp = 0;
+  retval->stamp = NULL;
 
   return retval;
 }
@@ -280,6 +280,7 @@ bookmark_app_info_free (BookmarkAppInfo *app_info)
 
   g_free (app_info->name);
   g_free (app_info->exec);
+  g_clear_pointer (&app_info->stamp, g_date_time_unref);
 
   g_slice_free (BookmarkAppInfo, app_info);
 }
@@ -297,7 +298,7 @@ bookmark_app_info_dump (BookmarkAppInfo *app_info)
 
   name = g_markup_escape_text (app_info->name, -1);
   exec = g_markup_escape_text (app_info->exec, -1);
-  modified = timestamp_to_iso8601 (app_info->stamp);
+  modified = g_date_time_format_iso8601 (app_info->stamp);
   count = g_strdup_printf ("%u", app_info->count);
 
   retval = g_strconcat ("          "
@@ -511,9 +512,9 @@ bookmark_item_new (const gchar *uri)
   item->title = NULL;
   item->description = NULL;
 
-  item->added = (time_t) -1;
-  item->modified = (time_t) -1;
-  item->visited = (time_t) -1;
+  item->added = NULL;
+  item->modified = NULL;
+  item->visited = NULL;
 
   item->metadata = NULL;
 
@@ -533,9 +534,20 @@ bookmark_item_free (BookmarkItem *item)
   if (item->metadata)
     bookmark_metadata_free (item->metadata);
 
+  g_clear_pointer (&item->added, g_date_time_unref);
+  g_clear_pointer (&item->modified, g_date_time_unref);
+  g_clear_pointer (&item->visited, g_date_time_unref);
+
   g_slice_free (BookmarkItem, item);
 }
 
+static void
+bookmark_item_touch_modified (BookmarkItem *item)
+{
+  g_clear_pointer (&item->modified, g_date_time_unref);
+  item->modified = g_date_time_new_now_utc ();
+}
+
 static gchar *
 bookmark_item_dump (BookmarkItem *item)
 {
@@ -555,9 +567,9 @@ bookmark_item_dump (BookmarkItem *item)
 
   retval = g_string_sized_new (4096);
 
-  added = timestamp_to_iso8601 (item->added);
-  modified = timestamp_to_iso8601 (item->modified);
-  visited = timestamp_to_iso8601 (item->visited);
+  added = g_date_time_format_iso8601 (item->added);
+  modified = g_date_time_format_iso8601 (item->modified);
+  visited = g_date_time_format_iso8601 (item->visited);
 
   escaped_uri = g_markup_escape_text (item->uri, -1);
 
@@ -883,6 +895,7 @@ parse_application_element (GMarkupParseContext  *context,
   else
     ai->count = 1;
 
+  g_clear_pointer (&ai->stamp, g_date_time_unref);
   if (modified != NULL)
     {
       if (!timestamp_from_iso8601 (modified, &ai->stamp, error))
@@ -894,9 +907,9 @@ parse_application_element (GMarkupParseContext  *context,
        * it for backward compatibility
        */
       if (stamp)
-        ai->stamp = (time_t) atol (stamp);
+        ai->stamp = g_date_time_new_from_unix_utc (atol (stamp));
       else
-        ai->stamp = time (NULL);
+        ai->stamp = g_date_time_new_now_utc ();
     }
 }
 
@@ -1599,25 +1612,11 @@ out:
  *    Misc    *
  **************/
 
-/* converts a Unix timestamp in a ISO 8601 compliant string; you
- * should free the returned string.
- */
-static gchar *
-timestamp_to_iso8601 (time_t timestamp)
-{
-  GDateTime *dt = g_date_time_new_from_unix_utc (timestamp);
-  gchar *iso8601_string = g_date_time_format_iso8601 (dt);
-  g_date_time_unref (dt);
-
-  return g_steal_pointer (&iso8601_string);
-}
-
 static gboolean
 timestamp_from_iso8601 (const gchar  *iso_date,
-                        time_t       *out_timestamp,
+                        GDateTime   **out_date_time,
                         GError      **error)
 {
-  gint64 time_val;
   GDateTime *dt = g_date_time_new_from_iso8601 (iso_date, NULL);
   if (dt == NULL)
     {
@@ -1626,10 +1625,7 @@ timestamp_from_iso8601 (const gchar  *iso_date,
       return FALSE;
     }
 
-  time_val = g_date_time_to_unix (dt);
-  g_date_time_unref (dt);
-
-  *out_timestamp = time_val;
+  *out_date_time = g_steal_pointer (&dt);
   return TRUE;
 }
 
@@ -2040,11 +2036,14 @@ g_bookmark_file_add_item (GBookmarkFile  *bookmark,
                        item->uri,
                        item);
 
-  if (item->added == (time_t) -1)
-    item->added = time (NULL);
+  if (item->added == NULL)
+    item->added = g_date_time_new_now_utc ();
+
+  if (item->modified == NULL)
+    item->modified = g_date_time_new_now_utc ();
 
-  if (item->modified == (time_t) -1)
-    item->modified = time (NULL);
+  if (item->visited == NULL)
+    item->visited = g_date_time_new_now_utc ();
 }
 
 /**
@@ -2194,7 +2193,7 @@ g_bookmark_file_set_title (GBookmarkFile *bookmark,
       g_free (item->title);
       item->title = g_strdup (title);
 
-      item->modified = time (NULL);
+      bookmark_item_touch_modified (item);
     }
 }
 
@@ -2281,7 +2280,7 @@ g_bookmark_file_set_description (GBookmarkFile *bookmark,
       g_free (item->description);
       item->description = g_strdup (description);
 
-      item->modified = time (NULL);
+      bookmark_item_touch_modified (item);
     }
 }
 
@@ -2362,7 +2361,7 @@ g_bookmark_file_set_mime_type (GBookmarkFile *bookmark,
   g_free (item->metadata->mime_type);
 
   item->metadata->mime_type = g_strdup (mime_type);
-  item->modified = time (NULL);
+  bookmark_item_touch_modified (item);
 }
 
 /**
@@ -2448,7 +2447,7 @@ g_bookmark_file_set_is_private (GBookmarkFile *bookmark,
     item->metadata = bookmark_metadata_new ();
 
   item->metadata->is_private = (is_private == TRUE);
-  item->modified = time (NULL);
+  bookmark_item_touch_modified (item);
 }
 
 /**
@@ -2511,16 +2510,41 @@ g_bookmark_file_get_is_private (GBookmarkFile  *bookmark,
  * If no bookmark for @uri is found then it is created.
  *
  * Since: 2.12
+ * Deprecated: 2.66: Use g_bookmark_file_set_added_date_time() instead, as
+ *    `time_t` is deprecated due to the year 2038 problem.
  */
 void
 g_bookmark_file_set_added (GBookmarkFile *bookmark,
                           const gchar   *uri,
                           time_t         added)
 {
+  GDateTime *added_dt = (added != (time_t) -1) ? g_date_time_new_from_unix_utc (added) : g_date_time_new_now_utc ();
+  g_bookmark_file_set_added_date_time (bookmark, uri, added_dt);
+  g_date_time_unref (added_dt);
+}
+
+/**
+ * g_bookmark_file_set_added_date_time:
+ * @bookmark: a #GBookmarkFile
+ * @uri: a valid URI
+ * @added: a #GDateTime
+ *
+ * Sets the time the bookmark for @uri was added into @bookmark.
+ *
+ * If no bookmark for @uri is found then it is created.
+ *
+ * Since: 2.66
+ */
+void
+g_bookmark_file_set_added_date_time (GBookmarkFile *bookmark,
+                                     const char    *uri,
+                                     GDateTime     *added)
+{
   BookmarkItem *item;
 
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
+  g_return_if_fail (added != NULL);
 
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
@@ -2529,11 +2553,10 @@ g_bookmark_file_set_added (GBookmarkFile *bookmark,
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
 
-  if (added == (time_t) -1)
-    time (&added);
-
-  item->added = added;
-  item->modified = added;
+  g_clear_pointer (&item->added, g_date_time_unref);
+  item->added = g_date_time_ref (added);
+  g_clear_pointer (&item->modified, g_date_time_unref);
+  item->modified = g_date_time_ref (added);
 }
 
 /**
@@ -2550,25 +2573,52 @@ g_bookmark_file_set_added (GBookmarkFile *bookmark,
  * Returns: a timestamp
  *
  * Since: 2.12
+ * Deprecated: 2.66: Use g_bookmark_file_get_added_date_time() instead, as
+ *    `time_t` is deprecated due to the year 2038 problem.
  */
 time_t
 g_bookmark_file_get_added (GBookmarkFile  *bookmark,
                           const gchar    *uri,
                           GError        **error)
 {
+  GDateTime *added = g_bookmark_file_get_added_date_time (bookmark, uri, error);
+  return (added != NULL) ? g_date_time_to_unix (added) : (time_t) -1;
+}
+
+/**
+ * g_bookmark_file_get_added_date_time:
+ * @bookmark: a #GBookmarkFile
+ * @uri: a valid URI
+ * @error: return location for a #GError, or %NULL
+ *
+ * Gets the time the bookmark for @uri was added to @bookmark
+ *
+ * In the event the URI cannot be found, %NULL is returned and
+ * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.
+ *
+ * Returns: (transfer none): a #GDateTime
+ *
+ * Since: 2.66
+ */
+GDateTime *
+g_bookmark_file_get_added_date_time (GBookmarkFile  *bookmark,
+                                     const char     *uri,
+                                     GError        **error)
+{
   BookmarkItem *item;
 
-  g_return_val_if_fail (bookmark != NULL, (time_t) -1);
-  g_return_val_if_fail (uri != NULL, (time_t) -1);
+  g_return_val_if_fail (bookmark != NULL, NULL);
+  g_return_val_if_fail (uri != NULL, NULL);
+  g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
       g_set_error (error, G_BOOKMARK_FILE_ERROR,
-                  G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
-                  _("No bookmark found for URI “%s”"),
-                  uri);
-      return (time_t) -1;
+                   G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
+                   _("No bookmark found for URI “%s”"),
+                   uri);
+      return NULL;
     }
 
   return item->added;
@@ -2587,19 +2637,49 @@ g_bookmark_file_get_added (GBookmarkFile  *bookmark,
  * The "modified" time should only be set when the bookmark's meta-data
  * was actually changed.  Every function of #GBookmarkFile that
  * modifies a bookmark also changes the modification time, except for
- * g_bookmark_file_set_visited().
+ * g_bookmark_file_set_visited_date_time().
  *
  * Since: 2.12
+ * Deprecated: 2.66: Use g_bookmark_file_set_modified_date_time() instead, as
+ *    `time_t` is deprecated due to the year 2038 problem.
  */
 void
 g_bookmark_file_set_modified (GBookmarkFile *bookmark,
                              const gchar   *uri,
                              time_t         modified)
 {
+  GDateTime *modified_dt = (modified != (time_t) -1) ? g_date_time_new_from_unix_utc (modified) : g_date_time_new_now_utc ();
+  g_bookmark_file_set_modified_date_time (bookmark, uri, modified_dt);
+  g_date_time_unref (modified_dt);
+}
+
+/**
+ * g_bookmark_file_set_modified_date_time:
+ * @bookmark: a #GBookmarkFile
+ * @uri: a valid URI
+ * @modified: a #GDateTime
+ *
+ * Sets the last time the bookmark for @uri was last modified.
+ *
+ * If no bookmark for @uri is found then it is created.
+ *
+ * The "modified" time should only be set when the bookmark's meta-data
+ * was actually changed.  Every function of #GBookmarkFile that
+ * modifies a bookmark also changes the modification time, except for
+ * g_bookmark_file_set_visited_date_time().
+ *
+ * Since: 2.66
+ */
+void
+g_bookmark_file_set_modified_date_time (GBookmarkFile *bookmark,
+                                        const char    *uri,
+                                        GDateTime     *modified)
+{
   BookmarkItem *item;
 
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
+  g_return_if_fail (modified != NULL);
 
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
@@ -2608,10 +2688,8 @@ g_bookmark_file_set_modified (GBookmarkFile *bookmark,
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
 
-  if (modified == (time_t) -1)
-    time (&modified);
-
-  item->modified = modified;
+  g_clear_pointer (&item->modified, g_date_time_unref);
+  item->modified = g_date_time_ref (modified);
 }
 
 /**
@@ -2628,25 +2706,52 @@ g_bookmark_file_set_modified (GBookmarkFile *bookmark,
  * Returns: a timestamp
  *
  * Since: 2.12
+ * Deprecated: 2.66: Use g_bookmark_file_get_modified_date_time() instead, as
+ *    `time_t` is deprecated due to the year 2038 problem.
  */
 time_t
 g_bookmark_file_get_modified (GBookmarkFile  *bookmark,
                              const gchar    *uri,
                              GError        **error)
 {
+  GDateTime *modified = g_bookmark_file_get_modified_date_time (bookmark, uri, error);
+  return (modified != NULL) ? g_date_time_to_unix (modified) : (time_t) -1;
+}
+
+/**
+ * g_bookmark_file_get_modified_date_time:
+ * @bookmark: a #GBookmarkFile
+ * @uri: a valid URI
+ * @error: return location for a #GError, or %NULL
+ *
+ * Gets the time when the bookmark for @uri was last modified.
+ *
+ * In the event the URI cannot be found, %NULL is returned and
+ * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.
+ *
+ * Returns: (transfer none): a #GDateTime
+ *
+ * Since: 2.66
+ */
+GDateTime *
+g_bookmark_file_get_modified_date_time (GBookmarkFile  *bookmark,
+                                        const char     *uri,
+                                        GError        **error)
+{
   BookmarkItem *item;
 
-  g_return_val_if_fail (bookmark != NULL, (time_t) -1);
-  g_return_val_if_fail (uri != NULL, (time_t) -1);
+  g_return_val_if_fail (bookmark != NULL, NULL);
+  g_return_val_if_fail (uri != NULL, NULL);
+  g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
       g_set_error (error, G_BOOKMARK_FILE_ERROR,
-                  G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
-                  _("No bookmark found for URI “%s”"),
-                  uri);
-      return (time_t) -1;
+                   G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
+                   _("No bookmark found for URI “%s”"),
+                   uri);
+      return NULL;
     }
 
   return item->modified;
@@ -2663,22 +2768,53 @@ g_bookmark_file_get_modified (GBookmarkFile  *bookmark,
  * If no bookmark for @uri is found then it is created.
  *
  * The "visited" time should only be set if the bookmark was launched,
- * either using the command line retrieved by g_bookmark_file_get_app_info()
+ * either using the command line retrieved by g_bookmark_file_get_application_info()
  * or by the default application for the bookmark's MIME type, retrieved
  * using g_bookmark_file_get_mime_type().  Changing the "visited" time
  * does not affect the "modified" time.
  *
  * Since: 2.12
+ * Deprecated: 2.66: Use g_bookmark_file_set_visited_date_time() instead, as
+ *    `time_t` is deprecated due to the year 2038 problem.
  */
 void
 g_bookmark_file_set_visited (GBookmarkFile *bookmark,
                             const gchar   *uri,
                             time_t         visited)
 {
+  GDateTime *visited_dt = (visited != (time_t) -1) ? g_date_time_new_from_unix_utc (visited) : g_date_time_new_now_utc ();
+  g_bookmark_file_set_visited_date_time (bookmark, uri, visited_dt);
+  g_date_time_unref (visited_dt);
+}
+
+/**
+ * g_bookmark_file_set_visited_date_time:
+ * @bookmark: a #GBookmarkFile
+ * @uri: a valid URI
+ * @visited: a #GDateTime
+ *
+ * Sets the time the bookmark for @uri was last visited.
+ *
+ * If no bookmark for @uri is found then it is created.
+ *
+ * The "visited" time should only be set if the bookmark was launched,
+ * either using the command line retrieved by g_bookmark_file_get_application_info()
+ * or by the default application for the bookmark's MIME type, retrieved
+ * using g_bookmark_file_get_mime_type().  Changing the "visited" time
+ * does not affect the "modified" time.
+ *
+ * Since: 2.66
+ */
+void
+g_bookmark_file_set_visited_date_time (GBookmarkFile *bookmark,
+                                       const char    *uri,
+                                       GDateTime     *visited)
+{
   BookmarkItem *item;
 
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
+  g_return_if_fail (visited != NULL);
 
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
@@ -2687,10 +2823,8 @@ g_bookmark_file_set_visited (GBookmarkFile *bookmark,
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
 
-  if (visited == (time_t) -1)
-    time (&visited);
-
-  item->visited = visited;
+  g_clear_pointer (&item->visited, g_date_time_unref);
+  item->visited = g_date_time_ref (visited);
 }
 
 /**
@@ -2707,25 +2841,52 @@ g_bookmark_file_set_visited (GBookmarkFile *bookmark,
  * Returns: a timestamp.
  *
  * Since: 2.12
+ * Deprecated: 2.66: Use g_bookmark_file_get_visited_date_time() instead, as
+ *    `time_t` is deprecated due to the year 2038 problem.
  */
 time_t
 g_bookmark_file_get_visited (GBookmarkFile  *bookmark,
                             const gchar    *uri,
                             GError        **error)
 {
+  GDateTime *visited = g_bookmark_file_get_visited_date_time (bookmark, uri, error);
+  return (visited != NULL) ? g_date_time_to_unix (visited) : (time_t) -1;
+}
+
+/**
+ * g_bookmark_file_get_visited_date_time:
+ * @bookmark: a #GBookmarkFile
+ * @uri: a valid URI
+ * @error: return location for a #GError, or %NULL
+ *
+ * Gets the time the bookmark for @uri was last visited.
+ *
+ * In the event the URI cannot be found, %NULL is returned and
+ * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.
+ *
+ * Returns: (transfer none): a #GDateTime
+ *
+ * Since: 2.66
+ */
+GDateTime *
+g_bookmark_file_get_visited_date_time (GBookmarkFile  *bookmark,
+                                       const char     *uri,
+                                       GError        **error)
+{
   BookmarkItem *item;
 
-  g_return_val_if_fail (bookmark != NULL, (time_t) -1);
-  g_return_val_if_fail (uri != NULL, (time_t) -1);
+  g_return_val_if_fail (bookmark != NULL, NULL);
+  g_return_val_if_fail (uri != NULL, NULL);
+  g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
       g_set_error (error, G_BOOKMARK_FILE_ERROR,
-                  G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
-                  _("No bookmark found for URI “%s”"),
-                  uri);
-      return (time_t) -1;
+                   G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
+                   _("No bookmark found for URI “%s”"),
+                   uri);
+      return NULL;
     }
 
   return item->visited;
@@ -2822,7 +2983,7 @@ g_bookmark_file_add_group (GBookmarkFile *bookmark,
       item->metadata->groups = g_list_prepend (item->metadata->groups,
                                                g_strdup (group));
 
-      item->modified = time (NULL);
+      bookmark_item_touch_modified (item);
     }
 }
 
@@ -2884,7 +3045,7 @@ g_bookmark_file_remove_group (GBookmarkFile  *bookmark,
           g_free (l->data);
          g_list_free_1 (l);
 
-          item->modified = time (NULL);
+          bookmark_item_touch_modified (item);
 
           return TRUE;
         }
@@ -2941,7 +3102,7 @@ g_bookmark_file_set_groups (GBookmarkFile  *bookmark,
                                                g_strdup (groups[i]));
     }
 
-  item->modified = time (NULL);
+  bookmark_item_touch_modified (item);
 }
 
 /**
@@ -3057,6 +3218,7 @@ g_bookmark_file_add_application (GBookmarkFile *bookmark,
 {
   BookmarkItem *item;
   gchar *app_name, *app_exec;
+  GDateTime *stamp;
 
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
@@ -3078,13 +3240,16 @@ g_bookmark_file_add_application (GBookmarkFile *bookmark,
   else
     app_exec = g_strjoin (" ", g_get_prgname(), "%u", NULL);
 
-  g_bookmark_file_set_app_info (bookmark, uri,
-                                app_name,
-                                app_exec,
-                                -1,
-                                (time_t) -1,
-                                NULL);
+  stamp = g_date_time_new_now_utc ();
+
+  g_bookmark_file_set_application_info (bookmark, uri,
+                                        app_name,
+                                        app_exec,
+                                        -1,
+                                        stamp,
+                                        NULL);
 
+  g_date_time_unref (stamp);
   g_free (app_exec);
   g_free (app_name);
 }
@@ -3123,12 +3288,12 @@ g_bookmark_file_remove_application (GBookmarkFile  *bookmark,
   g_return_val_if_fail (name != NULL, FALSE);
 
   set_error = NULL;
-  retval = g_bookmark_file_set_app_info (bookmark, uri,
-                                        name,
-                                        "",
-                                        0,
-                                        (time_t) -1,
-                                        &set_error);
+  retval = g_bookmark_file_set_application_info (bookmark, uri,
+                                                 name,
+                                                 "",
+                                                 0,
+                                                 NULL,
+                                                 &set_error);
   if (set_error)
     {
       g_propagate_error (error, set_error);
@@ -3204,7 +3369,7 @@ g_bookmark_file_has_application (GBookmarkFile  *bookmark,
  * be expanded as the local file name retrieved from the bookmark's
  * URI; "\%u", which will be expanded as the bookmark's URI.
  * The expansion is done automatically when retrieving the stored
- * command line using the g_bookmark_file_get_app_info() function.
+ * command line using the g_bookmark_file_get_application_info() function.
  * @count is the number of times the application has registered the
  * bookmark; if is < 0, the current registration count will be increased
  * by one, if is 0, the application with @name will be removed from
@@ -3224,6 +3389,8 @@ g_bookmark_file_has_application (GBookmarkFile  *bookmark,
  *   changed.
  *
  * Since: 2.12
+ * Deprecated: 2.66: Use g_bookmark_file_set_application_info() instead, as
+ *    `time_t` is deprecated due to the year 2038 problem.
  */
 gboolean
 g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
@@ -3234,6 +3401,67 @@ g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
                              time_t          stamp,
                              GError        **error)
 {
+  GDateTime *stamp_dt = (stamp != (time_t) -1) ? g_date_time_new_from_unix_utc (stamp) : g_date_time_new_now_utc ();
+  gboolean retval;
+  retval = g_bookmark_file_set_application_info (bookmark, uri, name, exec, count,
+                                                 stamp_dt, error);
+  g_date_time_unref (stamp_dt);
+  return retval;
+}
+
+/**
+ * g_bookmark_file_set_application_info:
+ * @bookmark: a #GBookmarkFile
+ * @uri: a valid URI
+ * @name: an application's name
+ * @exec: an application's command line
+ * @count: the number of registrations done for this application
+ * @stamp: (nullable): the time of the last registration for this application,
+ *    which may be %NULL if @count is 0
+ * @error: return location for a #GError or %NULL
+ *
+ * Sets the meta-data of application @name inside the list of
+ * applications that have registered a bookmark for @uri inside
+ * @bookmark.
+ *
+ * You should rarely use this function; use g_bookmark_file_add_application()
+ * and g_bookmark_file_remove_application() instead.
+ *
+ * @name can be any UTF-8 encoded string used to identify an
+ * application.
+ * @exec can have one of these two modifiers: "\%f", which will
+ * be expanded as the local file name retrieved from the bookmark's
+ * URI; "\%u", which will be expanded as the bookmark's URI.
+ * The expansion is done automatically when retrieving the stored
+ * command line using the g_bookmark_file_get_application_info() function.
+ * @count is the number of times the application has registered the
+ * bookmark; if is < 0, the current registration count will be increased
+ * by one, if is 0, the application with @name will be removed from
+ * the list of registered applications.
+ * @stamp is the Unix time of the last registration.
+ *
+ * If you try to remove an application by setting its registration count to
+ * zero, and no bookmark for @uri is found, %FALSE is returned and
+ * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND; similarly,
+ * in the event that no application @name has registered a bookmark
+ * for @uri,  %FALSE is returned and error is set to
+ * #G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED.  Otherwise, if no bookmark
+ * for @uri is found, one is created.
+ *
+ * Returns: %TRUE if the application's meta-data was successfully
+ *   changed.
+ *
+ * Since: 2.66
+ */
+gboolean
+g_bookmark_file_set_application_info (GBookmarkFile  *bookmark,
+                                      const char     *uri,
+                                      const char     *name,
+                                      const char     *exec,
+                                      int             count,
+                                      GDateTime      *stamp,
+                                      GError        **error)
+{
   BookmarkItem *item;
   BookmarkAppInfo *ai;
 
@@ -3241,6 +3469,8 @@ g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
   g_return_val_if_fail (uri != NULL, FALSE);
   g_return_val_if_fail (name != NULL, FALSE);
   g_return_val_if_fail (exec != NULL, FALSE);
+  g_return_val_if_fail (count == 0 || stamp != NULL, FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
@@ -3290,7 +3520,7 @@ g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
       g_hash_table_remove (item->metadata->apps_by_name, ai->name);
       bookmark_app_info_free (ai);
 
-      item->modified = time (NULL);
+      bookmark_item_touch_modified (item);
 
       return TRUE;
     }
@@ -3299,10 +3529,8 @@ g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
   else
     ai->count += 1;
 
-  if (stamp != (time_t) -1)
-    ai->stamp = stamp;
-  else
-    ai->stamp = time (NULL);
+  g_clear_pointer (&ai->stamp, g_date_time_unref);
+  ai->stamp = g_date_time_ref (stamp);
 
   if (exec && exec[0] != '\0')
     {
@@ -3310,7 +3538,7 @@ g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
       ai->exec = g_shell_quote (exec);
     }
 
-  item->modified = time (NULL);
+  bookmark_item_touch_modified (item);
 
   return TRUE;
 }
@@ -3379,7 +3607,7 @@ expand_exec_line (const gchar *exec_fmt,
  * @error: return location for a #GError, or %NULL
  *
  * Gets the registration information of @app_name for the bookmark for
- * @uri.  See g_bookmark_file_set_app_info() for more information about
+ * @uri.  See g_bookmark_file_set_application_info() for more information about
  * the returned data.
  *
  * The string returned in @app_exec must be freed.
@@ -3395,6 +3623,8 @@ expand_exec_line (const gchar *exec_fmt,
  * Returns: %TRUE on success.
  *
  * Since: 2.12
+ * Deprecated: 2.66: Use g_bookmark_file_get_application_info() instead, as
+ *    `time_t` is deprecated due to the year 2038 problem.
  */
 gboolean
 g_bookmark_file_get_app_info (GBookmarkFile  *bookmark,
@@ -3405,12 +3635,63 @@ g_bookmark_file_get_app_info (GBookmarkFile  *bookmark,
                              time_t         *stamp,
                              GError        **error)
 {
+  GDateTime *stamp_dt = NULL;
+  gboolean retval;
+
+  retval = g_bookmark_file_get_application_info (bookmark, uri, name, exec, count, &stamp_dt, error);
+  if (!retval)
+    return FALSE;
+
+  if (stamp != NULL)
+    *stamp = g_date_time_to_unix (stamp_dt);
+
+  return TRUE;
+}
+
+/**
+ * g_bookmark_file_get_application_info:
+ * @bookmark: a #GBookmarkFile
+ * @uri: a valid URI
+ * @name: an application's name
+ * @exec: (out) (optional): return location for the command line of the application, or %NULL
+ * @count: (out) (optional): return location for the registration count, or %NULL
+ * @stamp: (out) (optional) (transfer none): return location for the last registration time, or %NULL
+ * @error: return location for a #GError, or %NULL
+ *
+ * Gets the registration information of @app_name for the bookmark for
+ * @uri.  See g_bookmark_file_set_application_info() for more information about
+ * the returned data.
+ *
+ * The string returned in @app_exec must be freed.
+ *
+ * In the event the URI cannot be found, %FALSE is returned and
+ * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.  In the
+ * event that no application with name @app_name has registered a bookmark
+ * for @uri,  %FALSE is returned and error is set to
+ * #G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED. In the event that unquoting
+ * the command line fails, an error of the #G_SHELL_ERROR domain is
+ * set and %FALSE is returned.
+ *
+ * Returns: %TRUE on success.
+ *
+ * Since: 2.66
+ */
+gboolean
+g_bookmark_file_get_application_info (GBookmarkFile  *bookmark,
+                                      const char     *uri,
+                                      const char     *name,
+                                      char          **exec,
+                                      unsigned int   *count,
+                                      GDateTime     **stamp,
+                                      GError        **error)
+{
   BookmarkItem *item;
   BookmarkAppInfo *ai;
 
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
   g_return_val_if_fail (name != NULL, FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
@@ -3615,7 +3896,7 @@ g_bookmark_file_move_item (GBookmarkFile  *bookmark,
 
       g_free (item->uri);
       item->uri = g_strdup (new_uri);
-      item->modified = time (NULL);
+      bookmark_item_touch_modified (item);
 
       g_hash_table_replace (bookmark->items_by_uri, item->uri, item);
 
@@ -3676,7 +3957,7 @@ g_bookmark_file_set_icon (GBookmarkFile *bookmark,
   else
     item->metadata->icon_mime = g_strdup ("application/octet-stream");
 
-  item->modified = time (NULL);
+  bookmark_item_touch_modified (item);
 }
 
 /**
index 8dd93a1..e9cfbf1 100644 (file)
@@ -23,6 +23,7 @@
 #error "Only <glib.h> can be included directly."
 #endif
 
+#include <glib/gdatetime.h>
 #include <glib/gerror.h>
 #include <time.h>
 
@@ -162,7 +163,7 @@ gchar **       g_bookmark_file_get_applications    (GBookmarkFile  *bookmark,
                                                    const gchar    *uri,
                                                    gsize          *length,
                                                    GError        **error);
-GLIB_AVAILABLE_IN_ALL
+GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_set_application_info)
 gboolean       g_bookmark_file_set_app_info        (GBookmarkFile  *bookmark,
                                                    const gchar    *uri,
                                                    const gchar    *name,
@@ -170,7 +171,15 @@ gboolean       g_bookmark_file_set_app_info        (GBookmarkFile  *bookmark,
                                                    gint            count,
                                                    time_t          stamp,
                                                    GError        **error);
-GLIB_AVAILABLE_IN_ALL
+GLIB_AVAILABLE_IN_2_66
+gboolean       g_bookmark_file_set_application_info (GBookmarkFile  *bookmark,
+                                                     const char     *uri,
+                                                     const char     *name,
+                                                     const char     *exec,
+                                                     int             count,
+                                                     GDateTime      *stamp,
+                                                     GError        **error);
+GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_get_application_info)
 gboolean       g_bookmark_file_get_app_info        (GBookmarkFile  *bookmark,
                                                    const gchar    *uri,
                                                    const gchar    *name,
@@ -178,6 +187,14 @@ gboolean       g_bookmark_file_get_app_info        (GBookmarkFile  *bookmark,
                                                    guint          *count,
                                                    time_t         *stamp,
                                                    GError        **error);
+GLIB_AVAILABLE_IN_2_66
+gboolean       g_bookmark_file_get_application_info (GBookmarkFile  *bookmark,
+                                                     const char     *uri,
+                                                     const char     *name,
+                                                     char          **exec,
+                                                     unsigned int   *count,
+                                                     GDateTime     **stamp,
+                                                     GError        **error);
 GLIB_AVAILABLE_IN_ALL
 void           g_bookmark_file_set_is_private      (GBookmarkFile  *bookmark,
                                                    const gchar    *uri,
@@ -197,30 +214,54 @@ gboolean       g_bookmark_file_get_icon            (GBookmarkFile  *bookmark,
                                                    gchar         **href,
                                                    gchar         **mime_type,
                                                    GError        **error);
-GLIB_AVAILABLE_IN_ALL
+GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_set_added_date_time)
 void           g_bookmark_file_set_added           (GBookmarkFile  *bookmark,
                                                    const gchar    *uri,
                                                    time_t          added);
-GLIB_AVAILABLE_IN_ALL
+GLIB_AVAILABLE_IN_2_66
+void           g_bookmark_file_set_added_date_time (GBookmarkFile  *bookmark,
+                                                    const char     *uri,
+                                                    GDateTime      *added);
+GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_get_added_date_time)
 time_t         g_bookmark_file_get_added           (GBookmarkFile  *bookmark,
                                                    const gchar    *uri,
                                                    GError        **error);
-GLIB_AVAILABLE_IN_ALL
+GLIB_AVAILABLE_IN_2_66
+GDateTime     *g_bookmark_file_get_added_date_time (GBookmarkFile  *bookmark,
+                                                    const char     *uri,
+                                                    GError        **error);
+GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_set_modified_date_time)
 void           g_bookmark_file_set_modified        (GBookmarkFile  *bookmark,
                                                    const gchar    *uri,
                                                    time_t          modified);
-GLIB_AVAILABLE_IN_ALL
+GLIB_AVAILABLE_IN_2_66
+void           g_bookmark_file_set_modified_date_time (GBookmarkFile  *bookmark,
+                                                       const char     *uri,
+                                                       GDateTime      *modified);
+GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_get_modified_date_time)
 time_t         g_bookmark_file_get_modified        (GBookmarkFile  *bookmark,
                                                    const gchar    *uri,
                                                    GError        **error);
-GLIB_AVAILABLE_IN_ALL
+GLIB_AVAILABLE_IN_2_66
+GDateTime     *g_bookmark_file_get_modified_date_time (GBookmarkFile  *bookmark,
+                                                       const char     *uri,
+                                                       GError        **error);
+GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_set_visited_date_time)
 void           g_bookmark_file_set_visited         (GBookmarkFile  *bookmark,
                                                    const gchar    *uri,
                                                    time_t          visited);
-GLIB_AVAILABLE_IN_ALL
+GLIB_AVAILABLE_IN_2_66
+void           g_bookmark_file_set_visited_date_time (GBookmarkFile  *bookmark,
+                                                      const char     *uri,
+                                                      GDateTime      *visited);
+GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_get_visited_date_time)
 time_t         g_bookmark_file_get_visited         (GBookmarkFile  *bookmark,
                                                    const gchar    *uri, 
                                                    GError        **error);
+GLIB_AVAILABLE_IN_2_66
+GDateTime     *g_bookmark_file_get_visited_date_time (GBookmarkFile  *bookmark,
+                                                      const char     *uri,
+                                                      GError        **error);
 GLIB_AVAILABLE_IN_ALL
 gboolean       g_bookmark_file_has_item            (GBookmarkFile  *bookmark,
                                                    const gchar    *uri);
index bb775bd..9db56f7 100644 (file)
@@ -315,7 +315,7 @@ g_get_console_charset (const char **charset)
           g_free (emsg);
         }
     }
-  /* fall-back to UTF-8 if the rest failed (it's a universal default) */
+  /* fall-back to UTF-8 if the rest failed (it's a sane and universal default) */
   if (raw == NULL)
     raw = "UTF-8";
 
index 4072021..603c2dd 100644 (file)
@@ -1,6 +1,6 @@
 /*
   If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and
-  destructors, in a usable way, including e.g. on library unload. If not you're on
+  destructors, in a sane way, including e.g. on library unload. If not you're on
   your own.
 
   Some compilers need #pragma to handle this, which does not work with macros,
  */
 
 /* We need to account for differences between the mangling of symbols
- * for x86 and x64/ARM/ARM64 programs, as symbols on x86 are prefixed
- * with an underscore but symbols on x64/ARM/ARM64 are not.
+ * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed
+ * with an underscore but symbols on x64 are not.
  */
-#ifdef _M_IX86
-#define G_MSVC_SYMBOL_PREFIX "_"
-#else
+#ifdef _WIN64
 #define G_MSVC_SYMBOL_PREFIX ""
+#else
+#define G_MSVC_SYMBOL_PREFIX "_"
 #endif
 
 #define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX)
index ec7b95b..9782a88 100644 (file)
@@ -83,8 +83,8 @@
  *
  * #GDate is simple to use. First you need a "blank" date; you can get a
  * dynamically allocated date from g_date_new(), or you can declare an
- * automatic variable or array and initialize it by
- * calling g_date_clear(). A cleared date is safe; it's safe to call
+ * automatic variable or array and initialize it to a sane state by
+ * calling g_date_clear(). A cleared date is sane; it's safe to call
  * g_date_set_dmy() and the other mutator functions to initialize the
  * value of a cleared date. However, a cleared date is initially
  * invalid, meaning that it doesn't represent a day that exists.
  *
  * If it's declared on the stack, it will contain garbage so must be
  * initialized with g_date_clear(). g_date_clear() makes the date invalid
- * but safe. An invalid date doesn't represent a day, it's "empty." A date
+ * but sane. An invalid date doesn't represent a day, it's "empty." A date
  * becomes valid after you set it to a Julian day or you set a day, month,
  * and year.
  */
  * g_date_new:
  *
  * Allocates a #GDate and initializes
- * it to a safe state. The new date will
+ * it to a sane state. The new date will
  * be cleared (as if you'd called g_date_clear()) but invalid (it won't
  * represent an existing day). Free the return value with g_date_free().
  *
@@ -862,7 +862,7 @@ g_date_days_between (const GDate *d1,
  * @date: pointer to one or more dates to clear
  * @n_dates: number of dates to clear
  *
- * Initializes one or more #GDate structs to a safe but invalid
+ * Initializes one or more #GDate structs to a sane but invalid
  * state. The cleared dates will not represent an existing date, but will
  * not contain garbage. Useful to init a date declared on the stack.
  * Validity can be tested with g_date_valid().
@@ -1142,7 +1142,8 @@ g_date_prepare_to_parse (const gchar      *str,
               dmy_order[i] = G_DATE_DAY;
               break;
             case 76:
-              using_twodigit_years = TRUE; /* FALL THRU */
+              using_twodigit_years = TRUE;
+              G_GNUC_FALLTHROUGH;
             case 1976:
               dmy_order[i] = G_DATE_YEAR;
               break;
@@ -2055,7 +2056,7 @@ g_date_compare (const GDate *lhs,
  * @tm: (not nullable): struct tm to fill
  *
  * Fills in the date-related bits of a struct tm using the @date value.
- * Initializes the non-date parts with something safe but meaningless.
+ * Initializes the non-date parts with something sane but meaningless.
  */
 void        
 g_date_to_struct_tm (const GDate *d, 
@@ -2153,7 +2154,7 @@ g_date_order (GDate *date1,
 }
 
 #ifdef G_OS_WIN32
-static void
+static gboolean
 append_month_name (GArray     *result,
                   LCID        lcid,
                   SYSTEMTIME *systemtime,
@@ -2168,9 +2169,14 @@ append_month_name (GArray     *result,
     {
       base = abbreviated ? LOCALE_SABBREVMONTHNAME1 : LOCALE_SMONTHNAME1;
       n = GetLocaleInfoW (lcid, base + systemtime->wMonth - 1, NULL, 0);
+      if (n == 0)
+        return FALSE;
+
       g_array_set_size (result, result->len + n);
-      GetLocaleInfoW (lcid, base + systemtime->wMonth - 1,
-                     ((wchar_t *) result->data) + result->len - n, n);
+      if (GetLocaleInfoW (lcid, base + systemtime->wMonth - 1,
+                          ((wchar_t *) result->data) + result->len - n, n) != n)
+        return FALSE;
+
       g_array_set_size (result, result->len - 1);
     }
   else
@@ -2178,12 +2184,20 @@ append_month_name (GArray     *result,
       /* According to MSDN, this is the correct method to obtain
        * the form of the month name used when formatting a full
        * date; it must be a genitive case in some languages.
+       *
+       * (n == 0) indicates an error, whereas (n < 2) is something we’d never
+       * expect from the given format string, and would break the subsequent code.
        */
       lpFormat = abbreviated ? L"ddMMM" : L"ddMMMM";
       n = GetDateFormatW (lcid, 0, systemtime, lpFormat, NULL, 0);
+      if (n < 2)
+        return FALSE;
+
       g_array_set_size (result, result->len + n);
-      GetDateFormatW (lcid, 0, systemtime, lpFormat,
-                     ((wchar_t *) result->data) + result->len - n, n);
+      if (GetDateFormatW (lcid, 0, systemtime, lpFormat,
+                          ((wchar_t *) result->data) + result->len - n, n) != n)
+        return FALSE;
+
       /* We have obtained a day number as two digits and the month name.
        * Now let's get rid of those two digits: overwrite them with the
        * month name.
@@ -2193,6 +2207,8 @@ append_month_name (GArray     *result,
               (n - 2) * sizeof (wchar_t));
       g_array_set_size (result, result->len - 3);
     }
+
+  return TRUE;
 }
 
 static gsize
@@ -2285,12 +2301,16 @@ win32_strftime_helper (const GDate     *d,
              break;
            case 'b':
            case 'h':
-             append_month_name (result, lcid, &systemtime, TRUE,
-                                modifier == 'O');
+              if (!append_month_name (result, lcid, &systemtime, TRUE, modifier == 'O'))
+                {
+                  /* Ignore the error; this placeholder will be replaced with nothing */
+                }
              break;
            case 'B':
-             append_month_name (result, lcid, &systemtime, FALSE,
-                                modifier == 'O');
+              if (!append_month_name (result, lcid, &systemtime, FALSE, modifier == 'O'))
+                {
+                  /* Ignore the error; this placeholder will be replaced with nothing */
+                }
              break;
            case 'c':
              n = GetDateFormatW (lcid, 0, &systemtime, NULL, NULL, 0);
index 65fe811..3bc07bf 100644 (file)
@@ -178,7 +178,7 @@ GLIB_AVAILABLE_IN_ALL
 guint        g_date_get_iso8601_week_of_year (const GDate *date);
 
 /* If you create a static date struct you need to clear it to get it
- * in a safe state before use. You can clear a whole array at
+ * in a sane state before use. You can clear a whole array at
  * once with the ndates argument.
  */
 GLIB_AVAILABLE_IN_ALL
index a14124d..a72ad8a 100644 (file)
@@ -928,20 +928,21 @@ g_date_time_new_from_unix (GTimeZone *tz,
 }
 
 /**
- * g_date_time_new_now:
+ * g_date_time_new_now: (constructor)
  * @tz: a #GTimeZone
  *
  * Creates a #GDateTime corresponding to this exact instant in the given
  * time zone @tz.  The time is as accurate as the system allows, to a
  * maximum accuracy of 1 microsecond.
  *
- * This function will always succeed unless GLib is still being used after the
- * year 9999.
+ * This function will always succeed unless the system clock is set to
+ * truly insane values (or unless GLib is still being used after the
+ * year 9999).
  *
  * You should release the return value by calling g_date_time_unref()
  * when you are done with it.
  *
- * Returns: a new #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a new #GDateTime, or %NULL
  *
  * Since: 2.26
  **/
@@ -956,7 +957,7 @@ g_date_time_new_now (GTimeZone *tz)
 }
 
 /**
- * g_date_time_new_now_local:
+ * g_date_time_new_now_local: (constructor)
  *
  * Creates a #GDateTime corresponding to this exact instant in the local
  * time zone.
@@ -964,7 +965,7 @@ g_date_time_new_now (GTimeZone *tz)
  * This is equivalent to calling g_date_time_new_now() with the time
  * zone returned by g_time_zone_new_local().
  *
- * Returns: a new #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a new #GDateTime, or %NULL
  *
  * Since: 2.26
  **/
@@ -982,14 +983,14 @@ g_date_time_new_now_local (void)
 }
 
 /**
- * g_date_time_new_now_utc:
+ * g_date_time_new_now_utc: (constructor)
  *
  * Creates a #GDateTime corresponding to this exact instant in UTC.
  *
  * This is equivalent to calling g_date_time_new_now() with the time
  * zone returned by g_time_zone_new_utc().
  *
- * Returns: a new #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a new #GDateTime, or %NULL
  *
  * Since: 2.26
  **/
@@ -1007,7 +1008,7 @@ g_date_time_new_now_utc (void)
 }
 
 /**
- * g_date_time_new_from_unix_local:
+ * g_date_time_new_from_unix_local: (constructor)
  * @t: the Unix time
  *
  * Creates a #GDateTime corresponding to the given Unix time @t in the
@@ -1022,7 +1023,7 @@ g_date_time_new_now_utc (void)
  * You should release the return value by calling g_date_time_unref()
  * when you are done with it.
  *
- * Returns: a new #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a new #GDateTime, or %NULL
  *
  * Since: 2.26
  **/
@@ -1032,8 +1033,7 @@ g_date_time_new_from_unix_local (gint64 t)
   GDateTime *datetime;
   GTimeZone *local;
 
-  if (t > G_MAXINT64 / USEC_PER_SECOND ||
-      t < G_MININT64 / USEC_PER_SECOND)
+  if (t > G_MAXINT64 / USEC_PER_SECOND)
     return NULL;
 
   local = g_time_zone_new_local ();
@@ -1044,7 +1044,7 @@ g_date_time_new_from_unix_local (gint64 t)
 }
 
 /**
- * g_date_time_new_from_unix_utc:
+ * g_date_time_new_from_unix_utc: (constructor)
  * @t: the Unix time
  *
  * Creates a #GDateTime corresponding to the given Unix time @t in UTC.
@@ -1058,7 +1058,7 @@ g_date_time_new_from_unix_local (gint64 t)
  * You should release the return value by calling g_date_time_unref()
  * when you are done with it.
  *
- * Returns: a new #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a new #GDateTime, or %NULL
  *
  * Since: 2.26
  **/
@@ -1068,8 +1068,7 @@ g_date_time_new_from_unix_utc (gint64 t)
   GDateTime *datetime;
   GTimeZone *utc;
 
-  if (t > G_MAXINT64 / USEC_PER_SECOND ||
-      t < G_MININT64 / USEC_PER_SECOND)
+  if (t > G_MAXINT64 / USEC_PER_SECOND)
     return NULL;
 
   utc = g_time_zone_new_utc ();
@@ -1080,7 +1079,7 @@ g_date_time_new_from_unix_utc (gint64 t)
 }
 
 /**
- * g_date_time_new_from_timeval_local:
+ * g_date_time_new_from_timeval_local: (constructor)
  * @tv: a #GTimeVal
  *
  * Creates a #GDateTime corresponding to the given #GTimeVal @tv in the
@@ -1096,7 +1095,7 @@ g_date_time_new_from_unix_utc (gint64 t)
  * You should release the return value by calling g_date_time_unref()
  * when you are done with it.
  *
- * Returns: a new #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a new #GDateTime, or %NULL
  *
  * Since: 2.26
  * Deprecated: 2.62: #GTimeVal is not year-2038-safe. Use
@@ -1118,7 +1117,7 @@ g_date_time_new_from_timeval_local (const GTimeVal *tv)
 G_GNUC_END_IGNORE_DEPRECATIONS
 
 /**
- * g_date_time_new_from_timeval_utc:
+ * g_date_time_new_from_timeval_utc: (constructor)
  * @tv: a #GTimeVal
  *
  * Creates a #GDateTime corresponding to the given #GTimeVal @tv in UTC.
@@ -1132,7 +1131,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
  * You should release the return value by calling g_date_time_unref()
  * when you are done with it.
  *
- * Returns: a new #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a new #GDateTime, or %NULL
  *
  * Since: 2.26
  * Deprecated: 2.62: #GTimeVal is not year-2038-safe. Use
@@ -1428,7 +1427,7 @@ parse_iso8601_time (const gchar *text, gsize length,
 }
 
 /**
- * g_date_time_new_from_iso8601:
+ * g_date_time_new_from_iso8601: (constructor)
  * @text: an ISO 8601 formatted time string.
  * @default_tz: (nullable): a #GTimeZone to use if the text doesn't contain a
  *                          timezone, or %NULL.
@@ -1519,7 +1518,7 @@ out:
 /* full new functions {{{1 */
 
 /**
- * g_date_time_new:
+ * g_date_time_new: (constructor)
  * @tz: a #GTimeZone
  * @year: the year component of the date
  * @month: the month component of the date
@@ -1557,7 +1556,7 @@ out:
  * You should release the return value by calling g_date_time_unref()
  * when you are done with it.
  *
- * Returns: a new #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a new #GDateTime, or %NULL
  *
  * Since: 2.26
  **/
@@ -1624,7 +1623,7 @@ g_date_time_new (GTimeZone *tz,
 }
 
 /**
- * g_date_time_new_local:
+ * g_date_time_new_local: (constructor)
  * @year: the year component of the date
  * @month: the month component of the date
  * @day: the day component of the date
@@ -1638,7 +1637,7 @@ g_date_time_new (GTimeZone *tz,
  * This call is equivalent to calling g_date_time_new() with the time
  * zone returned by g_time_zone_new_local().
  *
- * Returns: a #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a #GDateTime, or %NULL
  *
  * Since: 2.26
  **/
@@ -1661,7 +1660,7 @@ g_date_time_new_local (gint    year,
 }
 
 /**
- * g_date_time_new_utc:
+ * g_date_time_new_utc: (constructor)
  * @year: the year component of the date
  * @month: the month component of the date
  * @day: the day component of the date
@@ -1675,7 +1674,7 @@ g_date_time_new_local (gint    year,
  * This call is equivalent to calling g_date_time_new() with the time
  * zone returned by g_time_zone_new_utc().
  *
- * Returns: a #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): a #GDateTime, or %NULL
  *
  * Since: 2.26
  **/
@@ -1706,8 +1705,8 @@ g_date_time_new_utc (gint    year,
  *
  * Creates a copy of @datetime and adds the specified timespan to the copy.
  *
- * Returns: the newly created #GDateTime which should be freed with
- *   g_date_time_unref().
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  */
@@ -1715,6 +1714,8 @@ GDateTime*
 g_date_time_add (GDateTime *datetime,
                  GTimeSpan  timespan)
 {
+  g_return_val_if_fail (datetime != NULL, NULL);
+
   return g_date_time_from_instant (datetime->tz, timespan +
                                    g_date_time_to_instant (datetime));
 }
@@ -1730,8 +1731,8 @@ g_date_time_add (GDateTime *datetime,
  * As with g_date_time_add_months(), if the resulting date would be 29th
  * February on a non-leap year, the day will be clamped to 28th February.
  *
- * Returns: the newly created #GDateTime which should be freed with
- *   g_date_time_unref().
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  */
@@ -1770,8 +1771,8 @@ g_date_time_add_years (GDateTime *datetime,
  * 31st January 2018, the result would be 28th February 2018. In 2020 (a leap
  * year), the result would be 29th February.
  *
- * Returns: the newly created #GDateTime which should be freed with
- *   g_date_time_unref().
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  */
@@ -1813,8 +1814,8 @@ g_date_time_add_months (GDateTime *datetime,
  * Creates a copy of @datetime and adds the specified number of weeks to the
  * copy. Add negative values to subtract weeks.
  *
- * Returns: the newly created #GDateTime which should be freed with
- *   g_date_time_unref().
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  */
@@ -1835,8 +1836,8 @@ g_date_time_add_weeks (GDateTime *datetime,
  * Creates a copy of @datetime and adds the specified number of days to the
  * copy. Add negative values to subtract days.
  *
- * Returns: the newly created #GDateTime which should be freed with
- *   g_date_time_unref().
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  */
@@ -1860,8 +1861,8 @@ g_date_time_add_days (GDateTime *datetime,
  * Creates a copy of @datetime and adds the specified number of hours.
  * Add negative values to subtract hours.
  *
- * Returns: the newly created #GDateTime which should be freed with
- *   g_date_time_unref().
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  */
@@ -1880,8 +1881,8 @@ g_date_time_add_hours (GDateTime *datetime,
  * Creates a copy of @datetime adding the specified number of minutes.
  * Add negative values to subtract minutes.
  *
- * Returns: the newly created #GDateTime which should be freed with
- *   g_date_time_unref().
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  */
@@ -1901,8 +1902,8 @@ g_date_time_add_minutes (GDateTime *datetime,
  * Creates a copy of @datetime and adds the specified number of seconds.
  * Add negative values to subtract seconds.
  *
- * Returns: the newly created #GDateTime which should be freed with
- *   g_date_time_unref().
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  */
@@ -1926,8 +1927,8 @@ g_date_time_add_seconds (GDateTime *datetime,
  * Creates a new #GDateTime adding the specified values to the current date and
  * time in @datetime. Add negative values to subtract.
  *
- * Returns: the newly created #GDateTime that should be freed with
- *   g_date_time_unref().
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  */
@@ -2083,6 +2084,8 @@ g_date_time_difference (GDateTime *end,
 guint
 g_date_time_hash (gconstpointer datetime)
 {
+  g_return_val_if_fail (datetime != NULL, 0);
+
   return g_date_time_to_instant ((GDateTime *) datetime);
 }
 
@@ -2550,6 +2553,8 @@ g_date_time_get_seconds (GDateTime *datetime)
 gint64
 g_date_time_to_unix (GDateTime *datetime)
 {
+  g_return_val_if_fail (datetime != NULL, 0);
+
   return INSTANT_TO_UNIX (g_date_time_to_instant (datetime));
 }
 
@@ -2583,6 +2588,8 @@ gboolean
 g_date_time_to_timeval (GDateTime *datetime,
                         GTimeVal  *tv)
 {
+  g_return_val_if_fail (datetime != NULL, FALSE);
+
   tv->tv_sec = INSTANT_TO_UNIX (g_date_time_to_instant (datetime));
   tv->tv_usec = datetime->usec % USEC_PER_SECOND;
 
@@ -2696,10 +2703,8 @@ g_date_time_is_daylight_savings (GDateTime *datetime)
  * example, converting 0001-01-01 00:00:00 UTC to a time zone west of
  * Greenwich will fail (due to the year 0 being out of range).
  *
- * You should release the return value by calling g_date_time_unref()
- * when you are done with it.
- *
- * Returns: a new #GDateTime, or %NULL
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  **/
@@ -2707,6 +2712,9 @@ GDateTime *
 g_date_time_to_timezone (GDateTime *datetime,
                          GTimeZone *tz)
 {
+  g_return_val_if_fail (datetime != NULL, NULL);
+  g_return_val_if_fail (tz != NULL, NULL);
+
   return g_date_time_from_instant (tz, g_date_time_to_instant (datetime));
 }
 
@@ -2720,7 +2728,8 @@ g_date_time_to_timezone (GDateTime *datetime,
  * This call is equivalent to calling g_date_time_to_timezone() with the
  * time zone returned by g_time_zone_new_local().
  *
- * Returns: the newly created #GDateTime
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  **/
@@ -2747,7 +2756,8 @@ g_date_time_to_local (GDateTime *datetime)
  * This call is equivalent to calling g_date_time_to_timezone() with the
  * time zone returned by g_time_zone_new_utc().
  *
- * Returns: the newly created #GDateTime
+ * Returns: (transfer full) (nullable): the newly created #GDateTime which
+ *   should be freed with g_date_time_unref(), or %NULL
  *
  * Since: 2.26
  **/
@@ -3348,10 +3358,14 @@ g_date_time_format_utf8 (GDateTime   *datetime,
  * - \%M: the minute as a decimal number (range 00 to 59)
  * - \%p: either "AM" or "PM" according to the given time value, or the
  *   corresponding  strings for the current locale.  Noon is treated as
- *   "PM" and midnight as "AM".
+ *   "PM" and midnight as "AM". Use of this format specifier is discouraged, as
+ *   many locales have no concept of AM/PM formatting. Use \%c or \%X instead.
  * - \%P: like \%p but lowercase: "am" or "pm" or a corresponding string for
- *   the current locale
- * - \%r: the time in a.m. or p.m. notation
+ *   the current locale. Use of this format specifier is discouraged, as
+ *   many locales have no concept of AM/PM formatting. Use \%c or \%X instead.
+ * - \%r: the time in a.m. or p.m. notation. Use of this format specifier is
+ *   discouraged, as many locales have no concept of AM/PM formatting. Use \%c
+ *   or \%X instead.
  * - \%R: the time in 24-hour notation (\%H:\%M)
  * - \%s: the number of seconds since the Epoch, that is, since 1970-01-01
  *   00:00:00 UTC
@@ -3403,10 +3417,10 @@ g_date_time_format_utf8 (GDateTime   *datetime,
  * strftime() extension expected to be added to the future POSIX specification,
  * \%Ob and \%Oh are GNU strftime() extensions. Since: 2.56
  *
- * Returns: a newly allocated string formatted to the requested format
- *     or %NULL in the case that there was an error (such as a format specifier
- *     not being supported in the current locale). The string
- *     should be freed with g_free().
+ * Returns: (transfer full) (nullable): a newly allocated string formatted to
+ *    the requested format or %NULL in the case that there was an error (such
+ *    as a format specifier not being supported in the current locale). The
+ *    string should be freed with g_free().
  *
  * Since: 2.26
  */
@@ -3447,9 +3461,10 @@ g_date_time_format (GDateTime   *datetime,
  * including the date, time and time zone, and return that as a UTF-8 encoded
  * string.
  *
- * Returns: a newly allocated string formatted in ISO 8601 format
- *     or %NULL in the case that there was an error. The string
- *     should be freed with g_free().
+ * Returns: (transfer full) (nullable): a newly allocated string formatted in
+ *   ISO 8601 format or %NULL in the case that there was an error. The string
+ *   should be freed with g_free().
+ *
  * Since: 2.62
  */
 gchar *
index 5633b04..6601126 100755 (executable)
@@ -16,7 +16,7 @@
 #    You should have received a copy of the GNU General Public License
 #    along with this program; if not, see <http://www.gnu.org/licenses/>.
 
-# Contributer(s):
+# Contributor(s):
 #   Andrew Taylor <andrew.taylor@montage.ca>
 
 # gen-unicode-tables.pl - Generate tables for libunicode from Unicode data.
@@ -225,7 +225,7 @@ defined $derivedeastasianwidthtxt or die "Did not find DerivedEastAsianWidth fil
 print "Creating decomp table\n" if ($do_decomp);
 print "Creating property table\n" if ($do_props);
 
-print "Composition exlusions from $compositionexclusionstxt\n";
+print "Composition exclusions from $compositionexclusionstxt\n";
 
 open (INPUT, "< $compositionexclusionstxt") || exit 1;
 
index 55e1e75..04e9ab0 100644 (file)
@@ -227,7 +227,7 @@ g_environ_unsetenv (gchar       **envp,
   return g_environ_unsetenv_internal (envp, variable, TRUE);
 }
 
-/* UNIX implemention {{{1 */
+/* UNIX implementation {{{1 */
 #ifndef G_OS_WIN32
 
 /**
index d72f2d9..f0799e2 100644 (file)
@@ -1089,7 +1089,7 @@ write_to_temp_file (const gchar  *contents,
     {
       gssize s;
 
-      s = write (fd, contents, MIN (length, G_MAXSSIZE));
+      s = write (fd, contents, length);
 
       if (s < 0)
         {
@@ -1106,7 +1106,7 @@ write_to_temp_file (const gchar  *contents,
           goto out;
         }
 
-      g_assert ((gsize) s <= length);
+      g_assert (s <= length);
 
       contents += s;
       length -= s;
index b34521f..303b9b9 100644 (file)
@@ -121,7 +121,7 @@ ensure_gettext_initialized (void)
  * This is an internal function and should only be used by
  * the internals of glib (such as libgio).
  *
- * Returns: the transation of @str to the current locale
+ * Returns: the translation of @str to the current locale
  */
 const gchar *
 glib_gettext (const gchar *str)
@@ -635,4 +635,3 @@ g_dngettext (const gchar *domain,
  *
  * Since: 2.18
  */
-
index 0f1562a..4fe2912 100644 (file)
  * a more secure hash function when using a GHashTable with keys
  * that originate in untrusted data (such as HTTP requests).
  * Using g_str_hash() in that situation might make your application
- * vulerable to
+ * vulnerable to
  * [Algorithmic Complexity Attacks](https://lwn.net/Articles/474912/).
  *
  * The key to choosing a good hash is unpredictability.  Even
index d163998..d977b76 100644 (file)
  * @G_IO_STATUS_EOF: End of file.
  * @G_IO_STATUS_AGAIN: Resource temporarily unavailable.
  *
- * Stati returned by most of the #GIOFuncs functions.
+ * Statuses returned by most of the #GIOFuncs functions.
  **/
 
 /**
@@ -1854,7 +1854,7 @@ read_again:
                         goto done;
                       }
                     break;
-                  case '\0': /* Embeded null in input */
+                  case '\0': /* Embedded null in input */
                     line_length = nextchar - use_buf->str;
                     got_term_len = 1;
                     goto done;
@@ -1986,7 +1986,7 @@ g_io_channel_read_to_end (GIOChannel  *channel,
  * @buf: (out caller-allocates) (array length=count) (element-type guint8):
  *     a buffer to read data into
  * @count: (in): the size of the buffer. Note that the buffer may not be
- *     complelely filled even if there is data in the buffer if the
+ *     completely filled even if there is data in the buffer if the
  *     remaining data is not a complete character.
  * @bytes_read: (out) (optional): The number of bytes read. This may be
  *     zero even on success if count < 6 and the channel's encoding
@@ -2374,7 +2374,7 @@ reconvert:
                       default:
                         g_assert_not_reached ();
                         err = (gsize) -1;
-                        errnum = 0; /* Don't confunse the compiler */
+                        errnum = 0; /* Don't confuse the compiler */
                     }
                 }
               else
index dc80ce5..8572711 100644 (file)
@@ -1113,7 +1113,7 @@ g_key_file_load_from_dirs (GKeyFile       *key_file,
  * @full_path.  If the file could not be loaded then an %error is
  * set to either a #GFileError or #GKeyFileError.
  *
- * Returns: %TRUE if a key file could be loaded, %FALSE othewise
+ * Returns: %TRUE if a key file could be loaded, %FALSE otherwise
  * Since: 2.6
  **/
 gboolean
@@ -3487,7 +3487,7 @@ g_key_file_get_key_comment (GKeyFile     *key_file,
   string = NULL;
 
   /* Then find all the comments already associated with the
-   * key and concatentate them.
+   * key and concatenate them.
    */
   tmp = key_node->next;
   if (!key_node->next)
index d2aea9f..1c0da19 100644 (file)
@@ -59,4 +59,3 @@ glib__private__ (void)
 
   return &table;
 }
-
index 7ef8c48..873cb03 100644 (file)
@@ -147,7 +147,6 @@ typedef unsigned @glib_intptr_type_define@ guintptr;
 #define G_THREADS_ENABLED
 #define G_THREADS_IMPL_@g_threads_impl_def@
 
-#mesondefine G_ATOMIC_OP_MEMORY_BARRIER_NEEDED
 #mesondefine G_ATOMIC_LOCK_FREE
 
 #define GINT16_TO_@g_bs_native@(val)   ((gint16) (val))
index a770ac7..d953de4 100644 (file)
@@ -89,7 +89,7 @@
  * in a compatible way before this feature was supported in all
  * compilers.  These days, GLib requires inlining support from the
  * compiler, so your GLib-using programs can safely assume that the
- * "inline" keywork works properly.
+ * "inline" keyword works properly.
  *
  * Never use this macro anymore.  Just say "static inline".
  *
 /**
  * G_GNUC_FALLTHROUGH:
  *
- * Expands to the GNU C `fallthrough` statement attribute if the compiler is gcc.
+ * Expands to the GNU C `fallthrough` statement attribute if the compiler supports it.
  * This allows declaring case statement to explicitly fall through in switch
  * statements. To enable this feature, use `-Wimplicit-fallthrough` during
  * compilation.
  */
 #if    __GNUC__ > 6
 #define G_GNUC_FALLTHROUGH __attribute__((fallthrough))
+#elif g_macro__has_attribute (fallthrough)
+#define G_GNUC_FALLTHROUGH __attribute__((fallthrough))
 #else
 #define G_GNUC_FALLTHROUGH
 #endif /* __GNUC__ */
 #define GLIB_DEPRECATED _GLIB_EXTERN
 #define GLIB_DEPRECATED_FOR(f) _GLIB_EXTERN
 #define GLIB_UNAVAILABLE(maj,min) _GLIB_EXTERN
+#define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min)
 #else
 #define GLIB_DEPRECATED G_DEPRECATED _GLIB_EXTERN
 #define GLIB_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GLIB_EXTERN
 #define GLIB_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GLIB_EXTERN
+#define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min) G_UNAVAILABLE(maj,min)
 #endif
 
 #if !defined(GLIB_DISABLE_DEPRECATION_WARNINGS) && \
index d4776c1..5c0e524 100644 (file)
@@ -499,6 +499,7 @@ typedef void GMainContextPusher GLIB_AVAILABLE_TYPE_IN_2_64;
  * Since: 2.64
  */
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
 static inline GMainContextPusher *
 g_main_context_pusher_new (GMainContext *main_context)
 {
@@ -520,6 +521,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
  * Since: 2.64
  */
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
 static inline void
 g_main_context_pusher_free (GMainContextPusher *pusher)
 {
index 88af5d8..605eac1 100644 (file)
@@ -66,11 +66,15 @@ static GMemVTable glib_mem_vtable = {
  * If any call to allocate memory using functions g_new(), g_new0(), g_renew(),
  * g_malloc(), g_malloc0(), g_malloc0_n(), g_realloc(), and g_realloc_n()
  * fails, the application is terminated. This also means that there is no
- * need to check if the call succeeded. On the other hand, g_try_...() family
+ * need to check if the call succeeded. On the other hand, the `g_try_...()` family
  * of functions returns %NULL on failure that can be used as a check
  * for unsuccessful memory allocation. The application is not terminated
  * in this case.
  *
+ * As all GLib functions and data structures use `g_malloc()` internally, unless
+ * otherwise specified, any allocation failure will result in the application
+ * being terminated.
+ *
  * It's important to match g_malloc() (and wrappers such as g_new()) with
  * g_free(), g_slice_alloc() (and wrappers such as g_slice_new()) with
  * g_slice_free(), plain malloc() with free(), and (if you're using C++)
index 953a018..4567107 100644 (file)
@@ -197,6 +197,7 @@ gpointer g_try_realloc_n  (gpointer  mem,
  *
  * Since: 2.44
  */
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
 static inline gpointer
 g_steal_pointer (gpointer pp)
 {
index ea3f6c1..eb814cf 100644 (file)
@@ -3063,7 +3063,7 @@ escape_string (GString *string)
  *
  * - `G_MESSAGES_PREFIXED`: A :-separated list of log levels for which
  *   messages should be prefixed by the program name and PID of the
- *   aplication.
+ *   application.
  *
  * - `G_MESSAGES_DEBUG`: A space-separated list of log domains for
  *   which debug and informational messages are printed. By default
index de98fd5..4becb68 100644 (file)
@@ -834,7 +834,7 @@ g_node_depth_traverse_level (GNode             *node,
  *              its grandchildren, and so on. Note that this is less
  *              efficient than the other orders.
  *
- * Specifies the type of traveral performed by g_tree_traverse(),
+ * Specifies the type of traversal performed by g_tree_traverse(),
  * g_node_traverse() and g_node_find(). The different orders are
  * illustrated here:
  * - In order: A, B, C, D, E, F, G, H, I
index 41d414c..b7467b1 100644 (file)
@@ -44,4 +44,3 @@
 
 
 #endif  /* __G_GNULIB_H__ */
-
index e7b44b9..7290fb6 100644 (file)
@@ -27,4 +27,4 @@ int
 gl_isinfl (long double x)
 {
   return gl_isinfd (x);
-}
\ No newline at end of file
+}
index e45e8c2..38b530a 100644 (file)
@@ -182,7 +182,7 @@ endforeach
 nan_tmpl = '''#include <math.h>
               #if __GNUC__ >= 4
               # undef @0@
-              # define @0@(x) __builtin_isnan ((@1@)(x))
+              # define @0@(x) @2@ ((@1@)(x))
               #else
               # undef @0@
               # define @0@(x) isnan ((@1@)(x))
@@ -191,18 +191,47 @@ nan_tmpl = '''#include <math.h>
               int main () {return @0@ (x);}
            '''
 
-links = cc.links (nan_tmpl.format ('isnand', 'double'),
+links = cc.links (nan_tmpl.format ('isnand', 'double', '__builtin_isnan'),
                   dependencies : [libm])
+
+math_h_config.set ('HAVE_ISNAN', links ? 1 : 0)
+set_variable ('have_isnan', links)
 math_h_config.set ('HAVE_ISNAND', links ? 1 : 0)
-math_h_config.set ('HAVE_ISNAND_IN_LIBC', links ? 1 : 0)
 set_variable ('have_isnand', links)
 
-links = cc.links (nan_tmpl.format ('isnanl', 'long double'),
+if links
+  extra_gnulib_args += '-DHAVE_ISNAN_IN_LIBC'
+  extra_gnulib_args += '-DHAVE_ISNAND_IN_LIBC'
+endif
+
+links = cc.links (nan_tmpl.format ('isnanf', 'float', '__builtin_isnanf'),
                   dependencies : [libm])
+
+math_h_config.set ('HAVE_ISNANF', links ? 1 : 0)
+set_variable ('have_isnanf', links)
+
+if links
+  extra_gnulib_args += '-DHAVE_ISNANF_IN_LIBC'
+endif
+
+links = cc.links (nan_tmpl.format ('isnanl', 'long double', '__builtin_isnanl'),
+                  dependencies : [libm])
+
 math_h_config.set ('HAVE_ISNANL', links ? 1 : 0)
-math_h_config.set ('HAVE_ISNANL_IN_LIBC', links ? 1 : 0)
 set_variable ('have_isnanl', links)
 
+if links
+  extra_gnulib_args += '-DHAVE_ISNANL_IN_LIBC'
+endif
+
+math_h_config.set ('REPLACE_ISNAN', (have_isnand and have_isnanf and have_isnanl) ? 0 : 1)
+
+other_needed_math_sources = []
+
+if not (have_isnand and have_isnanf and have_isnanl)
+  other_needed_math_sources += [ 'isnand.c', 'isnanf.c', 'isnanl.c' ]
+endif
+
 links = cc.links ('''#include <math.h>
                      double x;
                      int y;
@@ -301,9 +330,8 @@ inf_tmpl = '''#include <math.h>
               int main () {return @0@ (x);}
            '''
 
-other_needed_math_sources = []
 # Some compilers may not have isfinite, isinf available
-foreach f: ['isfinite', 'isinf', 'isnan', 'isnanf', 'signbit']
+foreach f: ['isfinite', 'isinf', 'signbit']
   links = cc.links (inf_tmpl.format('@0@'.format(f)),
                     dependencies : [libm])
   math_h_config.set ('HAVE_@0@'.format(f.to_upper()), links ? 1 : 0)
@@ -323,7 +351,7 @@ math_h = configure_file (input: 'gnulib_math.h.in',
                          output: 'gnulib_math.h',
                          configuration: math_h_config)
 
-gnulib_sources = ['asnprintf.c', 'printf.c', 'printf-args.c', 'printf-parse.c', 'printf-frexp.c', 'printf-frexpl.c', 'isnand.c', 'isnanl.c', 'vasnprintf.c', 'xsize.c']
+gnulib_sources = ['asnprintf.c', 'printf.c', 'printf-args.c', 'printf-parse.c', 'printf-frexp.c', 'printf-frexpl.c', 'vasnprintf.c', 'xsize.c']
 
 if not gl_cv_func_frexp_works
   gnulib_sources += ['frexp.c']
index 242740a..c290b15 100644 (file)
@@ -143,8 +143,3 @@ int _g_gnulib_vasprintf (char **result, char const *format, va_list args)
   
   return length;  
 }
-
-
-
-
-
index ac29be4..b05216b 100644 (file)
@@ -50,6 +50,3 @@ int _g_gnulib_vasprintf (char       **result,
 
 
 #endif /* __GNULIB_PRINTF_H__ */
-
-
-
index b0fb80c..9f5b977 100644 (file)
@@ -241,7 +241,7 @@ struct _GOptionContext
 {
   GList           *groups;
 
-  gchar           *parameter_string;
+  gchar           *parameter_string;  /* (nullable) */
   gchar           *summary;
   gchar           *description;
 
@@ -364,6 +364,11 @@ g_option_context_new (const gchar *parameter_string)
 
   context = g_new0 (GOptionContext, 1);
 
+  /* Clear the empty string to NULL, otherwise we end up calling gettext(""),
+   * which returns the translation header. */
+  if (parameter_string != NULL && *parameter_string == '\0')
+    parameter_string = NULL;
+
   context->parameter_string = g_strdup (parameter_string);
   context->strict_posix = FALSE;
   context->help_enabled = TRUE;
index 02bd948..9ccf2eb 100644 (file)
@@ -54,4 +54,3 @@
 #endif
 
 #endif /* __G_PRINTF_H__ */
-
index cf935fc..3d6dc60 100644 (file)
@@ -582,7 +582,7 @@ gdouble
 g_rand_double (GRand *rand)
 {    
   /* We set all 52 bits after the point for this, not only the first
-     32. Thats why we need two calls to g_rand_int */
+     32. That's why we need two calls to g_rand_int */
   gdouble retval = g_rand_int (rand) * G_RAND_DOUBLE_TRANSFORM;
   retval = (retval + g_rand_int (rand)) * G_RAND_DOUBLE_TRANSFORM;
 
index 82528c7..d64e502 100644 (file)
@@ -37,7 +37,7 @@ typedef struct _GRand           GRand;
 
 /* GRand - a good and fast random number generator: Mersenne Twister
  * see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html for more info.
- * The range functions return a value in the intervall [begin, end).
+ * The range functions return a value in the interval [begin, end).
  * int          -> [0..2^32-1]
  * int_range    -> [begin..end-1]
  * double       -> [0..1)
index cef091e..52416bb 100644 (file)
@@ -186,7 +186,7 @@ G_STATIC_ASSERT (G_REGEX_MATCH_PARTIAL_SOFT     == PCRE_PARTIAL_SOFT);
 G_STATIC_ASSERT (G_REGEX_MATCH_PARTIAL_HARD     == PCRE_PARTIAL_HARD);
 G_STATIC_ASSERT (G_REGEX_MATCH_NOTEMPTY_ATSTART == PCRE_NOTEMPTY_ATSTART);
 
-/* These PCRE flags are unused or not exposed publically in GRegexFlags, so
+/* These PCRE flags are unused or not exposed publicly in GRegexFlags, so
  * it should be ok to reuse them for different things.
  */
 G_STATIC_ASSERT (G_REGEX_OPTIMIZE          == PCRE_NO_UTF8_CHECK);
@@ -1285,7 +1285,7 @@ static pcre *regex_compile (const gchar         *pattern,
  * Compiles the regular expression to an internal form, and does
  * the initial setup of the #GRegex structure.
  *
- * Returns: (nullable): a #GRegex structure or %NULL if an error occured. Call
+ * Returns: (nullable): a #GRegex structure or %NULL if an error occurred. Call
  *   g_regex_unref() when you are done with it
  *
  * Since: 2.14
@@ -2785,7 +2785,7 @@ interpolation_list_needs_match (GList *list)
  * If you do not need to use backreferences use g_regex_replace_literal().
  *
  * The @replacement string must be UTF-8 encoded even if #G_REGEX_RAW was
- * passed to g_regex_new(). If you want to use not UTF-8 encoded stings
+ * passed to g_regex_new(). If you want to use not UTF-8 encoded strings
  * you can use g_regex_replace_literal().
  *
  * Setting @start_position differs from just passing over a shortened
index e093bb8..e2c6aa4 100644 (file)
@@ -1955,7 +1955,7 @@ g_scanner_get_token_ll    (GScanner       *scanner,
            }
          else
            ch = '0';
-         /* fall through */
+          G_GNUC_FALLTHROUGH;
        case '1':
        case '2':
        case '3':
index 55bc7f4..5ee8432 100644 (file)
@@ -480,7 +480,7 @@ static const guchar g_script_easy_table[8192] = {
   G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN,
   G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN,
   G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN,
-  G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_ARMENIAN,
+  G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ARMENIAN,
   G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW,
@@ -754,10 +754,10 @@ static const guchar g_script_easy_table[8192] = {
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC,
   G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC,
   G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC,
-  G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
-  G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
-  G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
-  G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
+  G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC,
+  G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC,
+  G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC,
+  G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
@@ -975,7 +975,7 @@ static const guchar g_script_easy_table[8192] = {
   G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
-  G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA,
+  G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA,
@@ -1118,7 +1118,7 @@ static const guchar g_script_easy_table[8192] = {
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM,
-  G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN,
+  G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM,
   G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM,
   G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM,
   G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN,
@@ -1160,7 +1160,7 @@ static const guchar g_script_easy_table[8192] = {
   G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM,
   G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM,
   G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM,
-  G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA,
+  G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA,
   G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA,
   G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA,
   G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA,
@@ -2290,7 +2290,7 @@ static const guchar g_script_easy_table[8192] = {
   G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED,
   G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED,
   G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED,
-  G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
+  G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
   G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN,
@@ -2774,7 +2774,7 @@ static const struct {
  { 0x2800,   256, G_UNICODE_SCRIPT_BRAILLE },
  { 0x2900,   628, G_UNICODE_SCRIPT_COMMON },
  { 0x2b76,    32, G_UNICODE_SCRIPT_COMMON },
- { 0x2b98,   104, G_UNICODE_SCRIPT_COMMON },
+ { 0x2b97,   105, G_UNICODE_SCRIPT_COMMON },
  { 0x2c00,    47, G_UNICODE_SCRIPT_GLAGOLITIC },
  { 0x2c30,    47, G_UNICODE_SCRIPT_GLAGOLITIC },
  { 0x2c60,    32, G_UNICODE_SCRIPT_LATIN },
@@ -2796,7 +2796,7 @@ static const struct {
  { 0x2dd0,     7, G_UNICODE_SCRIPT_ETHIOPIC },
  { 0x2dd8,     7, G_UNICODE_SCRIPT_ETHIOPIC },
  { 0x2de0,    32, G_UNICODE_SCRIPT_CYRILLIC },
- { 0x2e00,    80, G_UNICODE_SCRIPT_COMMON },
+ { 0x2e00,    83, G_UNICODE_SCRIPT_COMMON },
  { 0x2e80,    26, G_UNICODE_SCRIPT_HAN },
  { 0x2e9b,    89, G_UNICODE_SCRIPT_HAN },
  { 0x2f00,   214, G_UNICODE_SCRIPT_HAN },
@@ -2823,7 +2823,7 @@ static const struct {
  { 0x3105,    43, G_UNICODE_SCRIPT_BOPOMOFO },
  { 0x3131,    94, G_UNICODE_SCRIPT_HANGUL },
  { 0x3190,    16, G_UNICODE_SCRIPT_COMMON },
- { 0x31a0,    27, G_UNICODE_SCRIPT_BOPOMOFO },
+ { 0x31a0,    32, G_UNICODE_SCRIPT_BOPOMOFO },
  { 0x31c0,    36, G_UNICODE_SCRIPT_COMMON },
  { 0x31f0,    16, G_UNICODE_SCRIPT_KATAKANA },
  { 0x3200,    31, G_UNICODE_SCRIPT_HANGUL },
@@ -2834,9 +2834,9 @@ static const struct {
  { 0x32ff,     1, G_UNICODE_SCRIPT_COMMON },
  { 0x3300,    88, G_UNICODE_SCRIPT_KATAKANA },
  { 0x3358,   168, G_UNICODE_SCRIPT_COMMON },
- { 0x3400,  6582, G_UNICODE_SCRIPT_HAN },
+ { 0x3400,  6592, G_UNICODE_SCRIPT_HAN },
  { 0x4dc0,    64, G_UNICODE_SCRIPT_COMMON },
- { 0x4e00, 20976, G_UNICODE_SCRIPT_HAN },
+ { 0x4e00, 20989, G_UNICODE_SCRIPT_HAN },
  { 0xa000,  1165, G_UNICODE_SCRIPT_YI },
  { 0xa490,    55, G_UNICODE_SCRIPT_YI },
  { 0xa4d0,    48, G_UNICODE_SCRIPT_LISU },
@@ -2847,9 +2847,9 @@ static const struct {
  { 0xa722,   102, G_UNICODE_SCRIPT_LATIN },
  { 0xa788,     3, G_UNICODE_SCRIPT_COMMON },
  { 0xa78b,    53, G_UNICODE_SCRIPT_LATIN },
- { 0xa7c2,     5, G_UNICODE_SCRIPT_LATIN },
- { 0xa7f7,     9, G_UNICODE_SCRIPT_LATIN },
- { 0xa800,    44, G_UNICODE_SCRIPT_SYLOTI_NAGRI },
+ { 0xa7c2,     9, G_UNICODE_SCRIPT_LATIN },
+ { 0xa7f5,    11, G_UNICODE_SCRIPT_LATIN },
+ { 0xa800,    45, G_UNICODE_SCRIPT_SYLOTI_NAGRI },
  { 0xa830,    10, G_UNICODE_SCRIPT_COMMON },
  { 0xa840,    56, G_UNICODE_SCRIPT_PHAGS_PA },
  { 0xa880,    70, G_UNICODE_SCRIPT_SAURASHTRA },
@@ -2883,7 +2883,8 @@ static const struct {
  { 0xab5b,     1, G_UNICODE_SCRIPT_COMMON },
  { 0xab5c,     9, G_UNICODE_SCRIPT_LATIN },
  { 0xab65,     1, G_UNICODE_SCRIPT_GREEK },
- { 0xab66,     2, G_UNICODE_SCRIPT_LATIN },
+ { 0xab66,     4, G_UNICODE_SCRIPT_LATIN },
+ { 0xab6a,     2, G_UNICODE_SCRIPT_COMMON },
  { 0xab70,    80, G_UNICODE_SCRIPT_CHEROKEE },
  { 0xabc0,    46, G_UNICODE_SCRIPT_MEETEI_MAYEK },
  { 0xabf0,    10, G_UNICODE_SCRIPT_MEETEI_MAYEK },
@@ -2944,7 +2945,7 @@ static const struct {
  { 0x10107,    45, G_UNICODE_SCRIPT_COMMON },
  { 0x10137,     9, G_UNICODE_SCRIPT_COMMON },
  { 0x10140,    79, G_UNICODE_SCRIPT_GREEK },
- { 0x10190,    12, G_UNICODE_SCRIPT_COMMON },
+ { 0x10190,    13, G_UNICODE_SCRIPT_COMMON },
  { 0x101a0,     1, G_UNICODE_SCRIPT_GREEK },
  { 0x101d0,    45, G_UNICODE_SCRIPT_COMMON },
  { 0x101fd,     1, G_UNICODE_SCRIPT_INHERITED },
@@ -3022,8 +3023,12 @@ static const struct {
  { 0x10d00,    40, G_UNICODE_SCRIPT_HANIFI_ROHINGYA },
  { 0x10d30,    10, G_UNICODE_SCRIPT_HANIFI_ROHINGYA },
  { 0x10e60,    31, G_UNICODE_SCRIPT_ARABIC },
+ { 0x10e80,    42, G_UNICODE_SCRIPT_YEZIDI },
+ { 0x10eab,     3, G_UNICODE_SCRIPT_YEZIDI },
+ { 0x10eb0,     2, G_UNICODE_SCRIPT_YEZIDI },
  { 0x10f00,    40, G_UNICODE_SCRIPT_OLD_SOGDIAN },
  { 0x10f30,    42, G_UNICODE_SCRIPT_SOGDIAN },
+ { 0x10fb0,    28, G_UNICODE_SCRIPT_CHORASMIAN },
  { 0x10fe0,    23, G_UNICODE_SCRIPT_ELYMAIC },
  { 0x11000,    78, G_UNICODE_SCRIPT_BRAHMI },
  { 0x11052,    30, G_UNICODE_SCRIPT_BRAHMI },
@@ -3033,10 +3038,9 @@ static const struct {
  { 0x110d0,    25, G_UNICODE_SCRIPT_SORA_SOMPENG },
  { 0x110f0,    10, G_UNICODE_SCRIPT_SORA_SOMPENG },
  { 0x11100,    53, G_UNICODE_SCRIPT_CHAKMA },
- { 0x11136,    17, G_UNICODE_SCRIPT_CHAKMA },
+ { 0x11136,    18, G_UNICODE_SCRIPT_CHAKMA },
  { 0x11150,    39, G_UNICODE_SCRIPT_MAHAJANI },
- { 0x11180,    78, G_UNICODE_SCRIPT_SHARADA },
- { 0x111d0,    16, G_UNICODE_SCRIPT_SHARADA },
+ { 0x11180,    96, G_UNICODE_SCRIPT_SHARADA },
  { 0x111e1,    20, G_UNICODE_SCRIPT_SINHALA },
  { 0x11200,    18, G_UNICODE_SCRIPT_KHOJKI },
  { 0x11213,    44, G_UNICODE_SCRIPT_KHOJKI },
@@ -3063,9 +3067,8 @@ static const struct {
  { 0x1135d,     7, G_UNICODE_SCRIPT_GRANTHA },
  { 0x11366,     7, G_UNICODE_SCRIPT_GRANTHA },
  { 0x11370,     5, G_UNICODE_SCRIPT_GRANTHA },
- { 0x11400,    90, G_UNICODE_SCRIPT_NEWA },
- { 0x1145b,     1, G_UNICODE_SCRIPT_NEWA },
- { 0x1145d,     3, G_UNICODE_SCRIPT_NEWA },
+ { 0x11400,    92, G_UNICODE_SCRIPT_NEWA },
+ { 0x1145d,     5, G_UNICODE_SCRIPT_NEWA },
  { 0x11480,    72, G_UNICODE_SCRIPT_TIRHUTA },
  { 0x114d0,    10, G_UNICODE_SCRIPT_TIRHUTA },
  { 0x11580,    54, G_UNICODE_SCRIPT_SIDDHAM },
@@ -3081,6 +3084,14 @@ static const struct {
  { 0x11800,    60, G_UNICODE_SCRIPT_DOGRA },
  { 0x118a0,    83, G_UNICODE_SCRIPT_WARANG_CITI },
  { 0x118ff,     1, G_UNICODE_SCRIPT_WARANG_CITI },
+ { 0x11900,     7, G_UNICODE_SCRIPT_DIVES_AKURU },
+ { 0x11909,     1, G_UNICODE_SCRIPT_DIVES_AKURU },
+ { 0x1190c,     8, G_UNICODE_SCRIPT_DIVES_AKURU },
+ { 0x11915,     2, G_UNICODE_SCRIPT_DIVES_AKURU },
+ { 0x11918,    30, G_UNICODE_SCRIPT_DIVES_AKURU },
+ { 0x11937,     2, G_UNICODE_SCRIPT_DIVES_AKURU },
+ { 0x1193b,    12, G_UNICODE_SCRIPT_DIVES_AKURU },
+ { 0x11950,    10, G_UNICODE_SCRIPT_DIVES_AKURU },
  { 0x119a0,     8, G_UNICODE_SCRIPT_NANDINAGARI },
  { 0x119aa,    46, G_UNICODE_SCRIPT_NANDINAGARI },
  { 0x119da,    11, G_UNICODE_SCRIPT_NANDINAGARI },
@@ -3108,6 +3119,7 @@ static const struct {
  { 0x11d93,     6, G_UNICODE_SCRIPT_GUNJALA_GONDI },
  { 0x11da0,    10, G_UNICODE_SCRIPT_GUNJALA_GONDI },
  { 0x11ee0,    25, G_UNICODE_SCRIPT_MAKASAR },
+ { 0x11fb0,     1, G_UNICODE_SCRIPT_LISU },
  { 0x11fc0,    50, G_UNICODE_SCRIPT_TAMIL },
  { 0x11fff,     1, G_UNICODE_SCRIPT_TAMIL },
  { 0x12000,   922, G_UNICODE_SCRIPT_CUNEIFORM },
@@ -3135,8 +3147,12 @@ static const struct {
  { 0x16fe0,     1, G_UNICODE_SCRIPT_TANGUT },
  { 0x16fe1,     1, G_UNICODE_SCRIPT_NUSHU },
  { 0x16fe2,     2, G_UNICODE_SCRIPT_COMMON },
+ { 0x16fe4,     1, G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT },
+ { 0x16ff0,     2, G_UNICODE_SCRIPT_HAN },
  { 0x17000,  6136, G_UNICODE_SCRIPT_TANGUT },
- { 0x18800,   755, G_UNICODE_SCRIPT_TANGUT },
+ { 0x18800,   768, G_UNICODE_SCRIPT_TANGUT },
+ { 0x18b00,   470, G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT },
+ { 0x18d00,     9, G_UNICODE_SCRIPT_TANGUT },
  { 0x1b000,     1, G_UNICODE_SCRIPT_KATAKANA },
  { 0x1b001,   286, G_UNICODE_SCRIPT_HIRAGANA },
  { 0x1b150,     3, G_UNICODE_SCRIPT_HIRAGANA },
@@ -3245,9 +3261,7 @@ static const struct {
  { 0x1f0b1,    15, G_UNICODE_SCRIPT_COMMON },
  { 0x1f0c1,    15, G_UNICODE_SCRIPT_COMMON },
  { 0x1f0d1,    37, G_UNICODE_SCRIPT_COMMON },
- { 0x1f100,    13, G_UNICODE_SCRIPT_COMMON },
- { 0x1f110,    93, G_UNICODE_SCRIPT_COMMON },
- { 0x1f170,    61, G_UNICODE_SCRIPT_COMMON },
+ { 0x1f100,   174, G_UNICODE_SCRIPT_COMMON },
  { 0x1f1e6,    26, G_UNICODE_SCRIPT_COMMON },
  { 0x1f200,     1, G_UNICODE_SCRIPT_HIRAGANA },
  { 0x1f201,     2, G_UNICODE_SCRIPT_COMMON },
@@ -3255,9 +3269,9 @@ static const struct {
  { 0x1f240,     9, G_UNICODE_SCRIPT_COMMON },
  { 0x1f250,     2, G_UNICODE_SCRIPT_COMMON },
  { 0x1f260,     6, G_UNICODE_SCRIPT_COMMON },
- { 0x1f300,   982, G_UNICODE_SCRIPT_COMMON },
+ { 0x1f300,   984, G_UNICODE_SCRIPT_COMMON },
  { 0x1f6e0,    13, G_UNICODE_SCRIPT_COMMON },
- { 0x1f6f0,    11, G_UNICODE_SCRIPT_COMMON },
+ { 0x1f6f0,    13, G_UNICODE_SCRIPT_COMMON },
  { 0x1f700,   116, G_UNICODE_SCRIPT_COMMON },
  { 0x1f780,    89, G_UNICODE_SCRIPT_COMMON },
  { 0x1f7e0,    12, G_UNICODE_SCRIPT_COMMON },
@@ -3266,24 +3280,28 @@ static const struct {
  { 0x1f850,    10, G_UNICODE_SCRIPT_COMMON },
  { 0x1f860,    40, G_UNICODE_SCRIPT_COMMON },
  { 0x1f890,    30, G_UNICODE_SCRIPT_COMMON },
- { 0x1f900,    12, G_UNICODE_SCRIPT_COMMON },
- { 0x1f90d,   101, G_UNICODE_SCRIPT_COMMON },
- { 0x1f973,     4, G_UNICODE_SCRIPT_COMMON },
- { 0x1f97a,    41, G_UNICODE_SCRIPT_COMMON },
- { 0x1f9a5,     6, G_UNICODE_SCRIPT_COMMON },
- { 0x1f9ae,    29, G_UNICODE_SCRIPT_COMMON },
+ { 0x1f8b0,     2, G_UNICODE_SCRIPT_COMMON },
+ { 0x1f900,   121, G_UNICODE_SCRIPT_COMMON },
+ { 0x1f97a,    82, G_UNICODE_SCRIPT_COMMON },
  { 0x1f9cd,   135, G_UNICODE_SCRIPT_COMMON },
  { 0x1fa60,    14, G_UNICODE_SCRIPT_COMMON },
- { 0x1fa70,     4, G_UNICODE_SCRIPT_COMMON },
+ { 0x1fa70,     5, G_UNICODE_SCRIPT_COMMON },
  { 0x1fa78,     3, G_UNICODE_SCRIPT_COMMON },
- { 0x1fa80,     3, G_UNICODE_SCRIPT_COMMON },
- { 0x1fa90,     6, G_UNICODE_SCRIPT_COMMON },
- { 0x20000, 42711, G_UNICODE_SCRIPT_HAN },
+ { 0x1fa80,     7, G_UNICODE_SCRIPT_COMMON },
+ { 0x1fa90,    25, G_UNICODE_SCRIPT_COMMON },
+ { 0x1fab0,     7, G_UNICODE_SCRIPT_COMMON },
+ { 0x1fac0,     3, G_UNICODE_SCRIPT_COMMON },
+ { 0x1fad0,     7, G_UNICODE_SCRIPT_COMMON },
+ { 0x1fb00,   147, G_UNICODE_SCRIPT_COMMON },
+ { 0x1fb94,    55, G_UNICODE_SCRIPT_COMMON },
+ { 0x1fbf0,    10, G_UNICODE_SCRIPT_COMMON },
+ { 0x20000, 42718, G_UNICODE_SCRIPT_HAN },
  { 0x2a700,  4149, G_UNICODE_SCRIPT_HAN },
  { 0x2b740,   222, G_UNICODE_SCRIPT_HAN },
  { 0x2b820,  5762, G_UNICODE_SCRIPT_HAN },
  { 0x2ceb0,  7473, G_UNICODE_SCRIPT_HAN },
  { 0x2f800,   542, G_UNICODE_SCRIPT_HAN },
+ { 0x30000,  4939, G_UNICODE_SCRIPT_HAN },
  { 0xe0001,     1, G_UNICODE_SCRIPT_COMMON },
  { 0xe0020,    96, G_UNICODE_SCRIPT_COMMON },
  { 0xe0100,   240, G_UNICODE_SCRIPT_INHERITED },
index 0c6dc85..afdc046 100644 (file)
@@ -523,7 +523,7 @@ tokenize_command_line (const gchar *command_line,
               ensure_token (&current_token);
               g_string_append_c (current_token, *p);
 
-              /* FALL THRU */
+              G_GNUC_FALLTHROUGH;
             case '\\':
               current_quote = *p;
               break;
index 4c758c3..a868609 100644 (file)
  * - the thread magazines. for each (aligned) chunk size, a magazine (a list)
  *   of recently freed and soon to be allocated chunks is maintained per thread.
  *   this way, most alloc/free requests can be quickly satisfied from per-thread
- *   free lists which only require one g_private_get() call to retrive the
+ *   free lists which only require one g_private_get() call to retrieve the
  *   thread handle.
  * - the magazine cache. allocating and freeing chunks to/from threads only
- *   occours at magazine sizes from a global depot of magazines. the depot
+ *   occurs at magazine sizes from a global depot of magazines. the depot
  *   maintaines a 15 second working set of allocated magazines, so full
  *   magazines are not allocated and released too often.
  *   the chunk size dependent magazine sizes automatically adapt (within limits,
@@ -291,7 +291,7 @@ static SliceConfig slice_config = {
 };
 static GMutex      smc_tree_mutex; /* mutex for G_SLICE=debug-blocks */
 
-/* --- auxiliary funcitons --- */
+/* --- auxiliary functions --- */
 void
 g_slice_set_config (GSliceConfig ckey,
                     gint64       value)
@@ -310,6 +310,7 @@ g_slice_set_config (GSliceConfig ckey,
       break;
     case G_SLICE_CONFIG_COLOR_INCREMENT:
       slice_config.color_increment = value;
+      break;
     default: ;
     }
 }
index 293d6c0..efc2e49 100644 (file)
@@ -98,7 +98,7 @@ protect_wargv (gint       argc,
        {
          if (*p == ' ' || *p == '\t')
            need_dblquotes = TRUE;
-         /* estimate max len, assuming that all escapable chracters will be escaped */
+         /* estimate max len, assuming that all escapable characters will be escaped */
          if (*p == '"' || *p == '\\')
            len += 2;
          else
@@ -112,7 +112,7 @@ protect_wargv (gint       argc,
       if (need_dblquotes)
        *q++ = '"';
 
-      /* Only quotes and backslashes preceeding quotes are escaped:
+      /* Only quotes and backslashes preceding quotes are escaped:
        * see "Parsing C Command-Line Arguments" at
        * https://docs.microsoft.com/en-us/cpp/c-language/parsing-c-command-line-arguments
        */
@@ -122,12 +122,12 @@ protect_wargv (gint       argc,
            {
              /* Add backslash for escaping quote itself */
              *q++ = '\\';
-             /* Add backslash for every preceeding backslash for escaping it */
+             /* Add backslash for every preceding backslash for escaping it */
              for (;pre_bslash > 0; --pre_bslash)
                *q++ = '\\';
            }
 
-         /* Count length of continuous sequence of preceeding backslashes. */
+         /* Count length of continuous sequence of preceding backslashes. */
          if (*p == '\\')
            ++pre_bslash;
          else
@@ -139,7 +139,7 @@ protect_wargv (gint       argc,
 
       if (need_dblquotes)
        {
-         /* Add backslash for every preceeding backslash for escaping it,
+         /* Add backslash for every preceding backslash for escaping it,
           * do NOT escape quote itself.
           */
          for (;pre_bslash > 0; --pre_bslash)
index c1b024c..f7559f8 100644 (file)
@@ -138,7 +138,7 @@ protect_argv_string (const gchar *string)
     {
       if (*p == ' ' || *p == '\t')
        need_dblquotes = TRUE;
-      /* estimate max len, assuming that all escapable chracters will be escaped */
+      /* estimate max len, assuming that all escapable characters will be escaped */
       if (*p == '"' || *p == '\\')
        len += 2;
       else
@@ -151,7 +151,7 @@ protect_argv_string (const gchar *string)
 
   if (need_dblquotes)
     *q++ = '"';
-  /* Only quotes and backslashes preceeding quotes are escaped:
+  /* Only quotes and backslashes preceding quotes are escaped:
    * see "Parsing C Command-Line Arguments" at
    * https://docs.microsoft.com/en-us/cpp/c-language/parsing-c-command-line-arguments
    */
@@ -161,12 +161,12 @@ protect_argv_string (const gchar *string)
        {
          /* Add backslash for escaping quote itself */
          *q++ = '\\';
-         /* Add backslash for every preceeding backslash for escaping it */
+         /* Add backslash for every preceding backslash for escaping it */
          for (;pre_bslash > 0; --pre_bslash)
            *q++ = '\\';
        }
 
-      /* Count length of continuous sequence of preceeding backslashes. */
+      /* Count length of continuous sequence of preceding backslashes. */
       if (*p == '\\')
        ++pre_bslash;
       else
@@ -178,7 +178,7 @@ protect_argv_string (const gchar *string)
   
   if (need_dblquotes)
     {
-      /* Add backslash for every preceeding backslash for escaping it,
+      /* Add backslash for every preceding backslash for escaping it,
        * do NOT escape quote itself.
        */
       for (;pre_bslash > 0; --pre_bslash)
index e8141ad..6832ae0 100644 (file)
@@ -155,16 +155,12 @@ extern char **environ;
  */
 
 
-static gint safe_close (gint fd);
 
 static gint g_execute (const gchar  *file,
-                       gchar       **argv,
-                       gchar       **argv_buffer,
-                       gsize         argv_buffer_len,
-                       gchar       **envp,
-                       const gchar  *search_path,
-                       gchar        *search_path_buffer,
-                       gsize         search_path_buffer_len);
+                       gchar **argv,
+                       gchar **envp,
+                       gboolean search_path,
+                       gboolean search_path_from_envp);
 
 static gboolean fork_exec_with_pipes (gboolean              intermediate_child,
                                       const gchar          *working_directory,
@@ -266,9 +262,6 @@ g_spawn_async (const gchar          *working_directory,
 /* Avoids a danger in threaded situations (calling close()
  * on a file descriptor twice, and another thread has
  * re-opened it since the first close)
- *
- * This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)).
  */
 static void
 close_and_invalidate (gint *fd)
@@ -277,7 +270,7 @@ close_and_invalidate (gint *fd)
     return;
   else
     {
-      safe_close (*fd);
+      (void) g_close (*fd, NULL);
       *fd = -1;
     }
 }
@@ -1088,8 +1081,6 @@ g_spawn_check_exit_status (gint      exit_status,
   return ret;
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 static gssize
 write_all (gint fd, gconstpointer vbuf, gsize to_write)
 {
@@ -1113,8 +1104,6 @@ write_all (gint fd, gconstpointer vbuf, gsize to_write)
   return TRUE;
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 G_GNUC_NORETURN
 static void
 write_err_and_exit (gint fd, gint msg)
@@ -1127,8 +1116,6 @@ write_err_and_exit (gint fd, gint msg)
   _exit (1);
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 static int
 set_cloexec (void *data, gint fd)
 {
@@ -1138,10 +1125,8 @@ set_cloexec (void *data, gint fd)
   return 0;
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 static gint
-safe_close (gint fd)
+sane_close (gint fd)
 {
   gint ret;
 
@@ -1152,13 +1137,11 @@ safe_close (gint fd)
   return ret;
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 G_GNUC_UNUSED static int
 close_func (void *data, int fd)
 {
   if (fd >= GPOINTER_TO_INT (data))
-    (void) safe_close (fd);
+    (void) sane_close (fd);
 
   return 0;
 }
@@ -1173,8 +1156,6 @@ struct linux_dirent64
   char           d_name[]; /* Filename (null-terminated) */
 };
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 static gint
 filename_to_fd (const char *p)
 {
@@ -1188,7 +1169,7 @@ filename_to_fd (const char *p)
 
   while ((c = *p++) != '\0')
     {
-      if (c < '0' || c > '9')
+      if (!g_ascii_isdigit (c))
         return -1;
       c -= '0';
 
@@ -1203,8 +1184,6 @@ filename_to_fd (const char *p)
 }
 #endif
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 static int
 safe_fdwalk (int (*cb)(void *data, int fd), void *data)
 {
@@ -1221,11 +1200,11 @@ safe_fdwalk (int (*cb)(void *data, int fd), void *data)
    * may be slow on non-Linux operating systems, especially on systems allowing
    * very high number of open file descriptors.
    */
-  gint open_max = -1;
+  gint open_max;
   gint fd;
   gint res = 0;
   
-#if 0 && defined(HAVE_SYS_RESOURCE_H)
+#ifdef HAVE_SYS_RESOURCE_H
   struct rlimit rl;
 #endif
 
@@ -1253,41 +1232,22 @@ safe_fdwalk (int (*cb)(void *data, int fd), void *data)
             }
         }
 
-      safe_close (dir_fd);
+      sane_close (dir_fd);
       return res;
     }
 
   /* If /proc is not mounted or not accessible we fall back to the old
-   * rlimit trick. */
+   * rlimit trick */
 
 #endif
 
-#if 0 && defined(HAVE_SYS_RESOURCE_H)
-  /* Use getrlimit() function provided by the system if it is known to be
-   * async-signal safe.
-   *
-   * Currently there are no operating systems known to provide a safe
-   * implementation, so this section is not used for now.
-   */
-  if (getrlimit (RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY)
-    open_max = rl.rlim_max;
-#endif
-#if defined(__FreeBSD__) || defined(__OpenBSD__)
-  /* Use sysconf() function provided by the system if it is known to be
-   * async-signal safe.
-   *
-   * FreeBSD: sysconf() is included in the list of async-signal safe functions
-   * found in https://man.freebsd.org/sigaction(2).
-   *
-   * OpenBSD: sysconf() is included in the list of async-signal safe functions
-   * found in https://man.openbsd.org/sigaction.2.
-   */
-  if (open_max < 0)
-    open_max = sysconf (_SC_OPEN_MAX);
+#ifdef HAVE_SYS_RESOURCE_H
+      
+  if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY)
+      open_max = rl.rlim_max;
+  else
 #endif
-  /* Hardcoded fallback: the default process hard limit in Linux as of 2020 */
-  if (open_max < 0)
-    open_max = 4096;
+      open_max = sysconf (_SC_OPEN_MAX);
 
   for (fd = 0; fd < open_max; fd++)
       if ((res = cb (data, fd)) != 0)
@@ -1297,8 +1257,6 @@ safe_fdwalk (int (*cb)(void *data, int fd), void *data)
 #endif
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 static void
 safe_closefrom (int lowfd)
 {
@@ -1331,10 +1289,8 @@ safe_closefrom (int lowfd)
 #endif
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 static gint
-safe_dup2 (gint fd1, gint fd2)
+sane_dup2 (gint fd1, gint fd2)
 {
   gint ret;
 
@@ -1345,10 +1301,8 @@ safe_dup2 (gint fd1, gint fd2)
   return ret;
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 static gint
-safe_open (const char *path, gint mode)
+sane_open (const char *path, gint mode)
 {
   gint ret;
 
@@ -1367,8 +1321,6 @@ enum
   CHILD_FORK_FAILED
 };
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)) until it calls exec(). */
 static void
 do_exec (gint                  child_err_report_fd,
          gint                  stdin_fd,
@@ -1376,13 +1328,10 @@ do_exec (gint                  child_err_report_fd,
          gint                  stderr_fd,
          const gchar          *working_directory,
          gchar               **argv,
-         gchar               **argv_buffer,
-         gsize                 argv_buffer_len,
          gchar               **envp,
          gboolean              close_descriptors,
-         const gchar          *search_path,
-         gchar                *search_path_buffer,
-         gsize                 search_path_buffer_len,
+         gboolean              search_path,
+         gboolean              search_path_from_envp,
          gboolean              stdout_to_null,
          gboolean              stderr_to_null,
          gboolean              child_inherits_stdin,
@@ -1400,7 +1349,7 @@ do_exec (gint                  child_err_report_fd,
     {
       /* dup2 can't actually fail here I don't think */
           
-      if (safe_dup2 (stdin_fd, 0) < 0)
+      if (sane_dup2 (stdin_fd, 0) < 0)
         write_err_and_exit (child_err_report_fd,
                             CHILD_DUP2_FAILED);
 
@@ -1409,11 +1358,9 @@ do_exec (gint                  child_err_report_fd,
   else if (!child_inherits_stdin)
     {
       /* Keep process from blocking on a read of stdin */
-      gint read_null = safe_open ("/dev/null", O_RDONLY);
-      if (read_null < 0)
-        write_err_and_exit (child_err_report_fd,
-                            CHILD_DUP2_FAILED);
-      safe_dup2 (read_null, 0);
+      gint read_null = sane_open ("/dev/null", O_RDONLY);
+      g_assert (read_null != -1);
+      sane_dup2 (read_null, 0);
       close_and_invalidate (&read_null);
     }
 
@@ -1421,7 +1368,7 @@ do_exec (gint                  child_err_report_fd,
     {
       /* dup2 can't actually fail here I don't think */
           
-      if (safe_dup2 (stdout_fd, 1) < 0)
+      if (sane_dup2 (stdout_fd, 1) < 0)
         write_err_and_exit (child_err_report_fd,
                             CHILD_DUP2_FAILED);
 
@@ -1429,11 +1376,9 @@ do_exec (gint                  child_err_report_fd,
     }
   else if (stdout_to_null)
     {
-      gint write_null = safe_open ("/dev/null", O_WRONLY);
-      if (write_null < 0)
-        write_err_and_exit (child_err_report_fd,
-                            CHILD_DUP2_FAILED);
-      safe_dup2 (write_null, 1);
+      gint write_null = sane_open ("/dev/null", O_WRONLY);
+      g_assert (write_null != -1);
+      sane_dup2 (write_null, 1);
       close_and_invalidate (&write_null);
     }
 
@@ -1441,7 +1386,7 @@ do_exec (gint                  child_err_report_fd,
     {
       /* dup2 can't actually fail here I don't think */
           
-      if (safe_dup2 (stderr_fd, 2) < 0)
+      if (sane_dup2 (stderr_fd, 2) < 0)
         write_err_and_exit (child_err_report_fd,
                             CHILD_DUP2_FAILED);
 
@@ -1449,8 +1394,8 @@ do_exec (gint                  child_err_report_fd,
     }
   else if (stderr_to_null)
     {
-      gint write_null = safe_open ("/dev/null", O_WRONLY);
-      safe_dup2 (write_null, 2);
+      gint write_null = sane_open ("/dev/null", O_WRONLY);
+      sane_dup2 (write_null, 2);
       close_and_invalidate (&write_null);
     }
 
@@ -1463,7 +1408,7 @@ do_exec (gint                  child_err_report_fd,
     {
       if (child_setup == NULL)
         {
-          safe_dup2 (child_err_report_fd, 3);
+          sane_dup2 (child_err_report_fd, 3);
           set_cloexec (GINT_TO_POINTER (0), 3);
           safe_closefrom (4);
           child_err_report_fd = 3;
@@ -1487,8 +1432,7 @@ do_exec (gint                  child_err_report_fd,
 
   g_execute (argv[0],
              file_and_argv_zero ? argv + 1 : argv,
-             argv_buffer, argv_buffer_len,
-             envp, search_path, search_path_buffer, search_path_buffer_len);
+             envp, search_path, search_path_from_envp);
 
   /* Exec failed */
   write_err_and_exit (child_err_report_fd,
@@ -1621,7 +1565,7 @@ do_posix_spawn (gchar     **argv,
   else if (!child_inherits_stdin)
     {
       /* Keep process from blocking on a read of stdin */
-      gint read_null = safe_open ("/dev/null", O_RDONLY | O_CLOEXEC);
+      gint read_null = sane_open ("/dev/null", O_RDONLY | O_CLOEXEC);
       g_assert (read_null != -1);
       parent_close_fds[num_parent_close_fds++] = read_null;
 
@@ -1645,7 +1589,7 @@ do_posix_spawn (gchar     **argv,
     }
   else if (stdout_to_null)
     {
-      gint write_null = safe_open ("/dev/null", O_WRONLY | O_CLOEXEC);
+      gint write_null = sane_open ("/dev/null", O_WRONLY | O_CLOEXEC);
       g_assert (write_null != -1);
       parent_close_fds[num_parent_close_fds++] = write_null;
 
@@ -1669,7 +1613,7 @@ do_posix_spawn (gchar     **argv,
     }
   else if (stderr_to_null)
     {
-      gint write_null = safe_open ("/dev/null", O_WRONLY | O_CLOEXEC);
+      gint write_null = sane_open ("/dev/null", O_WRONLY | O_CLOEXEC);
       g_assert (write_null != -1);
       parent_close_fds[num_parent_close_fds++] = write_null;
 
@@ -1750,11 +1694,6 @@ fork_exec_with_fds (gboolean              intermediate_child,
   gint child_pid_report_pipe[2] = { -1, -1 };
   guint pipe_flags = cloexec_pipes ? FD_CLOEXEC : 0;
   gint status;
-  const gchar *chosen_search_path;
-  gchar *search_path_buffer = NULL;
-  gsize search_path_buffer_len = 0;
-  gchar **argv_buffer = NULL;
-  gsize argv_buffer_len = 0;
 
 #ifdef POSIX_SPAWN_AVAILABLE
   if (!intermediate_child && working_directory == NULL && !close_descriptors &&
@@ -1805,50 +1744,8 @@ fork_exec_with_fds (gboolean              intermediate_child,
     }
 #endif /* POSIX_SPAWN_AVAILABLE */
 
-  /* Choose a search path. This has to be done before calling fork()
-   * as getenv() isn’t async-signal-safe (see `man 7 signal-safety`). */
-  chosen_search_path = NULL;
-  if (search_path_from_envp)
-    chosen_search_path = g_environ_getenv (envp, "PATH");
-  if (search_path && chosen_search_path == NULL)
-    chosen_search_path = g_getenv ("PATH");
-
-  if (chosen_search_path == NULL)
-    {
-      /* There is no 'PATH' in the environment.  The default
-       * * search path in libc is the current directory followed by
-       * * the path 'confstr' returns for '_CS_PATH'.
-       * */
-
-      /* In GLib we put . last, for security, and don't use the
-       * * unportable confstr(); UNIX98 does not actually specify
-       * * what to search if PATH is unset. POSIX may, dunno.
-       * */
-
-      chosen_search_path = "/bin:/usr/bin:.";
-    }
-
-  /* Allocate a buffer which the fork()ed child can use to assemble potential
-   * paths for the binary to exec(), combining the argv[0] and elements from
-   * the chosen_search_path. This can’t be done in the child because malloc()
-   * (or alloca()) are not async-signal-safe (see `man 7 signal-safety`).
-   *
-   * Add 2 for the nul terminator and a leading `/`. */
-  search_path_buffer_len = strlen (chosen_search_path) + strlen (argv[0]) + 2;
-  search_path_buffer = g_malloc (search_path_buffer_len);
-
-  /* And allocate a buffer which is 2 elements longer than @argv, so that if
-   * script_execute() has to be called later on, it can build a wrapper argv
-   * array in this buffer. */
-  argv_buffer_len = g_strv_length (argv) + 2;
-  argv_buffer = g_new (gchar *, argv_buffer_len);
-
   if (!g_unix_open_pipe (child_err_report_pipe, pipe_flags, error))
-    {
-      g_free (search_path_buffer);
-      g_free (argv_buffer);
-      return FALSE;
-    }
+    return FALSE;
 
   if (intermediate_child && !g_unix_open_pipe (child_pid_report_pipe, pipe_flags, error))
     goto cleanup_and_fail;
@@ -1926,13 +1823,10 @@ fork_exec_with_fds (gboolean              intermediate_child,
                        stderr_fd,
                        working_directory,
                        argv,
-                       argv_buffer,
-                       argv_buffer_len,
                        envp,
                        close_descriptors,
-                       chosen_search_path,
-                       search_path_buffer,
-                       search_path_buffer_len,
+                       search_path,
+                       search_path_from_envp,
                        stdout_to_null,
                        stderr_to_null,
                        child_inherits_stdin,
@@ -1959,13 +1853,10 @@ fork_exec_with_fds (gboolean              intermediate_child,
                    stderr_fd,
                    working_directory,
                    argv,
-                   argv_buffer,
-                   argv_buffer_len,
                    envp,
                    close_descriptors,
-                   chosen_search_path,
-                   search_path_buffer,
-                   search_path_buffer_len,
+                   search_path,
+                   search_path_from_envp,
                    stdout_to_null,
                    stderr_to_null,
                    child_inherits_stdin,
@@ -2092,10 +1983,7 @@ fork_exec_with_fds (gboolean              intermediate_child,
       /* Success against all odds! return the information */
       close_and_invalidate (&child_err_report_pipe[0]);
       close_and_invalidate (&child_pid_report_pipe[0]);
-
-      g_free (search_path_buffer);
-      g_free (argv_buffer);
-
       if (child_pid)
         *child_pid = pid;
 
@@ -2128,9 +2016,6 @@ fork_exec_with_fds (gboolean              intermediate_child,
   close_and_invalidate (&child_pid_report_pipe[0]);
   close_and_invalidate (&child_pid_report_pipe[1]);
 
-  g_free (search_path_buffer);
-  g_free (argv_buffer);
-
   return FALSE;
 }
 
@@ -2228,43 +2113,40 @@ cleanup_and_fail:
 
 /* Based on execvp from GNU C Library */
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)) until it calls exec(). */
-static gboolean
+static void
 script_execute (const gchar *file,
                 gchar      **argv,
-                gchar      **argv_buffer,
-                gsize        argv_buffer_len,
                 gchar      **envp)
 {
   /* Count the arguments.  */
   int argc = 0;
   while (argv[argc])
     ++argc;
-
-  /* Construct an argument list for the shell. */
-  if (argc + 2 > argv_buffer_len)
-    return FALSE;
-
-  argv_buffer[0] = (char *) "/bin/sh";
-  argv_buffer[1] = (char *) file;
-  while (argc > 0)
-    {
-      argv_buffer[argc + 1] = argv[argc];
-      --argc;
-    }
-
-  /* Execute the shell. */
-  if (envp)
-    execve (argv_buffer[0], argv_buffer, envp);
-  else
-    execv (argv_buffer[0], argv_buffer);
-
-  return TRUE;
+  
+  /* Construct an argument list for the shell.  */
+  {
+    gchar **new_argv;
+
+    new_argv = g_new0 (gchar*, argc + 2); /* /bin/sh and NULL */
+    
+    new_argv[0] = (char *) "/bin/sh";
+    new_argv[1] = (char *) file;
+    while (argc > 0)
+      {
+       new_argv[argc + 1] = argv[argc];
+       --argc;
+      }
+
+    /* Execute the shell. */
+    if (envp)
+      execve (new_argv[0], new_argv, envp);
+    else
+      execv (new_argv[0], new_argv);
+    
+    g_free (new_argv);
+  }
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
 static gchar*
 my_strchrnul (const gchar *str, gchar c)
 {
@@ -2275,17 +2157,12 @@ my_strchrnul (const gchar *str, gchar c)
   return p;
 }
 
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)) until it calls exec(). */
 static gint
-g_execute (const gchar  *file,
-           gchar       **argv,
-           gchar       **argv_buffer,
-           gsize         argv_buffer_len,
-           gchar       **envp,
-           const gchar  *search_path,
-           gchar        *search_path_buffer,
-           gsize         search_path_buffer_len)
+g_execute (const gchar *file,
+           gchar      **argv,
+           gchar      **envp,
+           gboolean     search_path,
+           gboolean     search_path_from_envp)
 {
   if (*file == '\0')
     {
@@ -2294,7 +2171,7 @@ g_execute (const gchar  *file,
       return -1;
     }
 
-  if (search_path == NULL || strchr (file, '/') != NULL)
+  if (!(search_path || search_path_from_envp) || strchr (file, '/') != NULL)
     {
       /* Don't search when it contains a slash. */
       if (envp)
@@ -2302,32 +2179,42 @@ g_execute (const gchar  *file,
       else
         execv (file, argv);
       
-      if (errno == ENOEXEC &&
-          !script_execute (file, argv, argv_buffer, argv_buffer_len, envp))
-        {
-          errno = ENOMEM;
-          return -1;
-        }
+      if (errno == ENOEXEC)
+       script_execute (file, argv, envp);
     }
   else
     {
       gboolean got_eacces = 0;
       const gchar *path, *p;
-      gchar *name;
+      gchar *name, *freeme;
       gsize len;
       gsize pathlen;
 
-      path = search_path;
-      len = strlen (file) + 1;
-      pathlen = strlen (path);
-      name = search_path_buffer;
+      path = NULL;
+      if (search_path_from_envp)
+        path = g_environ_getenv (envp, "PATH");
+      if (search_path && path == NULL)
+        path = g_getenv ("PATH");
 
-      if (search_path_buffer_len < pathlen + len + 1)
-        {
-          errno = ENOMEM;
-          return -1;
-        }
+      if (path == NULL)
+       {
+         /* There is no 'PATH' in the environment.  The default
+          * search path in libc is the current directory followed by
+          * the path 'confstr' returns for '_CS_PATH'.
+           */
 
+          /* In GLib we put . last, for security, and don't use the
+           * unportable confstr(); UNIX98 does not actually specify
+           * what to search if PATH is unset. POSIX may, dunno.
+           */
+          
+          path = "/bin:/usr/bin:.";
+       }
+
+      len = strlen (file) + 1;
+      pathlen = strlen (path);
+      freeme = name = g_malloc (pathlen + len + 1);
+      
       /* Copy the file name at the top, including '\0'  */
       memcpy (name + pathlen + 1, file, len);
       name = name + pathlen;
@@ -2356,12 +2243,8 @@ g_execute (const gchar  *file,
           else
             execv (startp, argv);
           
-          if (errno == ENOEXEC &&
-              !script_execute (startp, argv, argv_buffer, argv_buffer_len, envp))
-            {
-              errno = ENOMEM;
-              return -1;
-            }
+         if (errno == ENOEXEC)
+           script_execute (startp, argv, envp);
 
          switch (errno)
            {
@@ -2372,8 +2255,7 @@ g_execute (const gchar  *file,
                */
              got_eacces = TRUE;
 
-              /* FALL THRU */
-              
+              G_GNUC_FALLTHROUGH;
            case ENOENT:
 #ifdef ESTALE
            case ESTALE:
@@ -2400,6 +2282,7 @@ g_execute (const gchar  *file,
                * something went wrong executing it; return the error to our
                * caller.
                */
+              g_free (freeme);
              return -1;
            }
        }
@@ -2411,6 +2294,8 @@ g_execute (const gchar  *file,
          * error.
          */
         errno = EACCES;
+
+      g_free (freeme);
     }
 
   /* Return the error from the last attempt (probably ENOENT).  */
index 240aae7..f91453a 100644 (file)
@@ -157,7 +157,7 @@ typedef void (* GSpawnChildSetupFunc) (gpointer user_data);
  *     execute, while the remaining elements are the actual argument vector
  *     to pass to the file. Normally g_spawn_async_with_pipes() uses `argv[0]`
  *     as the file to execute, and passes all of `argv` to the child.
- * @G_SPAWN_SEARCH_PATH_FROM_ENVP: if `argv[0]` is not an abolute path,
+ * @G_SPAWN_SEARCH_PATH_FROM_ENVP: if `argv[0]` is not an absolute path,
  *     it will be looked for in the `PATH` from the passed child environment.
  *     Since: 2.34
  * @G_SPAWN_CLOEXEC_PIPES: create all pipes with the `O_CLOEXEC` flag set.
index d950d2d..88d0306 100644 (file)
@@ -166,9 +166,13 @@ _g_win32_fix_mode (wchar_t *mode)
  * UT = (FT - 116444736000000000) / 10000000.
  * Converts FILETIME to unix epoch time in form
  * of a signed 64-bit integer (can be negative).
+ *
+ * The function that does the reverse can be found in
+ * gio/glocalfileinfo.c.
  */
 static gint64
-_g_win32_filetime_to_unix_time (FILETIME *ft)
+_g_win32_filetime_to_unix_time (const FILETIME *ft,
+                                gint32         *nsec)
 {
   gint64 result;
   /* 1 unit of FILETIME is 100ns */
@@ -179,7 +183,12 @@ _g_win32_filetime_to_unix_time (FILETIME *ft)
   const gint64 filetime_unix_epoch_offset = 116444736000000000;
 
   result = ((gint64) ft->dwLowDateTime) | (((gint64) ft->dwHighDateTime) << 32);
-  return (result - filetime_unix_epoch_offset) / hundreds_of_usec_per_sec;
+  result -= filetime_unix_epoch_offset;
+
+  if (nsec)
+    *nsec = (result % hundreds_of_usec_per_sec) * 100;
+
+  return result / hundreds_of_usec_per_sec;
 }
 
 #  ifdef _MSC_VER
@@ -206,10 +215,10 @@ _g_win32_filetime_to_unix_time (FILETIME *ft)
  * Tries to reproduce the behaviour and quirks of MS C runtime stat().
  */
 static int
-_g_win32_fill_statbuf_from_handle_info (const wchar_t              *filename,
-                                        const wchar_t              *filename_target,
-                                        BY_HANDLE_FILE_INFORMATION *handle_info,
-                                        struct __stat64            *statbuf)
+_g_win32_fill_statbuf_from_handle_info (const wchar_t                    *filename,
+                                        const wchar_t                    *filename_target,
+                                        const BY_HANDLE_FILE_INFORMATION *handle_info,
+                                        struct __stat64                  *statbuf)
 {
   wchar_t drive_letter_w = 0;
   size_t drive_letter_size = MB_CUR_MAX;
@@ -291,9 +300,9 @@ _g_win32_fill_statbuf_from_handle_info (const wchar_t              *filename,
   statbuf->st_nlink = handle_info->nNumberOfLinks;
   statbuf->st_uid = statbuf->st_gid = 0;
   statbuf->st_size = (((guint64) handle_info->nFileSizeHigh) << 32) | handle_info->nFileSizeLow;
-  statbuf->st_ctime = _g_win32_filetime_to_unix_time (&handle_info->ftCreationTime);
-  statbuf->st_mtime = _g_win32_filetime_to_unix_time (&handle_info->ftLastWriteTime);
-  statbuf->st_atime = _g_win32_filetime_to_unix_time (&handle_info->ftLastAccessTime);
+  statbuf->st_ctime = _g_win32_filetime_to_unix_time (&handle_info->ftCreationTime, NULL);
+  statbuf->st_mtime = _g_win32_filetime_to_unix_time (&handle_info->ftLastWriteTime, NULL);
+  statbuf->st_atime = _g_win32_filetime_to_unix_time (&handle_info->ftLastAccessTime, NULL);
 
   return 0;
 }
@@ -320,9 +329,9 @@ _g_win32_fill_privatestat (const struct __stat64            *statbuf,
 
   buf->reparse_tag = reparse_tag;
 
-  buf->st_ctime = statbuf->st_ctime;
-  buf->st_atime = statbuf->st_atime;
-  buf->st_mtime = statbuf->st_mtime;
+  buf->st_ctim.tv_sec = _g_win32_filetime_to_unix_time (&handle_info->ftCreationTime, &buf->st_ctim.tv_nsec);
+  buf->st_mtim.tv_sec = _g_win32_filetime_to_unix_time (&handle_info->ftLastWriteTime, &buf->st_mtim.tv_nsec);
+  buf->st_atim.tv_sec = _g_win32_filetime_to_unix_time (&handle_info->ftLastAccessTime, &buf->st_atim.tv_nsec);
 }
 
 /* Read the link data from a symlink/mountpoint represented
@@ -1322,9 +1331,9 @@ g_stat (const gchar *filename,
   buf->st_gid = w32_buf.st_gid;
   buf->st_rdev = w32_buf.st_dev;
   buf->st_size = w32_buf.st_size;
-  buf->st_atime = w32_buf.st_atime;
-  buf->st_mtime = w32_buf.st_mtime;
-  buf->st_ctime = w32_buf.st_ctime;
+  buf->st_atime = w32_buf.st_atim.tv_sec;
+  buf->st_mtime = w32_buf.st_mtim.tv_sec;
+  buf->st_ctime = w32_buf.st_ctim.tv_sec;
 
   return retval;
 #else
@@ -1371,9 +1380,9 @@ g_lstat (const gchar *filename,
   buf->st_gid = w32_buf.st_gid;
   buf->st_rdev = w32_buf.st_dev;
   buf->st_size = w32_buf.st_size;
-  buf->st_atime = w32_buf.st_atime;
-  buf->st_mtime = w32_buf.st_mtime;
-  buf->st_ctime = w32_buf.st_ctime;
+  buf->st_atime = w32_buf.st_atim.tv_sec;
+  buf->st_mtime = w32_buf.st_mtim.tv_sec;
+  buf->st_ctime = w32_buf.st_ctim.tv_sec;
 
   return retval;
 #else
@@ -1760,4 +1769,3 @@ g_close (gint       fd,
     }
   return TRUE;
 }
-
index 7156538..25f4747 100644 (file)
@@ -23,6 +23,11 @@ G_BEGIN_DECLS
 
 #if defined (G_OS_WIN32)
 
+typedef struct _gtimespec {
+  guint64 tv_sec;
+  guint32 tv_nsec;
+} gtimespec;
+
 struct _GWin32PrivateStat
 {
   guint32 volume_serial;
@@ -38,9 +43,9 @@ struct _GWin32PrivateStat
   guint16 st_gid;
   guint32 st_nlink;
   guint64 st_size;
-  guint64 st_ctime;
-  guint64 st_atime;
-  guint64 st_mtime;
+  gtimespec st_ctim;
+  gtimespec st_atim;
+  gtimespec st_mtim;
 };
 
 typedef struct _GWin32PrivateStat GWin32PrivateStat;
index f34aca2..31e4cf2 100644 (file)
@@ -35,6 +35,7 @@
 #include <string.h>
 #include <locale.h>
 #include <errno.h>
+#include <garray.h>
 #include <ctype.h>              /* For tolower() */
 
 #ifdef HAVE_XLOCALE_H
@@ -1768,7 +1769,7 @@ g_ascii_digit_value (gchar c)
  * g_ascii_xdigit_value:
  * @c: an ASCII character.
  *
- * Determines the numeric value of a character as a hexidecimal
+ * Determines the numeric value of a character as a hexadecimal
  * digit. Differs from g_unichar_xdigit_value() because it takes
  * a char, so there's no worry about sign extension if characters
  * are signed.
@@ -2352,10 +2353,9 @@ g_strsplit (const gchar *string,
             const gchar *delimiter,
             gint         max_tokens)
 {
-  GSList *string_list = NULL, *slist;
-  gchar **str_array, *s;
-  guint n = 0;
+  char *s;
   const gchar *remainder;
+  GPtrArray *string_list;
 
   g_return_val_if_fail (string != NULL, NULL);
   g_return_val_if_fail (delimiter != NULL, NULL);
@@ -2364,6 +2364,7 @@ g_strsplit (const gchar *string,
   if (max_tokens < 1)
     max_tokens = G_MAXINT;
 
+  string_list = g_ptr_array_new ();
   remainder = string;
   s = strstr (remainder, delimiter);
   if (s)
@@ -2375,28 +2376,17 @@ g_strsplit (const gchar *string,
           gsize len;
 
           len = s - remainder;
-          string_list = g_slist_prepend (string_list,
-                                         g_strndup (remainder, len));
-          n++;
+          g_ptr_array_add (string_list, g_strndup (remainder, len));
           remainder = s + delimiter_len;
           s = strstr (remainder, delimiter);
         }
     }
   if (*string)
-    {
-      n++;
-      string_list = g_slist_prepend (string_list, g_strdup (remainder));
-    }
-
-  str_array = g_new (gchar*, n + 1);
-
-  str_array[n--] = NULL;
-  for (slist = string_list; slist; slist = slist->next)
-    str_array[n--] = slist->data;
+    g_ptr_array_add (string_list, g_strdup (remainder));
 
-  g_slist_free (string_list);
+  g_ptr_array_add (string_list, NULL);
 
-  return str_array;
+  return (char **) g_ptr_array_free (string_list, FALSE);
 }
 
 /**
index e5121f7..b8291d2 100644 (file)
@@ -402,7 +402,7 @@ class GTestCase(object):
             txt = self._error_text(self._case)
             details['error'] = Content(mime_utf8, lambda:[txt])
         if self._get_outcome() == 'addSuccess':
-            # Sucessful tests may have performance metrics.
+            # Successful tests may have performance metrics.
             perflist = list_children(self._case, 'performance')
             if perflist:
                 presults = []
index 18b1172..e054cb7 100644 (file)
  */
 
 /**
+ * g_assert_no_errno:
+ * @expr: the expression to check
+ *
+ * Debugging macro to check that an expression has a non-negative return value,
+ * as used by traditional POSIX functions (such as `rmdir()`) to indicate
+ * success.
+ *
+ * If the assertion fails (i.e. the @expr returns a negative value), an error
+ * message is logged and the testcase is marked as failed. The error message
+ * will contain the value of `errno` and its human-readable message from
+ * g_strerror().
+ *
+ * This macro will clear the value of `errno` before executing @expr.
+ *
+ * Since: 2.66
+ */
+
+/**
  * g_assert_cmpmem:
  * @m1: (nullable): pointer to a buffer
  * @l1: length of @m1
@@ -2309,16 +2327,14 @@ g_test_failed (void)
 /**
  * g_test_set_nonfatal_assertions:
  *
- * Changes the behaviour of g_assert_cmpstr(), g_assert_cmpint(),
- * g_assert_cmpuint(), g_assert_cmphex(), g_assert_cmpfloat(),
- * g_assert_true(), g_assert_false(), g_assert_null(), g_assert_no_error(),
- * g_assert_error(), g_test_assert_expected_messages() and the various
- * g_test_trap_assert_*() macros to not abort to program, but instead
+ * Changes the behaviour of the various `g_assert_*()` macros,
+ * g_test_assert_expected_messages() and the various
+ * `g_test_trap_assert_*()` macros to not abort to program, but instead
  * call g_test_fail() and continue. (This also changes the behavior of
  * g_test_fail() so that it will not cause the test program to abort
  * after completing the failed test.)
  *
- * Note that the g_assert_not_reached() and g_assert() are not
+ * Note that the g_assert_not_reached() and g_assert() macros are not
  * affected by this.
  *
  * This function can only be called after g_test_init().
@@ -3067,7 +3083,7 @@ test_trap_clear (void)
 #ifdef G_OS_UNIX
 
 static int
-safe_dup2 (int fd1,
+sane_dup2 (int fd1,
            int fd2)
 {
   int ret;
@@ -3319,7 +3335,7 @@ g_test_trap_fork (guint64        usec_timeout,
           if (fd0 < 0)
             g_error ("failed to open /dev/null for stdin redirection");
         }
-      if (safe_dup2 (stdout_pipe[1], 1) < 0 || safe_dup2 (stderr_pipe[1], 2) < 0 || (fd0 >= 0 && safe_dup2 (fd0, 0) < 0))
+      if (sane_dup2 (stdout_pipe[1], 1) < 0 || sane_dup2 (stderr_pipe[1], 2) < 0 || (fd0 >= 0 && sane_dup2 (fd0, 0) < 0))
         {
           errsv = errno;
           g_error ("failed to dup2() in forked test program: %s", g_strerror (errsv));
index 66b7ef3..298caa4 100644 (file)
@@ -27,6 +27,7 @@
 #include <glib/gstring.h>
 #include <glib/gerror.h>
 #include <glib/gslist.h>
+#include <errno.h>
 #include <string.h>
 
 G_BEGIN_DECLS
@@ -110,6 +111,20 @@ typedef void (*GTestFixtureFunc) (gpointer      fixture,
       } \
   } \
   G_STMT_END
+#define g_assert_no_errno(expr)         G_STMT_START { \
+                                             int __ret, __errsv; \
+                                             errno = 0; \
+                                             __ret = expr; \
+                                             __errsv = errno; \
+                                             if (__ret < 0) \
+                                               { \
+                                                 gchar *__msg; \
+                                                 __msg = g_strdup_printf ("assertion failed (" #expr " >= 0): errno %i: %s", __errsv, g_strerror (__errsv)); \
+                                                 g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, __msg); \
+                                                 g_free (__msg); \
+                                               } \
+                                        } G_STMT_END \
+                                        GLIB_AVAILABLE_MACRO_IN_2_66
 #define g_assert_no_error(err)          G_STMT_START { \
                                              if (err) \
                                                g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
index 1de0448..54f74f2 100644 (file)
@@ -62,8 +62,8 @@ g_thread_abort (gint         status,
 }
 
 /* Starting with Vista and Windows 2008, we have access to the
- * CONDITION_VARIABLE and SRWLock primatives on Windows, which are
- * pretty reasonable approximations of the primatives specified in
+ * CONDITION_VARIABLE and SRWLock primitives on Windows, which are
+ * pretty reasonable approximations of the primitives specified in
  * POSIX 2001 (pthread_cond_t and pthread_mutex_t respectively).
  *
  * Both of these types are structs containing a single pointer.  That
index 6531f70..34f9c21 100644 (file)
@@ -630,13 +630,25 @@ g_once_impl (GOnce       *once,
 
   if (once->status != G_ONCE_STATUS_READY)
     {
+      gpointer retval;
+
       once->status = G_ONCE_STATUS_PROGRESS;
       g_mutex_unlock (&g_once_mutex);
 
-      once->retval = func (arg);
+      retval = func (arg);
 
       g_mutex_lock (&g_once_mutex);
+/* We prefer the new C11-style atomic extension of GCC if available. If not,
+ * fall back to always locking. */
+#if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) && defined(__ATOMIC_SEQ_CST)
+      /* Only the second store needs to be atomic, as the two writes are related
+       * by a happens-before relationship here. */
+      once->retval = retval;
+      __atomic_store_n (&once->status, G_ONCE_STATUS_READY, __ATOMIC_RELEASE);
+#else
+      once->retval = retval;
       once->status = G_ONCE_STATUS_READY;
+#endif
       g_cond_broadcast (&g_once_cond);
     }
 
@@ -739,7 +751,7 @@ void
  *
  * Increase the reference count on @thread.
  *
- * Returns: a new reference to @thread
+ * Returns: (transfer full): a new reference to @thread
  *
  * Since: 2.32
  */
@@ -755,7 +767,7 @@ g_thread_ref (GThread *thread)
 
 /**
  * g_thread_unref:
- * @thread: a #GThread
+ * @thread: (transfer full): a #GThread
  *
  * Decrease the reference count on @thread, possibly freeing all
  * resources associated with it.
@@ -818,8 +830,8 @@ g_thread_n_created (void)
 /**
  * g_thread_new:
  * @name: (nullable): an (optional) name for the new thread
- * @func: a function to execute in the new thread
- * @data: an argument to supply to the new thread
+ * @func: (closure data) (scope async): a function to execute in the new thread
+ * @data: (nullable): an argument to supply to the new thread
  *
  * This function creates a new thread. The new thread starts by invoking
  * @func with the argument data. The thread will run until @func returns
@@ -849,7 +861,7 @@ g_thread_n_created (void)
  * Starting with GLib 2.64 the behaviour is now consistent between Windows and
  * POSIX and all threads inherit their parent thread's priority.
  *
- * Returns: the new #GThread
+ * Returns: (transfer full): the new #GThread
  *
  * Since: 2.32
  */
@@ -872,8 +884,8 @@ g_thread_new (const gchar *name,
 /**
  * g_thread_try_new:
  * @name: (nullable): an (optional) name for the new thread
- * @func: a function to execute in the new thread
- * @data: an argument to supply to the new thread
+ * @func: (closure data) (scope async): a function to execute in the new thread
+ * @data: (nullable): an argument to supply to the new thread
  * @error: return location for error, or %NULL
  *
  * This function is the same as g_thread_new() except that
@@ -882,7 +894,7 @@ g_thread_new (const gchar *name,
  * If a thread can not be created (due to resource limits),
  * @error is set and %NULL is returned.
  *
- * Returns: the new #GThread, or %NULL if an error occurred
+ * Returns: (transfer full): the new #GThread, or %NULL if an error occurred
  *
  * Since: 2.32
  */
@@ -953,7 +965,7 @@ g_thread_exit (gpointer retval)
 
 /**
  * g_thread_join:
- * @thread: a #GThread
+ * @thread: (transfer full): a #GThread
  *
  * Waits until @thread finishes, i.e. the function @func, as
  * given to g_thread_new(), returns or g_thread_exit() is called.
@@ -972,7 +984,7 @@ g_thread_exit (gpointer retval)
  * to be freed. Use g_thread_ref() to obtain an extra reference if you
  * want to keep the GThread alive beyond the g_thread_join() call.
  *
- * Returns: the return value of the thread
+ * Returns: (transfer full): the return value of the thread
  */
 gpointer
 g_thread_join (GThread *thread)
@@ -1008,7 +1020,7 @@ g_thread_join (GThread *thread)
  * (i.e. comparisons) but you must not use GLib functions (such
  * as g_thread_join()) on these threads.
  *
- * Returns: the #GThread representing the current thread
+ * Returns: (transfer none): the #GThread representing the current thread
  */
 GThread*
 g_thread_self (void)
index 980522b..a30815e 100644 (file)
@@ -234,14 +234,23 @@ GLIB_AVAILABLE_IN_ALL
 void            g_once_init_leave               (volatile void  *location,
                                                  gsize           result);
 
-#ifdef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED
-# define g_once(once, func, arg) g_once_impl ((once), (func), (arg))
-#else /* !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED*/
+/* Use C11-style atomic extensions to check the fast path for status=ready. If
+ * they are not available, fall back to using a mutex and condition variable in
+ * g_once_impl().
+ *
+ * On the C11-style codepath, only the load of once->status needs to be atomic,
+ * as the writes to it and once->retval in g_once_impl() are related by a
+ * happens-before relation. Release-acquire semantics are defined such that any
+ * atomic/non-atomic write which happens-before a store/release is guaranteed to
+ * be seen by the load/acquire of the same atomic variable. */
+#if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) && defined(__ATOMIC_SEQ_CST)
 # define g_once(once, func, arg) \
-  (((once)->status == G_ONCE_STATUS_READY) ? \
+  ((__atomic_load_n (&(once)->status, __ATOMIC_ACQUIRE) == G_ONCE_STATUS_READY) ? \
    (once)->retval : \
    g_once_impl ((once), (func), (arg)))
-#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */
+#else
+# define g_once(once, func, arg) g_once_impl ((once), (func), (arg))
+#endif
 
 #ifdef __GNUC__
 # define g_once_init_enter(location) \
@@ -317,6 +326,7 @@ typedef void GMutexLocker;
  * Returns: a #GMutexLocker
  * Since: 2.44
  */
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
 static inline GMutexLocker *
 g_mutex_locker_new (GMutex *mutex)
 {
@@ -334,6 +344,7 @@ g_mutex_locker_new (GMutex *mutex)
  *
  * Since: 2.44
  */
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
 static inline void
 g_mutex_locker_free (GMutexLocker *locker)
 {
@@ -391,6 +402,7 @@ typedef void GRecMutexLocker;
  * Since: 2.60
  */
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_60
 static inline GRecMutexLocker *
 g_rec_mutex_locker_new (GRecMutex *rec_mutex)
 {
@@ -410,6 +422,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
  * Since: 2.60
  */
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_60
 static inline void
 g_rec_mutex_locker_free (GRecMutexLocker *locker)
 {
@@ -499,6 +512,7 @@ typedef void GRWLockWriterLocker;
  * Since: 2.62
  */
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
 static inline GRWLockWriterLocker *
 g_rw_lock_writer_locker_new (GRWLock *rw_lock)
 {
@@ -519,6 +533,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
  * Since: 2.62
  */
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
 static inline void
 g_rw_lock_writer_locker_free (GRWLockWriterLocker *locker)
 {
@@ -552,6 +567,7 @@ typedef void GRWLockReaderLocker;
  * Since: 2.62
  */
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
 static inline GRWLockReaderLocker *
 g_rw_lock_reader_locker_new (GRWLock *rw_lock)
 {
@@ -572,6 +588,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
  * Since: 2.62
  */
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
 static inline void
 g_rw_lock_reader_locker_free (GRWLockReaderLocker *locker)
 {
index ed34fcd..4c717e4 100644 (file)
@@ -861,10 +861,10 @@ g_thread_pool_unprocessed (GThreadPool *pool)
  * processing a task. Instead at least all still running threads
  * can finish their tasks before the @pool is freed.
  *
- * If @wait_ is %TRUE, the functions does not return before all
+ * If @wait_ is %TRUE, this function does not return before all
  * tasks to be processed (dependent on @immediate, whether all
  * or only the currently running) are ready.
- * Otherwise the function returns immediately.
+ * Otherwise this function returns immediately.
  *
  * After calling this function @pool must not be used anymore.
  */
index 5a835de..0bea412 100644 (file)
@@ -61,7 +61,7 @@
  * g_time_zone_get_identifier().
  *
  * A time zone contains a number of intervals.  Each interval has
- * an abbreviation to describe it (for example, ‘PDT’), an offet to UTC and a
+ * an abbreviation to describe it (for example, ‘PDT’), an offset to UTC and a
  * flag indicating if the daylight savings time is in effect during that
  * interval.  A time zone always has at least one interval — interval 0. Note
  * that interval abbreviations are not the same as time zone identifiers
index 4d83ee9..3cffe1d 100644 (file)
@@ -400,11 +400,6 @@ g_str_to_ascii (const gchar *str,
           else /* no match found */
             g_string_append_c (result, '?');
         }
-      else if (*str & 0x80) /* Out-of-range non-ASCII case */
-        {
-          g_string_append_c (result, '?');
-          str = g_utf8_next_char (str);
-        }
       else /* ASCII case */
         g_string_append_c (result, *str++);
     }
index 5e07806..d2d38a1 100644 (file)
@@ -7,14 +7,14 @@
 #include <glib/gtypes.h>
 #include <glib/gunicode.h>
 
-#define G_UNICODE_DATA_VERSION "12.1.0"
+#define G_UNICODE_DATA_VERSION "13.0.0"
 
 #define G_UNICODE_LAST_CHAR 0x10FFFF
 
 #define G_UNICODE_MAX_TABLE_INDEX 10000
 
 /* the last code point that should be looked up in break_property_table_part1 */
-#define G_UNICODE_LAST_CHAR_PART1 0x2FAFF
+#define G_UNICODE_LAST_CHAR_PART1 0x313FF
 
 static const gint8 break_property_data[][256] = {
   { /* page 0, index 0 */
@@ -1023,11 +1023,11 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -1360,7 +1360,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -1580,7 +1580,7 @@ static const gint8 break_property_data[][256] = {
   { /* page 13, index 12 */
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -1642,7 +1642,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -3230,6 +3230,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -3261,7 +3262,6 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
   { /* page 27, index 25 */
@@ -5017,7 +5017,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5366,8 +5366,8 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, 
     G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -5830,9 +5830,9 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
+    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
+    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -6623,6 +6623,8 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -6644,13 +6646,11 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
   },
   { /* page 168, index 51 */
@@ -6676,7 +6676,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -7094,8 +7094,8 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -13624,7 +13624,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -15168,31 +15168,31 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -15322,20 +15322,20 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -15527,7 +15527,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_AFTER, 
     G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, 
-    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -15594,8 +15594,8 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
-    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NUMERIC, 
     G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
     G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
     G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
@@ -15923,9 +15923,10 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
     G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
     G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
-    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_AFTER, 
+    G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -15941,7 +15942,6 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -16525,11 +16525,51 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC
   },
   { /* page 281, index 127 */
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
+    G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -16564,52 +16604,12 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -16629,17 +16629,16 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
-    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_BEFORE, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -16652,7 +16651,8 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN
   },
   { /* page 282, index 128 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, 
@@ -17260,7 +17260,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -18844,13 +18844,13 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
     G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
+    G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -18989,124 +18989,137 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 394, index 146 */
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  { /* page 396, index 146 */
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+  },
+  { /* page 397, index 147 */
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -19117,9 +19130,126 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 433, index 147 */
+  { /* page 433, index 148 */
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -19252,7 +19382,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC
   },
-  { /* page 434, index 148 */
+  { /* page 434, index 149 */
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -19382,7 +19512,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 444, index 149 */
+  { /* page 444, index 150 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -19512,7 +19642,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 464, index 150 */
+  { /* page 464, index 151 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -19642,7 +19772,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 465, index 151 */
+  { /* page 465, index 152 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -19772,7 +19902,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 466, index 152 */
+  { /* page 466, index 153 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -19902,7 +20032,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 467, index 153 */
+  { /* page 467, index 154 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -20032,7 +20162,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 468, index 154 */
+  { /* page 468, index 155 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -20162,7 +20292,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
   },
-  { /* page 469, index 155 */
+  { /* page 469, index 156 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -20292,7 +20422,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
   },
-  { /* page 470, index 156 */
+  { /* page 470, index 157 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -20422,7 +20552,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
   },
-  { /* page 471, index 157 */
+  { /* page 471, index 158 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -20552,7 +20682,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
     G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC
   },
-  { /* page 474, index 158 */
+  { /* page 474, index 159 */
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
@@ -20681,7 +20811,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 480, index 159 */
+  { /* page 480, index 160 */
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
@@ -20811,7 +20941,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 481, index 160 */
+  { /* page 481, index 161 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -20941,7 +21071,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 482, index 161 */
+  { /* page 482, index 162 */
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -21071,7 +21201,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX
   },
-  { /* page 488, index 162 */
+  { /* page 488, index 163 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -21201,7 +21331,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 489, index 163 */
+  { /* page 489, index 164 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -21331,7 +21461,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 492, index 164 */
+  { /* page 492, index 165 */
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -21461,7 +21591,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 493, index 165 */
+  { /* page 493, index 166 */
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -21591,7 +21721,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 494, index 166 */
+  { /* page 494, index 167 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
@@ -21721,7 +21851,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 497, index 167 */
+  { /* page 497, index 168 */
     G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, 
     G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, 
     G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, 
@@ -21851,7 +21981,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_REGIONAL_INDICATOR, G_UNICODE_BREAK_REGIONAL_INDICATOR, 
     G_UNICODE_BREAK_REGIONAL_INDICATOR, G_UNICODE_BREAK_REGIONAL_INDICATOR
   },
-  { /* page 499, index 168 */
+  { /* page 499, index 169 */
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -21981,7 +22111,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_EMOJI_MODIFIER, G_UNICODE_BREAK_EMOJI_MODIFIER, 
     G_UNICODE_BREAK_EMOJI_MODIFIER, G_UNICODE_BREAK_EMOJI_MODIFIER
   },
-  { /* page 500, index 169 */
+  { /* page 500, index 170 */
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -22111,7 +22241,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
   },
-  { /* page 501, index 170 */
+  { /* page 501, index 171 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -22241,7 +22371,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
   },
-  { /* page 502, index 171 */
+  { /* page 502, index 172 */
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -22371,7 +22501,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
   },
-  { /* page 503, index 172 */
+  { /* page 503, index 173 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -22501,7 +22631,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
   },
-  { /* page 504, index 173 */
+  { /* page 504, index 174 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -22631,14 +22761,14 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
   },
-  { /* page 505, index 174 */
+  { /* page 505, index 175 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+    G_UNICODE_BREAK_EMOJI_BASE, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EMOJI_BASE, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -22691,7 +22821,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
+    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EMOJI_BASE
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -22761,7 +22891,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
   },
-  { /* page 506, index 175 */
+  { /* page 506, index 176 */
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
     G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -22891,7 +23021,137 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC
   },
-  { /* page 511, index 176 */
+  { /* page 507, index 177 */
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+    G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+  },
+  { /* page 511, index 178 */
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -23021,7 +23281,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 767, index 177 */
+  { /* page 767, index 179 */
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -23151,7 +23411,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 1023, index 178 */
+  { /* page 1023, index 180 */
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
@@ -23281,7 +23541,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 3584, index 179 */
+  { /* page 3584, index 181 */
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -23411,7 +23671,7 @@ static const gint8 break_property_data[][256] = {
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
     G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
   },
-  { /* page 3585, index 180 */
+  { /* page 3585, index 182 */
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
     G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
@@ -23543,8 +23803,8 @@ static const gint8 break_property_data[][256] = {
   }
 };
 
-/* U+0000 through U+2FAFF */
-static const gint16 break_property_table_part1[763] = {
+/* U+0000 through U+313FF */
+static const gint16 break_property_table_part1[788] = {
   0 /* page 0 */,
   G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX,
   1 /* page 2 */,
@@ -23939,10 +24199,10 @@ static const gint16 break_property_table_part1[763] = {
   145 /* page 391 */,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
-  146 /* page 394 */,
-  G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
-  G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
-  G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX,
+  146 /* page 396 */,
+  147 /* page 397 */,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
@@ -23978,8 +24238,8 @@ static const gint16 break_property_table_part1[763] = {
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
-  147 /* page 433 */,
-  148 /* page 434 */,
+  148 /* page 433 */,
+  149 /* page 434 */,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
@@ -23989,7 +24249,7 @@ static const gint16 break_property_table_part1[763] = {
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
-  149 /* page 444 */,
+  150 /* page 444 */,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
@@ -24009,54 +24269,78 @@ static const gint16 break_property_table_part1[763] = {
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
-  150 /* page 464 */,
-  151 /* page 465 */,
-  152 /* page 466 */,
-  153 /* page 467 */,
-  154 /* page 468 */,
-  155 /* page 469 */,
-  156 /* page 470 */,
-  157 /* page 471 */,
+  151 /* page 464 */,
+  152 /* page 465 */,
+  153 /* page 466 */,
+  154 /* page 467 */,
+  155 /* page 468 */,
+  156 /* page 469 */,
+  157 /* page 470 */,
+  158 /* page 471 */,
   G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX,
-  158 /* page 474 */,
+  159 /* page 474 */,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
-  159 /* page 480 */,
-  160 /* page 481 */,
-  161 /* page 482 */,
+  160 /* page 480 */,
+  161 /* page 481 */,
+  162 /* page 482 */,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
-  162 /* page 488 */,
-  163 /* page 489 */,
+  163 /* page 488 */,
+  164 /* page 489 */,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
-  164 /* page 492 */,
-  165 /* page 493 */,
-  166 /* page 494 */,
+  165 /* page 492 */,
+  166 /* page 493 */,
+  167 /* page 494 */,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
-  167 /* page 497 */,
+  168 /* page 497 */,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  169 /* page 499 */,
+  170 /* page 500 */,
+  171 /* page 501 */,
+  172 /* page 502 */,
+  173 /* page 503 */,
+  174 /* page 504 */,
+  175 /* page 505 */,
+  176 /* page 506 */,
+  177 /* page 507 */,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  178 /* page 511 */,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
-  168 /* page 499 */,
-  169 /* page 500 */,
-  170 /* page 501 */,
-  171 /* page 502 */,
-  172 /* page 503 */,
-  173 /* page 504 */,
-  174 /* page 505 */,
-  175 /* page 506 */,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
-  176 /* page 511 */,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
@@ -24288,6 +24572,7 @@ static const gint16 break_property_table_part1[763] = {
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
+  179 /* page 767 */,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX,
@@ -24312,8 +24597,8 @@ static const gint16 break_property_table_part1[763] = {
 
 /* U+E0000 through U+10FFFF */
 static const gint16 break_property_table_part2[768] = {
-  179 /* page 3584 */,
-  180 /* page 3585 */,
+  181 /* page 3584 */,
+  182 /* page 3585 */,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX,
index 712daa6..f6b5cce 100644 (file)
@@ -4,15 +4,15 @@
 #ifndef CHARTABLES_H
 #define CHARTABLES_H
 
-#define G_UNICODE_DATA_VERSION "12.1.0"
+#define G_UNICODE_DATA_VERSION "13.0.0"
 
 #define G_UNICODE_LAST_CHAR 0x10ffff
 
 #define G_UNICODE_MAX_TABLE_INDEX 10000
 
-#define G_UNICODE_LAST_CHAR_PART1 0x2FAFF
+#define G_UNICODE_LAST_CHAR_PART1 0x313FF
 
-#define G_UNICODE_LAST_PAGE_PART1 762
+#define G_UNICODE_LAST_PAGE_PART1 787
 
 static const char type_data[][256] = {
   { /* page 0, index 0 */
@@ -1047,10 +1047,10 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -1303,7 +1303,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, 
@@ -1463,7 +1463,7 @@ static const char type_data[][256] = {
   },
   { /* page 13, index 13 */
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
-    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_UNASSIGNED
+    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_OTHER_LETTER
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, 
@@ -1508,7 +1508,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK
     G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -2605,7 +2605,8 @@ static const char type_data[][256] = {
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
-    G_UNICODE_ENCLOSING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_ENCLOSING_MARK, G_UNICODE_NON_SPACING_MARK, 
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -2626,7 +2627,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED
   },
   { /* page 27, index 25 */
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
@@ -4034,7 +4035,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -4341,6 +4342,8 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
     G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
     G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -4355,8 +4358,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -4365,7 +4367,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -4395,11 +4397,10 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
   { /* page 47, index 42 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -4652,8 +4653,8 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -4826,10 +4827,10 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -4934,11 +4935,11 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
   { /* page 160, index 48 */
@@ -5327,6 +5328,8 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
     G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -5341,8 +5344,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_MODIFIER_LETTER, 
     G_UNICODE_MODIFIER_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -5365,11 +5367,11 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_SPACING_MARK, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
-    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, 
@@ -5692,9 +5694,10 @@ static const char type_data[][256] = {
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_MODIFIER_LETTER, 
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_LOWERCASE_LETTER, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
@@ -6478,7 +6481,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -7578,24 +7581,24 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
-    G_UNICODE_OTHER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK
+    G_UNICODE_DASH_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -7621,7 +7624,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
   { /* page 271, index 76 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -7685,16 +7688,16 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_NUMBER
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -7841,7 +7844,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
     G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -7890,26 +7893,27 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
-    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_SPACING_MARK
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_DECIMAL_NUMBER, 
     G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
     G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
     G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
     G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_LETTER
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_LETTER
     G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED
   },
   { /* page 274, index 79 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -8133,10 +8137,10 @@ static const char type_data[][256] = {
     G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
     G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
     G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
-    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_PUNCTUATION
     G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_NON_SPACING_MARK, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -8582,9 +8586,39 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER
   },
   { /* page 281, index 86 */
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, 
+    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, 
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_SPACING_MARK, 
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_SPACING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_SPACING_MARK, 
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_PUNCTUATION, 
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -8608,37 +8642,10 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -8651,16 +8658,15 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_SPACING_MARK, 
-    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, 
+    G_UNICODE_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, 
-    G_UNICODE_NON_SPACING_MARK, G_UNICODE_SPACING_MARK, 
     G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, 
-    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER
-    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_LETTER
-    G_UNICODE_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_SPACING_MARK, G_UNICODE_NON_SPACING_MARK
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION
+    G_UNICODE_OTHER_LETTER, G_UNICODE_SPACING_MARK, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -8669,7 +8675,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
   { /* page 282, index 87 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, 
@@ -9110,7 +9116,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -9959,16 +9965,16 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_MODIFIER_LETTER, 
     G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_PUNCTUATION, 
-    G_UNICODE_MODIFIER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_SPACING_MARK, 
+    G_UNICODE_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
   { /* page 391, index 101 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -10058,17 +10064,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 394, index 102 */
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+  { /* page 396, index 102 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -10140,24 +10136,122 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 433, index 103 */
+  { /* page 397, index 103 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED
+  },
+  { /* page 433, index 104 */
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -10234,7 +10328,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER
   },
-  { /* page 434, index 104 */
+  { /* page 434, index 105 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -10322,7 +10416,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 444, index 105 */
+  { /* page 444, index 106 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -10410,7 +10504,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
-  { /* page 464, index 106 */
+  { /* page 464, index 107 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -10498,7 +10592,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 465, index 107 */
+  { /* page 465, index 108 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -10590,7 +10684,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 466, index 108 */
+  { /* page 466, index 109 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -10678,7 +10772,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
-  { /* page 467, index 109 */
+  { /* page 467, index 110 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -10766,7 +10860,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 468, index 110 */
+  { /* page 468, index 111 */
     G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
     G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
     G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
@@ -10895,7 +10989,7 @@ static const char type_data[][256] = {
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER
   },
-  { /* page 469, index 111 */
+  { /* page 469, index 112 */
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
@@ -11024,7 +11118,7 @@ static const char type_data[][256] = {
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER
   },
-  { /* page 470, index 112 */
+  { /* page 470, index 113 */
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
@@ -11154,7 +11248,7 @@ static const char type_data[][256] = {
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER
   },
-  { /* page 471, index 113 */
+  { /* page 471, index 114 */
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
     G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
@@ -11284,7 +11378,7 @@ static const char type_data[][256] = {
     G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
     G_UNICODE_DECIMAL_NUMBER
   },
-  { /* page 474, index 114 */
+  { /* page 474, index 115 */
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
@@ -11395,7 +11489,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
-  { /* page 480, index 115 */
+  { /* page 480, index 116 */
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
@@ -11489,7 +11583,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
-  { /* page 481, index 116 */
+  { /* page 481, index 117 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -11580,7 +11674,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
-  { /* page 482, index 117 */
+  { /* page 482, index 118 */
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -11670,7 +11764,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_CURRENCY_SYMBOL
   },
-  { /* page 488, index 118 */
+  { /* page 488, index 119 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -11759,7 +11853,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
-  { /* page 489, index 119 */
+  { /* page 489, index 120 */
     G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
     G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
     G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
@@ -11861,7 +11955,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 492, index 120 */
+  { /* page 492, index 121 */
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -11949,7 +12043,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
-  { /* page 493, index 121 */
+  { /* page 493, index 122 */
     G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
@@ -12037,7 +12131,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 494, index 122 */
+  { /* page 494, index 123 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -12125,7 +12219,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 496, index 123 */
+  { /* page 496, index 124 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12213,13 +12307,16 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 497, index 124 */
+  { /* page 497, index 125 */
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
     G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
-    G_UNICODE_OTHER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12250,8 +12347,6 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12271,7 +12366,6 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -12301,7 +12395,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL
   },
-  { /* page 498, index 125 */
+  { /* page 498, index 126 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -12389,7 +12483,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 499, index 126 */
+  { /* page 499, index 127 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12478,7 +12572,8 @@ static const char type_data[][256] = {
     G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, 
     G_UNICODE_MODIFIER_SYMBOL
   },
-  { /* page 502, index 127 */
+  { /* page 502, index 128 */
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12550,7 +12645,6 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, 
@@ -12562,11 +12656,11 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 503, index 128 */
+  { /* page 503, index 129 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12654,7 +12748,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 504, index 129 */
+  { /* page 504, index 130 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12713,8 +12807,8 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -12742,12 +12836,11 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 505, index 130 */
+  { /* page 505, index 131 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12781,9 +12874,13 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12797,10 +12894,8 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12810,7 +12905,6 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12830,7 +12924,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL
   },
-  { /* page 506, index 131 */
+  { /* page 506, index 132 */
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
@@ -12869,26 +12963,40 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -12902,6 +13010,77 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED
+  },
+  { /* page 507, index 133 */
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -12914,11 +13093,18 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, 
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
-  { /* page 678, index 132 */
+  { /* page 678, index 134 */
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -12990,9 +13176,6 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -13006,7 +13189,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 695, index 133 */
+  { /* page 695, index 135 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -13094,7 +13277,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER
   },
-  { /* page 696, index 134 */
+  { /* page 696, index 136 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -13182,7 +13365,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER
   },
-  { /* page 718, index 135 */
+  { /* page 718, index 137 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -13270,7 +13453,7 @@ static const char type_data[][256] = {
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER
   },
-  { /* page 747, index 136 */
+  { /* page 747, index 138 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -13358,7 +13541,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 762, index 137 */
+  { /* page 762, index 139 */
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
     G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
@@ -13446,7 +13629,95 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 3584, index 138 */
+  { /* page 787, index 140 */
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
+    G_UNICODE_UNASSIGNED
+  },
+  { /* page 3584, index 141 */
     G_UNICODE_UNASSIGNED, G_UNICODE_FORMAT, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -13526,7 +13797,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
   },
-  { /* page 3585, index 139 */
+  { /* page 3585, index 142 */
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
     G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, 
@@ -13654,7 +13925,7 @@ static const char type_data[][256] = {
     G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 4095, index 140 */
+  { /* page 4095, index 143 */
     G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, 
     G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, 
     G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, 
@@ -13742,7 +14013,7 @@ static const char type_data[][256] = {
     G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_UNASSIGNED, 
     G_UNICODE_UNASSIGNED
   },
-  { /* page 4351, index 141 */
+  { /* page 4351, index 144 */
     G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, 
     G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, 
     G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, 
@@ -13832,8 +14103,8 @@ static const char type_data[][256] = {
   }
 };
 
-/* U+0000 through U+2FAFF */
-static const gint16 type_table_part1[763] = {
+/* U+0000 through U+313FF */
+static const gint16 type_table_part1[788] = {
   0 /* page 0 */,
   1 /* page 1 */,
   2 /* page 2 */,
@@ -14228,10 +14499,10 @@ static const gint16 type_table_part1[763] = {
   101 /* page 391 */,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
-  102 /* page 394 */,
-  G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
-  G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
-  G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  102 /* page 396 */,
+  103 /* page 397 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
@@ -14267,8 +14538,8 @@ static const gint16 type_table_part1[763] = {
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
-  103 /* page 433 */,
-  104 /* page 434 */,
+  104 /* page 433 */,
+  105 /* page 434 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
@@ -14278,7 +14549,7 @@ static const gint16 type_table_part1[763] = {
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
-  105 /* page 444 */,
+  106 /* page 444 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
@@ -14298,50 +14569,50 @@ static const gint16 type_table_part1[763] = {
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
-  106 /* page 464 */,
-  107 /* page 465 */,
-  108 /* page 466 */,
-  109 /* page 467 */,
-  110 /* page 468 */,
-  111 /* page 469 */,
-  112 /* page 470 */,
-  113 /* page 471 */,
+  107 /* page 464 */,
+  108 /* page 465 */,
+  109 /* page 466 */,
+  110 /* page 467 */,
+  111 /* page 468 */,
+  112 /* page 469 */,
+  113 /* page 470 */,
+  114 /* page 471 */,
   G_UNICODE_OTHER_SYMBOL + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_SYMBOL + G_UNICODE_MAX_TABLE_INDEX,
-  114 /* page 474 */,
+  115 /* page 474 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
-  115 /* page 480 */,
-  116 /* page 481 */,
-  117 /* page 482 */,
+  116 /* page 480 */,
+  117 /* page 481 */,
+  118 /* page 482 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
-  118 /* page 488 */,
-  119 /* page 489 */,
+  119 /* page 488 */,
+  120 /* page 489 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
-  120 /* page 492 */,
-  121 /* page 493 */,
-  122 /* page 494 */,
+  121 /* page 492 */,
+  122 /* page 493 */,
+  123 /* page 494 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
-  123 /* page 496 */,
-  124 /* page 497 */,
-  125 /* page 498 */,
-  126 /* page 499 */,
+  124 /* page 496 */,
+  125 /* page 497 */,
+  126 /* page 498 */,
+  127 /* page 499 */,
   G_UNICODE_OTHER_SYMBOL + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_SYMBOL + G_UNICODE_MAX_TABLE_INDEX,
-  127 /* page 502 */,
-  128 /* page 503 */,
-  129 /* page 504 */,
-  130 /* page 505 */,
-  131 /* page 506 */,
-  G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
+  128 /* page 502 */,
+  129 /* page 503 */,
+  130 /* page 504 */,
+  131 /* page 505 */,
+  132 /* page 506 */,
+  133 /* page 507 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
@@ -14512,7 +14783,7 @@ static const gint16 type_table_part1[763] = {
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
-  132 /* page 678 */,
+  134 /* page 678 */,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
@@ -14529,8 +14800,8 @@ static const gint16 type_table_part1[763] = {
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
-  133 /* page 695 */,
-  134 /* page 696 */,
+  135 /* page 695 */,
+  136 /* page 696 */,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
@@ -14552,7 +14823,7 @@ static const gint16 type_table_part1[763] = {
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
-  135 /* page 718 */,
+  137 /* page 718 */,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
@@ -14581,7 +14852,7 @@ static const gint16 type_table_part1[763] = {
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
-  136 /* page 747 */,
+  138 /* page 747 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
@@ -14596,13 +14867,38 @@ static const gint16 type_table_part1[763] = {
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
-  137 /* page 762 */
+  139 /* page 762 */,
+  G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX,
+  140 /* page 787 */
 };
 
 /* U+E0000 through U+10FFFF */
 static const gint16 type_table_part2[768] = {
-  138 /* page 3584 */,
-  139 /* page 3585 */,
+  141 /* page 3584 */,
+  142 /* page 3585 */,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX,
@@ -15112,7 +15408,7 @@ static const gint16 type_table_part2[768] = {
   G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX,
-  140 /* page 4095 */,
+  143 /* page 4095 */,
   G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX,
@@ -15368,7 +15664,7 @@ static const gint16 type_table_part2[768] = {
   G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX,
   G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX,
-  141 /* page 4351 */
+  144 /* page 4351 */
 };
 
 static const gunichar attr_data[][256] = {
@@ -16329,12 +16625,12 @@ static const gunichar attr_data[][256] = {
     0x025c, 0x0261, 0x026c, 0x026a, 0x0000, 0x029e, 0x0287, 0x029d, 0xab53, 
     0xa7b5, 0xa7b4, 0xa7b7, 0xa7b6, 0xa7b9, 0xa7b8, 0xa7bb, 0xa7ba, 0xa7bd, 
     0xa7bc, 0xa7bf, 0xa7be, 0x0000, 0x0000, 0xa7c3, 0xa7c2, 0xa794, 0x0282, 
-    0x1d8e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x1d8e, 0xa7c8, 0xa7c7, 0xa7ca, 0xa7c9, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0xa7f6, 0xa7f5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000
   },
   { /* page 168, index 31 */
@@ -16838,7 +17134,38 @@ static const gunichar attr_data[][256] = {
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000
   },
-  { /* page 284, index 47 */
+  { /* page 281, index 47 */
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000
+  },
+  { /* page 284, index 48 */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
@@ -16869,7 +17196,7 @@ static const gunichar attr_data[][256] = {
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000
   },
-  { /* page 285, index 48 */
+  { /* page 285, index 49 */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
@@ -16900,7 +17227,7 @@ static const gunichar attr_data[][256] = {
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000
   },
-  { /* page 362, index 49 */
+  { /* page 362, index 50 */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
@@ -16931,7 +17258,7 @@ static const gunichar attr_data[][256] = {
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000
   },
-  { /* page 363, index 50 */
+  { /* page 363, index 51 */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
@@ -16962,7 +17289,7 @@ static const gunichar attr_data[][256] = {
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000
   },
-  { /* page 366, index 51 */
+  { /* page 366, index 52 */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
@@ -16994,7 +17321,7 @@ static const gunichar attr_data[][256] = {
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000
   },
-  { /* page 471, index 52 */
+  { /* page 471, index 53 */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
@@ -17025,7 +17352,7 @@ static const gunichar attr_data[][256] = {
     0x0007, 0x0008, 0x0009, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 
     0x0006, 0x0007, 0x0008, 0x0009
   },
-  { /* page 481, index 53 */
+  { /* page 481, index 54 */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
@@ -17056,7 +17383,7 @@ static const gunichar attr_data[][256] = {
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000
   },
-  { /* page 482, index 54 */
+  { /* page 482, index 55 */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
@@ -17087,7 +17414,7 @@ static const gunichar attr_data[][256] = {
     0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000
   },
-  { /* page 489, index 55 */
+  { /* page 489, index 56 */
     0x1e922, 0x1e923, 0x1e924, 0x1e925, 0x1e926, 0x1e927, 0x1e928, 0x1e929, 
     0x1e92a, 0x1e92b, 0x1e92c, 0x1e92d, 0x1e92e, 0x1e92f, 0x1e930, 0x1e931, 
     0x1e932, 0x1e933, 0x1e934, 0x1e935, 0x1e936, 0x1e937, 0x1e938, 0x1e939, 
@@ -17118,11 +17445,42 @@ static const gunichar attr_data[][256] = {
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
     0x0000, 0x0000, 0x0000, 0x0000
+  },
+  { /* page 507, index 57 */
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 
+    0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 
+    0x0000, 0x0000, 0x0000, 0x0000
   }
 };
 
-/* U+0000 through U+2FAFF */
-static const gint16 attr_table_part1[763] = {
+/* U+0000 through U+313FF */
+static const gint16 attr_table_part1[788] = {
   0 /* page 0 */,
   1 /* page 1 */,
   2 /* page 2 */,
@@ -17404,11 +17762,35 @@ static const gint16 attr_table_part1[763] = {
   44 /* page 278 */,
   45 /* page 279 */,
   46 /* page 280 */,
+  47 /* page 281 */,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  48 /* page 284 */,
+  49 /* page 285 */,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
-  47 /* page 284 */,
-  48 /* page 285 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
@@ -17461,8 +17843,11 @@ static const gint16 attr_table_part1[763] = {
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  50 /* page 362 */,
+  51 /* page 363 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  52 /* page 366 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
@@ -17485,11 +17870,8 @@ static const gint16 attr_table_part1[763] = {
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
-  49 /* page 362 */,
-  50 /* page 363 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
-  51 /* page 366 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
@@ -17570,6 +17952,7 @@ static const gint16 attr_table_part1[763] = {
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  53 /* page 471 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
@@ -17579,12 +17962,15 @@ static const gint16 attr_table_part1[763] = {
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  54 /* page 481 */,
+  55 /* page 482 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  56 /* page 489 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
@@ -17594,7 +17980,6 @@ static const gint16 attr_table_part1[763] = {
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
-  52 /* page 471 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
@@ -17603,16 +17988,14 @@ static const gint16 attr_table_part1[763] = {
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
+  57 /* page 507 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
-  53 /* page 481 */,
-  54 /* page 482 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
-  55 /* page 489 */,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
   0x0000 + G_UNICODE_MAX_TABLE_INDEX,
@@ -19121,8 +19504,7 @@ static const struct Interval g_unicode_width_table_wide[] = {
 {0x3099, 0x30FF},
 {0x3105, 0x312F},
 {0x3131, 0x318E},
-{0x3190, 0x31BA},
-{0x31C0, 0x31E3},
+{0x3190, 0x31E3},
 {0x31F0, 0x321E},
 {0x3220, 0x3247},
 {0x3250, 0x4DBF},
@@ -19137,9 +19519,11 @@ static const struct Interval g_unicode_width_table_wide[] = {
 {0xFE68, 0xFE6B},
 {0xFF01, 0xFF60},
 {0xFFE0, 0xFFE6},
-{0x16FE0, 0x16FE3},
+{0x16FE0, 0x16FE4},
+{0x16FF0, 0x16FF1},
 {0x17000, 0x187F7},
-{0x18800, 0x18AF2},
+{0x18800, 0x18CD5},
+{0x18D00, 0x18D08},
 {0x1B000, 0x1B11E},
 {0x1B150, 0x1B152},
 {0x1B164, 0x1B167},
@@ -19174,20 +19558,22 @@ static const struct Interval g_unicode_width_table_wide[] = {
 {0x1F680, 0x1F6C5},
 {0x1F6CC, 0x1F6CC},
 {0x1F6D0, 0x1F6D2},
-{0x1F6D5, 0x1F6D5},
+{0x1F6D5, 0x1F6D7},
 {0x1F6EB, 0x1F6EC},
-{0x1F6F4, 0x1F6FA},
+{0x1F6F4, 0x1F6FC},
 {0x1F7E0, 0x1F7EB},
-{0x1F90D, 0x1F971},
-{0x1F973, 0x1F976},
-{0x1F97A, 0x1F9A2},
-{0x1F9A5, 0x1F9AA},
-{0x1F9AE, 0x1F9CA},
+{0x1F90C, 0x1F93A},
+{0x1F93C, 0x1F945},
+{0x1F947, 0x1F978},
+{0x1F97A, 0x1F9CB},
 {0x1F9CD, 0x1F9FF},
-{0x1FA70, 0x1FA73},
+{0x1FA70, 0x1FA74},
 {0x1FA78, 0x1FA7A},
-{0x1FA80, 0x1FA82},
-{0x1FA90, 0x1FA95},
+{0x1FA80, 0x1FA86},
+{0x1FA90, 0x1FAA8},
+{0x1FAB0, 0x1FAB6},
+{0x1FAC0, 0x1FAC2},
+{0x1FAD0, 0x1FAD6},
 {0x20000, 0x2FFFD},
 {0x30000, 0x3FFFD},
 };
index 5663aec..d729803 100644 (file)
@@ -424,6 +424,10 @@ typedef enum
  * @G_UNICODE_SCRIPT_NANDINAGARI:          Nand. Since: 2.62
  * @G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG: Rohg. Since: 2.62
  * @G_UNICODE_SCRIPT_WANCHO:               Wcho. Since: 2.62
+ * @G_UNICODE_SCRIPT_CHORASMIAN:           Chorasmian. Since: 2.66
+ * @G_UNICODE_SCRIPT_DIVES_AKURU:          Dives Akuru. Since: 2.66
+ * @G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT:  Khitan small script. Since: 2.66
+ * @G_UNICODE_SCRIPT_YEZIDI:               Yezidi. Since: 2.66
  *
  * The #GUnicodeScript enumeration identifies different writing
  * systems. The values correspond to the names as defined in the
@@ -615,7 +619,13 @@ typedef enum
   G_UNICODE_SCRIPT_ELYMAIC,                /* Elym */
   G_UNICODE_SCRIPT_NANDINAGARI,            /* Nand */
   G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG, /* Rohg */
-  G_UNICODE_SCRIPT_WANCHO                  /* Wcho */
+  G_UNICODE_SCRIPT_WANCHO,                 /* Wcho */
+
+  /* Unicode 13.0 additions */
+  G_UNICODE_SCRIPT_CHORASMIAN,             /* Chrs */
+  G_UNICODE_SCRIPT_DIVES_AKURU,            /* Diak */
+  G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT,    /* Kits */
+  G_UNICODE_SCRIPT_YEZIDI                  /* Yezi */
 } GUnicodeScript;
 
 GLIB_AVAILABLE_IN_ALL
index dbb2a42..2a12b9a 100644 (file)
@@ -1,9 +1,9 @@
 #define COMPOSE_FIRST_START 1
 #define COMPOSE_FIRST_SINGLE_START 149
-#define COMPOSE_SECOND_START 377
-#define COMPOSE_SECOND_SINGLE_START 408
+#define COMPOSE_SECOND_START 378
+#define COMPOSE_SECOND_SINGLE_START 409
 
-#define COMPOSE_TABLE_LAST 277
+#define COMPOSE_TABLE_LAST 281
 
 static const guint16 compose_data[][256] = {
   { /* page 0, index 0 */
@@ -48,10 +48,10 @@ static const guint16 compose_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
   { /* page 3, index 3 */
-    377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 0, 0, 389
-    0, 390, 0, 391, 392, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0, 394
-    395, 396, 397, 398, 399, 0, 0, 0, 0, 400, 401, 0, 402, 403, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 
+    378, 379, 380, 381, 382, 0, 383, 384, 385, 386, 387, 388, 389, 0, 0, 390
+    0, 391, 0, 392, 393, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 395
+    396, 397, 398, 399, 400, 0, 0, 0, 0, 401, 402, 0, 403, 404, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 0, 0, 406, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 
@@ -79,7 +79,7 @@ static const guint16 compose_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    212, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 408, 409, 410, 0, 0, 0, 0, 0, 0, 0, 
+    212, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 409, 410, 411, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -96,22 +96,22 @@ static const guint16 compose_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 412
     0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
   { /* page 11, index 7 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, 0, 0, 
-    101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 415, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, 0, 
+    101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 416, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 416, 0, 0, 0, 0, 0, 0, 0, 102, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 417, 0, 0, 0, 0, 0, 0, 0, 102, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
   { /* page 12, index 8 */
@@ -123,21 +123,21 @@ static const guint16 compose_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 
-    0, 0, 418, 0, 0, 0, 103, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419
-    420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 419, 0, 0, 0, 103, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420
+    421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
   { /* page 13, index 9 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 104, 
-    225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 0, 0, 0, 0, 0, 0, 0, 104, 
+    225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 424, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 105, 0, 0, 226, 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 424, 0, 0, 0, 0, 425, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 105, 0, 0, 226, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
   { /* page 16, index 10 */
@@ -228,7 +228,7 @@ static const guint16 compose_data[][256] = {
     0, 0, 0, 333, 0, 334, 0, 335, 0, 336, 0, 337, 0, 338, 0, 339, 0, 340, 0, 
     341, 0, 342, 0, 343, 0, 344, 0, 0, 345, 0, 346, 0, 347, 0, 0, 0, 0, 0, 0, 
     137, 0, 0, 138, 0, 0, 139, 0, 0, 140, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 406, 407
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 408
     0, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, 0, 350, 0, 351, 0, 352, 
     0, 353, 0, 354, 0, 355, 0, 356, 0, 357, 0, 358, 0, 359, 0, 360, 0, 361, 
     0, 0, 362, 0, 363, 0, 364, 0, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 0, 144, 
@@ -264,8 +264,8 @@ static const guint16 compose_data[][256] = {
   { /* page 275, index 19 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 
-    147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 
+    147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -282,7 +282,7 @@ static const guint16 compose_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 0, 0, 148, 429, 0, 0, 430
+    0, 0, 0, 0, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 148, 430, 0, 0, 431
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
@@ -299,6 +299,19 @@ static const guint16 compose_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  },
+  { /* page 281, index 22 */
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   }
 };
 
@@ -580,7 +593,11 @@ static const gint16 compose_table[COMPOSE_TABLE_LAST + 1] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   19 /* page 275 */,
   20 /* page 276 */,
-  21 /* page 277 */
+  21 /* page 277 */,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  22 /* page 281 */
 };
 
 static const gunichar compose_first_single[][2] = {
@@ -811,7 +828,8 @@ static const gunichar compose_first_single[][2] = {
  { 0x11127, 0x1112e },
  { 0x11127, 0x1112f },
  { 0x115af, 0x115ba },
- { 0x115af, 0x115bb }
+ { 0x115af, 0x115bb },
+ { 0x11930, 0x11938 }
 };
 static const gunichar compose_second_single[][2] = {
  { 0x0627, 0x0622 },
index 32addc9..feaa25c 100644 (file)
  * The implementations of the Unicode functions in GLib are based
  * on the Unicode Character Data tables, which are available from
  * [www.unicode.org](http://www.unicode.org/).
- * GLib 2.8 supports Unicode 4.0, GLib 2.10 supports Unicode 4.1,
- * GLib 2.12 supports Unicode 5.0, GLib 2.16.3 supports Unicode 5.1,
- * GLib 2.30 supports Unicode 6.0.
+ *
+ *  * Unicode 4.0 was added in GLib 2.8
+ *  * Unicode 4.1 was added in GLib 2.10
+ *  * Unicode 5.0 was added in GLib 2.12
+ *  * Unicode 5.1 was added in GLib 2.16.3
+ *  * Unicode 6.0 was added in GLib 2.30
+ *  * Unicode 6.1 was added in GLib 2.32
+ *  * Unicode 6.2 was added in GLib 2.36
+ *  * Unicode 6.3 was added in GLib 2.40
+ *  * Unicode 7.0 was added in GLib 2.42
+ *  * Unicode 8.0 was added in GLib 2.48
+ *  * Unicode 9.0 was added in GLib 2.50.1
+ *  * Unicode 10.0 was added in GLib 2.54
+ *  * Unicode 11.10 was added in GLib 2.58
+ *  * Unicode 12.0 was added in GLib 2.62
+ *  * Unicode 12.1 was added in GLib 2.62
+ *  * Unicode 13.0 was added in GLib 2.66
  */
 
 #include "config.h"
index b28eeda..2b10286 100644 (file)
@@ -7,9 +7,9 @@
 
 #define G_UNICODE_MAX_TABLE_INDEX (0x110000 / 256)
 
-#define G_UNICODE_LAST_CHAR_PART1 0x2FAFF
+#define G_UNICODE_LAST_CHAR_PART1 0x313FF
 
-#define G_UNICODE_LAST_PAGE_PART1 762
+#define G_UNICODE_LAST_PAGE_PART1 787
 
 #define G_UNICODE_NOT_PRESENT_OFFSET 65535
 
@@ -266,10 +266,10 @@ static const guchar cclass_data[][256] = {
     230, 230, 230, 230, 230, 230, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 220, 220, 
-    220, 220, 220, 220, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    220, 220, 220, 220, 230, 230, 220, 0, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0
+    0, 0, 0, 0, 0, 0, 0
   },
   { /* page 27, index 19 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -383,7 +383,7 @@ static const guchar cclass_data[][256] = {
   },
   { /* page 168, index 27 */
     0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -526,7 +526,20 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 271, index 38 */
+  { /* page 270, index 38 */
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  },
+  { /* page 271, index 39 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 
@@ -539,7 +552,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 272, index 39 */
+  { /* page 272, index 40 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 
@@ -552,7 +565,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 273, index 40 */
+  { /* page 273, index 41 */
     230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -565,7 +578,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 274, index 41 */
+  { /* page 274, index 42 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -578,7 +591,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 275, index 42 */
+  { /* page 275, index 43 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -591,7 +604,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 276, index 43 */
+  { /* page 276, index 44 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 7, 0, 
@@ -604,7 +617,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 277, index 44 */
+  { /* page 277, index 45 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -617,7 +630,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 278, index 45 */
+  { /* page 278, index 46 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -630,7 +643,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 279, index 46 */
+  { /* page 279, index 47 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -643,7 +656,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 280, index 47 */
+  { /* page 280, index 48 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -656,10 +669,10 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 281, index 48 */
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  { /* page 281, index 49 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 7, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -669,7 +682,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 282, index 49 */
+  { /* page 282, index 50 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 
@@ -682,7 +695,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 284, index 50 */
+  { /* page 284, index 51 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -695,7 +708,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 285, index 51 */
+  { /* page 285, index 52 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 9, 0, 0, 
@@ -708,7 +721,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 362, index 52 */
+  { /* page 362, index 53 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -721,7 +734,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 363, index 53 */
+  { /* page 363, index 54 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -734,7 +747,20 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 444, index 54 */
+  { /* page 367, index 55 */
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  },
+  { /* page 444, index 56 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -747,7 +773,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 465, index 55 */
+  { /* page 465, index 57 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -761,7 +787,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 466, index 56 */
+  { /* page 466, index 58 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 0, 
@@ -774,7 +800,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 480, index 57 */
+  { /* page 480, index 59 */
     230, 230, 230, 230, 230, 230, 230, 0, 230, 230, 230, 230, 230, 230, 230, 
     230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, 
     230, 230, 230, 230, 0, 230, 230, 0, 230, 230, 230, 230, 230, 0, 0, 0, 0, 
@@ -788,7 +814,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 481, index 58 */
+  { /* page 481, index 60 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -801,7 +827,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 482, index 59 */
+  { /* page 482, index 61 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -814,7 +840,7 @@ static const guchar cclass_data[][256] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 
     230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 488, index 60 */
+  { /* page 488, index 62 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -827,7 +853,7 @@ static const guchar cclass_data[][256] = {
     220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   },
-  { /* page 489, index 61 */
+  { /* page 489, index 63 */
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 
@@ -842,7 +868,7 @@ static const guchar cclass_data[][256] = {
   }
 };
 
-static const gint16 combining_class_table_part1[763] = {
+static const gint16 combining_class_table_part1[788] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
@@ -1113,22 +1139,46 @@ static const gint16 combining_class_table_part1[763] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   37 /* page 269 */,
+  38 /* page 270 */,
+  39 /* page 271 */,
+  40 /* page 272 */,
+  41 /* page 273 */,
+  42 /* page 274 */,
+  43 /* page 275 */,
+  44 /* page 276 */,
+  45 /* page 277 */,
+  46 /* page 278 */,
+  47 /* page 279 */,
+  48 /* page 280 */,
+  49 /* page 281 */,
+  50 /* page 282 */,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  51 /* page 284 */,
+  52 /* page 285 */,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
+  0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
-  38 /* page 271 */,
-  39 /* page 272 */,
-  40 /* page 273 */,
-  41 /* page 274 */,
-  42 /* page 275 */,
-  43 /* page 276 */,
-  44 /* page 277 */,
-  45 /* page 278 */,
-  46 /* page 279 */,
-  47 /* page 280 */,
-  48 /* page 281 */,
-  49 /* page 282 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
-  50 /* page 284 */,
-  51 /* page 285 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
@@ -1181,9 +1231,12 @@ static const gint16 combining_class_table_part1[763] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
+  53 /* page 362 */,
+  54 /* page 363 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
+  55 /* page 367 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
@@ -1205,8 +1258,6 @@ static const gint16 combining_class_table_part1[763] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
-  52 /* page 362 */,
-  53 /* page 363 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
@@ -1262,6 +1313,7 @@ static const gint16 combining_class_table_part1[763] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
+  56 /* page 444 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
@@ -1282,12 +1334,13 @@ static const gint16 combining_class_table_part1[763] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
+  57 /* page 465 */,
+  58 /* page 466 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
-  54 /* page 444 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
@@ -1296,11 +1349,16 @@ static const gint16 combining_class_table_part1[763] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
+  59 /* page 480 */,
+  60 /* page 481 */,
+  61 /* page 482 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
+  62 /* page 488 */,
+  63 /* page 489 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
@@ -1308,8 +1366,6 @@ static const gint16 combining_class_table_part1[763] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
-  55 /* page 465 */,
-  56 /* page 466 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
@@ -1323,16 +1379,11 @@ static const gint16 combining_class_table_part1[763] = {
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
-  57 /* page 480 */,
-  58 /* page 481 */,
-  59 /* page 482 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
-  60 /* page 488 */,
-  61 /* page 489 */,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
   0 + G_UNICODE_MAX_TABLE_INDEX,
@@ -4733,1196 +4784,1197 @@ static const decomposition decomp_table[] =
   { 0xab5d, G_UNICODE_NOT_PRESENT_OFFSET, 10903 },
   { 0xab5e, G_UNICODE_NOT_PRESENT_OFFSET, 10907 },
   { 0xab5f, G_UNICODE_NOT_PRESENT_OFFSET, 10910 },
-  { 0xf900, 10914, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf901, 10918, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xab69, G_UNICODE_NOT_PRESENT_OFFSET, 10914 },
+  { 0xf900, 10917, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf901, 10921, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf902, 6813, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf903, 10922, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf904, 10926, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf905, 10930, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf906, 10934, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf903, 10925, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf904, 10929, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf905, 10933, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf906, 10937, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf907, 7029, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf908, 7029, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf909, 10938, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf909, 10941, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf90a, 6845, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf90b, 10942, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf90c, 10946, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf90d, 10950, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf90e, 10954, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf90f, 10958, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf910, 10962, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf911, 10966, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf912, 10970, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf913, 10974, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf914, 10978, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf915, 10982, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf916, 10986, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf917, 10990, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf918, 10994, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf919, 10998, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf91a, 11002, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf91b, 11006, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf91c, 11010, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf91d, 11014, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf91e, 11018, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf91f, 11022, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf920, 11026, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf921, 11030, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf922, 11034, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf923, 11038, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf924, 11042, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf925, 11046, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf926, 11050, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf927, 11054, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf928, 11058, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf929, 11062, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf92a, 11066, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf92b, 11070, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf92c, 11074, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf92d, 11078, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf92e, 11082, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf92f, 11086, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf930, 11090, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf931, 11094, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf932, 11098, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf933, 11102, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf90b, 10945, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf90c, 10949, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf90d, 10953, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf90e, 10957, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf90f, 10961, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf910, 10965, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf911, 10969, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf912, 10973, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf913, 10977, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf914, 10981, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf915, 10985, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf916, 10989, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf917, 10993, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf918, 10997, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf919, 11001, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf91a, 11005, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf91b, 11009, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf91c, 11013, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf91d, 11017, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf91e, 11021, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf91f, 11025, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf920, 11029, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf921, 11033, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf922, 11037, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf923, 11041, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf924, 11045, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf925, 11049, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf926, 11053, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf927, 11057, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf928, 11061, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf929, 11065, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf92a, 11069, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf92b, 11073, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf92c, 11077, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf92d, 11081, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf92e, 11085, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf92f, 11089, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf930, 11093, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf931, 11097, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf932, 11101, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf933, 11105, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf934, 6677, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf935, 11106, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf936, 11110, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf937, 11114, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf938, 11118, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf939, 11122, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf93a, 11126, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf93b, 11130, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf93c, 11134, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf93d, 11138, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf93e, 11142, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf93f, 11146, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf935, 11109, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf936, 11113, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf937, 11117, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf938, 11121, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf939, 11125, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf93a, 11129, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf93b, 11133, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf93c, 11137, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf93d, 11141, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf93e, 11145, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf93f, 11149, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf940, 6969, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf941, 11150, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf942, 11154, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf943, 11158, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf944, 11162, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf945, 11166, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf946, 11170, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf947, 11174, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf948, 11178, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf949, 11182, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf94a, 11186, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf94b, 11190, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf94c, 11194, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf94d, 11198, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf94e, 11202, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf94f, 11206, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf950, 11210, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf951, 11214, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf952, 11218, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf953, 11222, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf954, 11226, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf955, 11230, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf956, 11234, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf957, 11238, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf958, 11242, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf959, 11246, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf95a, 11250, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf95b, 11254, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf95c, 10978, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf95d, 11258, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf95e, 11262, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf95f, 11266, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf960, 11270, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf961, 11274, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf962, 11278, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf963, 11282, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf964, 11286, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf965, 11290, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf966, 11294, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf967, 11298, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf968, 11302, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf969, 11306, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf96a, 11310, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf96b, 11314, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf96c, 11318, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf96d, 11322, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf96e, 11326, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf96f, 11330, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf970, 11334, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf941, 11153, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf942, 11157, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf943, 11161, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf944, 11165, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf945, 11169, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf946, 11173, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf947, 11177, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf948, 11181, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf949, 11185, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf94a, 11189, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf94b, 11193, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf94c, 11197, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf94d, 11201, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf94e, 11205, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf94f, 11209, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf950, 11213, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf951, 11217, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf952, 11221, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf953, 11225, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf954, 11229, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf955, 11233, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf956, 11237, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf957, 11241, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf958, 11245, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf959, 11249, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf95a, 11253, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf95b, 11257, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf95c, 10981, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf95d, 11261, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf95e, 11265, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf95f, 11269, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf960, 11273, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf961, 11277, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf962, 11281, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf963, 11285, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf964, 11289, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf965, 11293, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf966, 11297, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf967, 11301, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf968, 11305, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf969, 11309, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf96a, 11313, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf96b, 11317, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf96c, 11321, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf96d, 11325, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf96e, 11329, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf96f, 11333, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf970, 11337, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf971, 6821, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf972, 11338, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf973, 11342, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf974, 11346, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf975, 11350, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf976, 11354, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf977, 11358, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf978, 11362, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf979, 11366, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf97a, 11370, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf97b, 11374, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf97c, 11378, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf97d, 11382, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf97e, 11386, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf97f, 11390, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf980, 11394, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf972, 11341, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf973, 11345, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf974, 11349, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf975, 11353, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf976, 11357, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf977, 11361, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf978, 11365, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf979, 11369, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf97a, 11373, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf97b, 11377, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf97c, 11381, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf97d, 11385, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf97e, 11389, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf97f, 11393, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf980, 11397, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf981, 6329, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf982, 11398, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf983, 11402, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf984, 11406, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf985, 11410, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf986, 11414, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf987, 11418, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf988, 11422, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf989, 11426, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf982, 11401, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf983, 11405, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf984, 11409, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf985, 11413, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf986, 11417, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf987, 11421, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf988, 11425, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf989, 11429, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf98a, 6253, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf98b, 11430, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf98c, 11434, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf98d, 11438, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf98e, 11442, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf98f, 11446, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf990, 11450, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf991, 11454, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf992, 11458, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf993, 11462, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf994, 11466, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf995, 11470, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf996, 11474, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf997, 11478, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf998, 11482, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf999, 11486, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf99a, 11490, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf99b, 11494, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf99c, 11498, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf99d, 11502, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf99e, 11506, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf99f, 11510, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a0, 11514, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a1, 11330, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a2, 11518, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a3, 11522, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a4, 11526, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a5, 11530, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a6, 11534, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a7, 11538, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a8, 11542, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9a9, 11546, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9aa, 11266, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ab, 11550, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ac, 11554, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ad, 11558, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ae, 11562, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9af, 11566, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b0, 11570, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b1, 11574, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b2, 11578, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b3, 11582, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b4, 11586, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b5, 11590, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b6, 11594, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b7, 11598, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b8, 11602, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9b9, 11606, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ba, 11610, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9bb, 11614, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9bc, 11618, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9bd, 11622, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9be, 11626, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9bf, 10978, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9c0, 11630, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9c1, 11634, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9c2, 11638, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9c3, 11642, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf98b, 11433, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf98c, 11437, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf98d, 11441, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf98e, 11445, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf98f, 11449, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf990, 11453, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf991, 11457, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf992, 11461, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf993, 11465, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf994, 11469, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf995, 11473, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf996, 11477, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf997, 11481, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf998, 11485, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf999, 11489, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf99a, 11493, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf99b, 11497, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf99c, 11501, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf99d, 11505, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf99e, 11509, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf99f, 11513, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a0, 11517, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a1, 11333, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a2, 11521, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a3, 11525, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a4, 11529, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a5, 11533, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a6, 11537, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a7, 11541, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a8, 11545, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9a9, 11549, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9aa, 11269, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ab, 11553, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ac, 11557, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ad, 11561, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ae, 11565, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9af, 11569, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b0, 11573, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b1, 11577, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b2, 11581, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b3, 11585, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b4, 11589, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b5, 11593, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b6, 11597, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b7, 11601, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b8, 11605, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9b9, 11609, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ba, 11613, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9bb, 11617, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9bc, 11621, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9bd, 11625, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9be, 11629, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9bf, 10981, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9c0, 11633, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9c1, 11637, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9c2, 11641, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9c3, 11645, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf9c4, 7025, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9c5, 11646, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9c6, 11650, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9c7, 11654, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9c8, 11658, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9c9, 11662, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ca, 11666, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9cb, 11670, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9cc, 11674, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9cd, 11678, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ce, 11682, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9cf, 11686, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9d0, 11690, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9c5, 11649, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9c6, 11653, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9c7, 11657, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9c8, 11661, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9c9, 11665, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ca, 11669, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9cb, 11673, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9cc, 11677, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9cd, 11681, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ce, 11685, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9cf, 11689, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9d0, 11693, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf9d1, 8562, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9d2, 11694, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9d3, 11698, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9d4, 11702, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9d5, 11706, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9d6, 11710, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9d7, 11714, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9d8, 11718, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9d9, 11722, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9da, 11726, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9db, 11274, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9dc, 11730, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9dd, 11734, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9de, 11738, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9df, 11742, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9e0, 11746, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9e1, 11750, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9e2, 11754, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9e3, 11758, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9e4, 11762, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9e5, 11766, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9e6, 11770, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9e7, 11774, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9e8, 11778, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9d2, 11697, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9d3, 11701, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9d4, 11705, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9d5, 11709, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9d6, 11713, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9d7, 11717, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9d8, 11721, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9d9, 11725, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9da, 11729, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9db, 11277, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9dc, 11733, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9dd, 11737, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9de, 11741, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9df, 11745, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9e0, 11749, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9e1, 11753, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9e2, 11757, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9e3, 11761, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9e4, 11765, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9e5, 11769, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9e6, 11773, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9e7, 11777, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9e8, 11781, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf9e9, 6841, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ea, 11782, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9eb, 11786, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ec, 11790, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ed, 11794, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ee, 11798, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ef, 11802, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9f0, 11806, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9f1, 11810, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9f2, 11814, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9f3, 11818, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9f4, 11822, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9f5, 11826, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9f6, 11830, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ea, 11785, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9eb, 11789, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ec, 11793, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ed, 11797, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ee, 11801, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ef, 11805, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9f0, 11809, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9f1, 11813, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9f2, 11817, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9f3, 11821, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9f4, 11825, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9f5, 11829, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9f6, 11833, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xf9f7, 6645, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9f8, 11834, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9f9, 11838, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9fa, 11842, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9fb, 11846, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9fc, 11850, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9fd, 11854, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9fe, 11858, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xf9ff, 11862, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa00, 11866, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa01, 11870, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa02, 11874, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa03, 11878, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa04, 11882, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa05, 11886, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa06, 11890, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa07, 11894, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9f8, 11837, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9f9, 11841, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9fa, 11845, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9fb, 11849, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9fc, 11853, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9fd, 11857, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9fe, 11861, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xf9ff, 11865, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa00, 11869, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa01, 11873, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa02, 11877, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa03, 11881, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa04, 11885, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa05, 11889, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa06, 11893, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa07, 11897, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xfa08, 6753, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa09, 11898, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa09, 11901, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xfa0a, 6765, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa0b, 11902, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa0c, 11906, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa0d, 11910, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa10, 11914, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa12, 11918, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa15, 11922, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa16, 11926, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa17, 11930, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa18, 11934, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa19, 11938, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa1a, 11942, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa1b, 11946, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa1c, 11950, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa1d, 11954, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa0b, 11905, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa0c, 11909, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa0d, 11913, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa10, 11917, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa12, 11921, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa15, 11925, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa16, 11929, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa17, 11933, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa18, 11937, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa19, 11941, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa1a, 11945, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa1b, 11949, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa1c, 11953, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa1d, 11957, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xfa1e, 6673, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa20, 11958, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa22, 11962, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa25, 11966, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa26, 11970, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa2a, 11974, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa2b, 11978, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa2c, 11982, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa2d, 11986, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa2e, 11990, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa2f, 11994, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa30, 11998, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa31, 12002, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa32, 12006, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa33, 12010, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa34, 12014, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa35, 12018, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa36, 12022, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa37, 12026, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa38, 12030, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa39, 12034, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa3a, 12038, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa3b, 12042, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa20, 11961, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa22, 11965, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa25, 11969, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa26, 11973, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa2a, 11977, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa2b, 11981, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa2c, 11985, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa2d, 11989, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa2e, 11993, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa2f, 11997, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa30, 12001, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa31, 12005, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa32, 12009, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa33, 12013, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa34, 12017, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa35, 12021, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa36, 12025, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa37, 12029, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa38, 12033, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa39, 12037, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa3a, 12041, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa3b, 12045, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xfa3c, 6357, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa3d, 12046, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa3e, 12050, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa3f, 12054, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa40, 12058, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa41, 12062, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa42, 12066, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa43, 12070, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa44, 12074, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa45, 12078, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa46, 12082, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa47, 12086, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa48, 12090, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa49, 12094, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa4a, 12098, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa4b, 12102, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa3d, 12049, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa3e, 12053, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa3f, 12057, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa40, 12061, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa41, 12065, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa42, 12069, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa43, 12073, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa44, 12077, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa45, 12081, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa46, 12085, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa47, 12089, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa48, 12093, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa49, 12097, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa4a, 12101, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa4b, 12105, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xfa4c, 8582, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa4d, 12106, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa4e, 12110, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa4f, 12114, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa50, 12118, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa4d, 12109, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa4e, 12113, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa4f, 12117, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa50, 12121, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xfa51, 8598, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa52, 12122, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa53, 12126, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa54, 12130, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa55, 12134, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa56, 12138, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa57, 11474, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa58, 12142, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa59, 12146, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa5a, 12150, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa5b, 12154, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa5c, 12158, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa5d, 12162, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa5e, 12162, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa5f, 12166, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa60, 12170, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa61, 12174, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa62, 12178, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa63, 12182, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa64, 12186, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa65, 12190, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa66, 12194, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa67, 11966, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa68, 12198, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa69, 12202, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa6a, 12206, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa6b, 12210, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa6c, 12214, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa6d, 12219, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa70, 12223, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa71, 12227, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa72, 12231, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa73, 12235, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa74, 12239, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa75, 12243, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa76, 12247, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa77, 12251, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa78, 12022, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa79, 12255, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa7a, 12259, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa7b, 12263, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa7c, 11914, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa7d, 12267, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa7e, 12271, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa7f, 12275, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa80, 12279, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa81, 12283, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa82, 12287, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa83, 12291, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa84, 12295, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa85, 12299, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa86, 12303, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa87, 12307, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa88, 12311, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa89, 12054, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa8a, 12315, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa8b, 12058, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa8c, 12319, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa8d, 12323, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa8e, 12327, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa8f, 12331, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa90, 12335, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa91, 11918, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa92, 11062, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa93, 12339, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa94, 12343, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa52, 12125, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa53, 12129, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa54, 12133, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa55, 12137, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa56, 12141, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa57, 11477, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa58, 12145, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa59, 12149, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa5a, 12153, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa5b, 12157, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa5c, 12161, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa5d, 12165, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa5e, 12165, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa5f, 12169, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa60, 12173, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa61, 12177, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa62, 12181, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa63, 12185, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa64, 12189, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa65, 12193, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa66, 12197, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa67, 11969, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa68, 12201, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa69, 12205, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa6a, 12209, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa6b, 12213, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa6c, 12217, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa6d, 12222, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa70, 12226, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa71, 12230, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa72, 12234, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa73, 12238, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa74, 12242, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa75, 12246, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa76, 12250, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa77, 12254, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa78, 12025, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa79, 12258, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa7a, 12262, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa7b, 12266, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa7c, 11917, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa7d, 12270, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa7e, 12274, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa7f, 12278, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa80, 12282, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa81, 12286, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa82, 12290, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa83, 12294, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa84, 12298, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa85, 12302, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa86, 12306, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa87, 12310, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa88, 12314, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa89, 12057, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa8a, 12318, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa8b, 12061, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa8c, 12322, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa8d, 12326, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa8e, 12330, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa8f, 12334, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa90, 12338, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa91, 11921, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa92, 11065, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa93, 12342, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa94, 12346, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xfa95, 6489, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa96, 11334, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa97, 11666, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa98, 12347, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa99, 12351, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa9a, 12086, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa9b, 12355, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa9c, 12090, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa9d, 12359, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa9e, 12363, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfa9f, 12367, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa0, 11926, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa1, 12371, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa2, 12375, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa3, 12379, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa4, 12383, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa5, 12387, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa6, 11930, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa7, 12391, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa8, 12395, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaa9, 12399, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaaa, 12403, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaab, 12407, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaac, 12411, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaad, 12138, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaae, 12415, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaaf, 12419, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab0, 11474, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab1, 12423, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab2, 12154, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab3, 12427, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab4, 12431, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab5, 12435, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab6, 12439, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab7, 12443, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab8, 12174, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfab9, 12447, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaba, 11962, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfabb, 12451, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfabc, 12178, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfabd, 11258, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfabe, 12455, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfabf, 12182, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac0, 12459, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac1, 12190, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac2, 12463, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac3, 12467, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac4, 12471, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac5, 12475, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac6, 12479, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac7, 12198, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac8, 11950, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfac9, 12483, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfaca, 12202, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfacb, 12487, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfacc, 12206, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfacd, 12491, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa96, 11337, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa97, 11669, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa98, 12350, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa99, 12354, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa9a, 12089, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa9b, 12358, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa9c, 12093, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa9d, 12362, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa9e, 12366, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfa9f, 12370, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa0, 11929, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa1, 12374, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa2, 12378, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa3, 12382, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa4, 12386, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa5, 12390, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa6, 11933, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa7, 12394, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa8, 12398, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaa9, 12402, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaaa, 12406, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaab, 12410, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaac, 12414, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaad, 12141, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaae, 12418, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaaf, 12422, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab0, 11477, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab1, 12426, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab2, 12157, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab3, 12430, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab4, 12434, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab5, 12438, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab6, 12442, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab7, 12446, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab8, 12177, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfab9, 12450, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaba, 11965, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfabb, 12454, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfabc, 12181, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfabd, 11261, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfabe, 12458, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfabf, 12185, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac0, 12462, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac1, 12193, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac2, 12466, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac3, 12470, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac4, 12474, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac5, 12478, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac6, 12482, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac7, 12201, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac8, 11953, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfac9, 12486, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfaca, 12205, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfacb, 12490, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfacc, 12209, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfacd, 12494, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0xface, 7029, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfacf, 12495, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad0, 12500, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad1, 12505, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad2, 12510, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad3, 12514, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad4, 12518, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad5, 12522, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad6, 12527, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad7, 12532, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad8, 12537, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfad9, 12541, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb00, G_UNICODE_NOT_PRESENT_OFFSET, 12545 },
-  { 0xfb01, G_UNICODE_NOT_PRESENT_OFFSET, 12548 },
-  { 0xfb02, G_UNICODE_NOT_PRESENT_OFFSET, 12551 },
-  { 0xfb03, G_UNICODE_NOT_PRESENT_OFFSET, 12554 },
-  { 0xfb04, G_UNICODE_NOT_PRESENT_OFFSET, 12558 },
-  { 0xfb05, G_UNICODE_NOT_PRESENT_OFFSET, 12562 },
-  { 0xfb06, G_UNICODE_NOT_PRESENT_OFFSET, 12562 },
-  { 0xfb13, G_UNICODE_NOT_PRESENT_OFFSET, 12565 },
-  { 0xfb14, G_UNICODE_NOT_PRESENT_OFFSET, 12570 },
-  { 0xfb15, G_UNICODE_NOT_PRESENT_OFFSET, 12575 },
-  { 0xfb16, G_UNICODE_NOT_PRESENT_OFFSET, 12580 },
-  { 0xfb17, G_UNICODE_NOT_PRESENT_OFFSET, 12585 },
-  { 0xfb1d, 12590, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb1f, 12595, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb20, G_UNICODE_NOT_PRESENT_OFFSET, 12600 },
+  { 0xfacf, 12498, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad0, 12503, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad1, 12508, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad2, 12513, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad3, 12517, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad4, 12521, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad5, 12525, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad6, 12530, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad7, 12535, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad8, 12540, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfad9, 12544, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb00, G_UNICODE_NOT_PRESENT_OFFSET, 12548 },
+  { 0xfb01, G_UNICODE_NOT_PRESENT_OFFSET, 12551 },
+  { 0xfb02, G_UNICODE_NOT_PRESENT_OFFSET, 12554 },
+  { 0xfb03, G_UNICODE_NOT_PRESENT_OFFSET, 12557 },
+  { 0xfb04, G_UNICODE_NOT_PRESENT_OFFSET, 12561 },
+  { 0xfb05, G_UNICODE_NOT_PRESENT_OFFSET, 12565 },
+  { 0xfb06, G_UNICODE_NOT_PRESENT_OFFSET, 12565 },
+  { 0xfb13, G_UNICODE_NOT_PRESENT_OFFSET, 12568 },
+  { 0xfb14, G_UNICODE_NOT_PRESENT_OFFSET, 12573 },
+  { 0xfb15, G_UNICODE_NOT_PRESENT_OFFSET, 12578 },
+  { 0xfb16, G_UNICODE_NOT_PRESENT_OFFSET, 12583 },
+  { 0xfb17, G_UNICODE_NOT_PRESENT_OFFSET, 12588 },
+  { 0xfb1d, 12593, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb1f, 12598, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb20, G_UNICODE_NOT_PRESENT_OFFSET, 12603 },
   { 0xfb21, G_UNICODE_NOT_PRESENT_OFFSET, 5338 },
   { 0xfb22, G_UNICODE_NOT_PRESENT_OFFSET, 5347 },
-  { 0xfb23, G_UNICODE_NOT_PRESENT_OFFSET, 12603 },
-  { 0xfb24, G_UNICODE_NOT_PRESENT_OFFSET, 12606 },
-  { 0xfb25, G_UNICODE_NOT_PRESENT_OFFSET, 12609 },
-  { 0xfb26, G_UNICODE_NOT_PRESENT_OFFSET, 12612 },
-  { 0xfb27, G_UNICODE_NOT_PRESENT_OFFSET, 12615 },
-  { 0xfb28, G_UNICODE_NOT_PRESENT_OFFSET, 12618 },
+  { 0xfb23, G_UNICODE_NOT_PRESENT_OFFSET, 12606 },
+  { 0xfb24, G_UNICODE_NOT_PRESENT_OFFSET, 12609 },
+  { 0xfb25, G_UNICODE_NOT_PRESENT_OFFSET, 12612 },
+  { 0xfb26, G_UNICODE_NOT_PRESENT_OFFSET, 12615 },
+  { 0xfb27, G_UNICODE_NOT_PRESENT_OFFSET, 12618 },
+  { 0xfb28, G_UNICODE_NOT_PRESENT_OFFSET, 12621 },
   { 0xfb29, G_UNICODE_NOT_PRESENT_OFFSET, 5267 },
-  { 0xfb2a, 12621, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb2b, 12626, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb2c, 12631, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb2d, 12638, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb2e, 12645, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb2f, 12650, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb30, 12655, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb31, 12660, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb32, 12665, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb33, 12670, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb34, 12675, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb35, 12680, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb36, 12685, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb38, 12690, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb39, 12695, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb3a, 12700, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb3b, 12705, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb3c, 12710, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb3e, 12715, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb40, 12720, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb41, 12725, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb43, 12730, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb44, 12735, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb46, 12740, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb47, 12745, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb48, 12750, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb49, 12755, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb4a, 12760, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb4b, 12765, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb4c, 12770, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb4d, 12775, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb4e, 12780, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0xfb4f, G_UNICODE_NOT_PRESENT_OFFSET, 12785 },
-  { 0xfb50, G_UNICODE_NOT_PRESENT_OFFSET, 12790 },
-  { 0xfb51, G_UNICODE_NOT_PRESENT_OFFSET, 12790 },
-  { 0xfb52, G_UNICODE_NOT_PRESENT_OFFSET, 12793 },
-  { 0xfb53, G_UNICODE_NOT_PRESENT_OFFSET, 12793 },
-  { 0xfb54, G_UNICODE_NOT_PRESENT_OFFSET, 12793 },
-  { 0xfb55, G_UNICODE_NOT_PRESENT_OFFSET, 12793 },
-  { 0xfb56, G_UNICODE_NOT_PRESENT_OFFSET, 12796 },
-  { 0xfb57, G_UNICODE_NOT_PRESENT_OFFSET, 12796 },
-  { 0xfb58, G_UNICODE_NOT_PRESENT_OFFSET, 12796 },
-  { 0xfb59, G_UNICODE_NOT_PRESENT_OFFSET, 12796 },
-  { 0xfb5a, G_UNICODE_NOT_PRESENT_OFFSET, 12799 },
-  { 0xfb5b, G_UNICODE_NOT_PRESENT_OFFSET, 12799 },
-  { 0xfb5c, G_UNICODE_NOT_PRESENT_OFFSET, 12799 },
-  { 0xfb5d, G_UNICODE_NOT_PRESENT_OFFSET, 12799 },
-  { 0xfb5e, G_UNICODE_NOT_PRESENT_OFFSET, 12802 },
-  { 0xfb5f, G_UNICODE_NOT_PRESENT_OFFSET, 12802 },
-  { 0xfb60, G_UNICODE_NOT_PRESENT_OFFSET, 12802 },
-  { 0xfb61, G_UNICODE_NOT_PRESENT_OFFSET, 12802 },
-  { 0xfb62, G_UNICODE_NOT_PRESENT_OFFSET, 12805 },
-  { 0xfb63, G_UNICODE_NOT_PRESENT_OFFSET, 12805 },
-  { 0xfb64, G_UNICODE_NOT_PRESENT_OFFSET, 12805 },
-  { 0xfb65, G_UNICODE_NOT_PRESENT_OFFSET, 12805 },
-  { 0xfb66, G_UNICODE_NOT_PRESENT_OFFSET, 12808 },
-  { 0xfb67, G_UNICODE_NOT_PRESENT_OFFSET, 12808 },
-  { 0xfb68, G_UNICODE_NOT_PRESENT_OFFSET, 12808 },
-  { 0xfb69, G_UNICODE_NOT_PRESENT_OFFSET, 12808 },
-  { 0xfb6a, G_UNICODE_NOT_PRESENT_OFFSET, 12811 },
-  { 0xfb6b, G_UNICODE_NOT_PRESENT_OFFSET, 12811 },
-  { 0xfb6c, G_UNICODE_NOT_PRESENT_OFFSET, 12811 },
-  { 0xfb6d, G_UNICODE_NOT_PRESENT_OFFSET, 12811 },
-  { 0xfb6e, G_UNICODE_NOT_PRESENT_OFFSET, 12814 },
-  { 0xfb6f, G_UNICODE_NOT_PRESENT_OFFSET, 12814 },
-  { 0xfb70, G_UNICODE_NOT_PRESENT_OFFSET, 12814 },
-  { 0xfb71, G_UNICODE_NOT_PRESENT_OFFSET, 12814 },
-  { 0xfb72, G_UNICODE_NOT_PRESENT_OFFSET, 12817 },
-  { 0xfb73, G_UNICODE_NOT_PRESENT_OFFSET, 12817 },
-  { 0xfb74, G_UNICODE_NOT_PRESENT_OFFSET, 12817 },
-  { 0xfb75, G_UNICODE_NOT_PRESENT_OFFSET, 12817 },
-  { 0xfb76, G_UNICODE_NOT_PRESENT_OFFSET, 12820 },
-  { 0xfb77, G_UNICODE_NOT_PRESENT_OFFSET, 12820 },
-  { 0xfb78, G_UNICODE_NOT_PRESENT_OFFSET, 12820 },
-  { 0xfb79, G_UNICODE_NOT_PRESENT_OFFSET, 12820 },
-  { 0xfb7a, G_UNICODE_NOT_PRESENT_OFFSET, 12823 },
-  { 0xfb7b, G_UNICODE_NOT_PRESENT_OFFSET, 12823 },
-  { 0xfb7c, G_UNICODE_NOT_PRESENT_OFFSET, 12823 },
-  { 0xfb7d, G_UNICODE_NOT_PRESENT_OFFSET, 12823 },
-  { 0xfb7e, G_UNICODE_NOT_PRESENT_OFFSET, 12826 },
-  { 0xfb7f, G_UNICODE_NOT_PRESENT_OFFSET, 12826 },
-  { 0xfb80, G_UNICODE_NOT_PRESENT_OFFSET, 12826 },
-  { 0xfb81, G_UNICODE_NOT_PRESENT_OFFSET, 12826 },
-  { 0xfb82, G_UNICODE_NOT_PRESENT_OFFSET, 12829 },
-  { 0xfb83, G_UNICODE_NOT_PRESENT_OFFSET, 12829 },
-  { 0xfb84, G_UNICODE_NOT_PRESENT_OFFSET, 12832 },
-  { 0xfb85, G_UNICODE_NOT_PRESENT_OFFSET, 12832 },
-  { 0xfb86, G_UNICODE_NOT_PRESENT_OFFSET, 12835 },
-  { 0xfb87, G_UNICODE_NOT_PRESENT_OFFSET, 12835 },
-  { 0xfb88, G_UNICODE_NOT_PRESENT_OFFSET, 12838 },
-  { 0xfb89, G_UNICODE_NOT_PRESENT_OFFSET, 12838 },
-  { 0xfb8a, G_UNICODE_NOT_PRESENT_OFFSET, 12841 },
-  { 0xfb8b, G_UNICODE_NOT_PRESENT_OFFSET, 12841 },
-  { 0xfb8c, G_UNICODE_NOT_PRESENT_OFFSET, 12844 },
-  { 0xfb8d, G_UNICODE_NOT_PRESENT_OFFSET, 12844 },
-  { 0xfb8e, G_UNICODE_NOT_PRESENT_OFFSET, 12847 },
-  { 0xfb8f, G_UNICODE_NOT_PRESENT_OFFSET, 12847 },
-  { 0xfb90, G_UNICODE_NOT_PRESENT_OFFSET, 12847 },
-  { 0xfb91, G_UNICODE_NOT_PRESENT_OFFSET, 12847 },
-  { 0xfb92, G_UNICODE_NOT_PRESENT_OFFSET, 12850 },
-  { 0xfb93, G_UNICODE_NOT_PRESENT_OFFSET, 12850 },
-  { 0xfb94, G_UNICODE_NOT_PRESENT_OFFSET, 12850 },
-  { 0xfb95, G_UNICODE_NOT_PRESENT_OFFSET, 12850 },
-  { 0xfb96, G_UNICODE_NOT_PRESENT_OFFSET, 12853 },
-  { 0xfb97, G_UNICODE_NOT_PRESENT_OFFSET, 12853 },
-  { 0xfb98, G_UNICODE_NOT_PRESENT_OFFSET, 12853 },
-  { 0xfb99, G_UNICODE_NOT_PRESENT_OFFSET, 12853 },
-  { 0xfb9a, G_UNICODE_NOT_PRESENT_OFFSET, 12856 },
-  { 0xfb9b, G_UNICODE_NOT_PRESENT_OFFSET, 12856 },
-  { 0xfb9c, G_UNICODE_NOT_PRESENT_OFFSET, 12856 },
-  { 0xfb9d, G_UNICODE_NOT_PRESENT_OFFSET, 12856 },
-  { 0xfb9e, G_UNICODE_NOT_PRESENT_OFFSET, 12859 },
-  { 0xfb9f, G_UNICODE_NOT_PRESENT_OFFSET, 12859 },
-  { 0xfba0, G_UNICODE_NOT_PRESENT_OFFSET, 12862 },
-  { 0xfba1, G_UNICODE_NOT_PRESENT_OFFSET, 12862 },
-  { 0xfba2, G_UNICODE_NOT_PRESENT_OFFSET, 12862 },
-  { 0xfba3, G_UNICODE_NOT_PRESENT_OFFSET, 12862 },
+  { 0xfb2a, 12624, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb2b, 12629, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb2c, 12634, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb2d, 12641, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb2e, 12648, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb2f, 12653, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb30, 12658, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb31, 12663, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb32, 12668, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb33, 12673, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb34, 12678, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb35, 12683, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb36, 12688, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb38, 12693, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb39, 12698, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb3a, 12703, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb3b, 12708, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb3c, 12713, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb3e, 12718, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb40, 12723, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb41, 12728, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb43, 12733, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb44, 12738, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb46, 12743, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb47, 12748, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb48, 12753, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb49, 12758, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb4a, 12763, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb4b, 12768, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb4c, 12773, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb4d, 12778, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb4e, 12783, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xfb4f, G_UNICODE_NOT_PRESENT_OFFSET, 12788 },
+  { 0xfb50, G_UNICODE_NOT_PRESENT_OFFSET, 12793 },
+  { 0xfb51, G_UNICODE_NOT_PRESENT_OFFSET, 12793 },
+  { 0xfb52, G_UNICODE_NOT_PRESENT_OFFSET, 12796 },
+  { 0xfb53, G_UNICODE_NOT_PRESENT_OFFSET, 12796 },
+  { 0xfb54, G_UNICODE_NOT_PRESENT_OFFSET, 12796 },
+  { 0xfb55, G_UNICODE_NOT_PRESENT_OFFSET, 12796 },
+  { 0xfb56, G_UNICODE_NOT_PRESENT_OFFSET, 12799 },
+  { 0xfb57, G_UNICODE_NOT_PRESENT_OFFSET, 12799 },
+  { 0xfb58, G_UNICODE_NOT_PRESENT_OFFSET, 12799 },
+  { 0xfb59, G_UNICODE_NOT_PRESENT_OFFSET, 12799 },
+  { 0xfb5a, G_UNICODE_NOT_PRESENT_OFFSET, 12802 },
+  { 0xfb5b, G_UNICODE_NOT_PRESENT_OFFSET, 12802 },
+  { 0xfb5c, G_UNICODE_NOT_PRESENT_OFFSET, 12802 },
+  { 0xfb5d, G_UNICODE_NOT_PRESENT_OFFSET, 12802 },
+  { 0xfb5e, G_UNICODE_NOT_PRESENT_OFFSET, 12805 },
+  { 0xfb5f, G_UNICODE_NOT_PRESENT_OFFSET, 12805 },
+  { 0xfb60, G_UNICODE_NOT_PRESENT_OFFSET, 12805 },
+  { 0xfb61, G_UNICODE_NOT_PRESENT_OFFSET, 12805 },
+  { 0xfb62, G_UNICODE_NOT_PRESENT_OFFSET, 12808 },
+  { 0xfb63, G_UNICODE_NOT_PRESENT_OFFSET, 12808 },
+  { 0xfb64, G_UNICODE_NOT_PRESENT_OFFSET, 12808 },
+  { 0xfb65, G_UNICODE_NOT_PRESENT_OFFSET, 12808 },
+  { 0xfb66, G_UNICODE_NOT_PRESENT_OFFSET, 12811 },
+  { 0xfb67, G_UNICODE_NOT_PRESENT_OFFSET, 12811 },
+  { 0xfb68, G_UNICODE_NOT_PRESENT_OFFSET, 12811 },
+  { 0xfb69, G_UNICODE_NOT_PRESENT_OFFSET, 12811 },
+  { 0xfb6a, G_UNICODE_NOT_PRESENT_OFFSET, 12814 },
+  { 0xfb6b, G_UNICODE_NOT_PRESENT_OFFSET, 12814 },
+  { 0xfb6c, G_UNICODE_NOT_PRESENT_OFFSET, 12814 },
+  { 0xfb6d, G_UNICODE_NOT_PRESENT_OFFSET, 12814 },
+  { 0xfb6e, G_UNICODE_NOT_PRESENT_OFFSET, 12817 },
+  { 0xfb6f, G_UNICODE_NOT_PRESENT_OFFSET, 12817 },
+  { 0xfb70, G_UNICODE_NOT_PRESENT_OFFSET, 12817 },
+  { 0xfb71, G_UNICODE_NOT_PRESENT_OFFSET, 12817 },
+  { 0xfb72, G_UNICODE_NOT_PRESENT_OFFSET, 12820 },
+  { 0xfb73, G_UNICODE_NOT_PRESENT_OFFSET, 12820 },
+  { 0xfb74, G_UNICODE_NOT_PRESENT_OFFSET, 12820 },
+  { 0xfb75, G_UNICODE_NOT_PRESENT_OFFSET, 12820 },
+  { 0xfb76, G_UNICODE_NOT_PRESENT_OFFSET, 12823 },
+  { 0xfb77, G_UNICODE_NOT_PRESENT_OFFSET, 12823 },
+  { 0xfb78, G_UNICODE_NOT_PRESENT_OFFSET, 12823 },
+  { 0xfb79, G_UNICODE_NOT_PRESENT_OFFSET, 12823 },
+  { 0xfb7a, G_UNICODE_NOT_PRESENT_OFFSET, 12826 },
+  { 0xfb7b, G_UNICODE_NOT_PRESENT_OFFSET, 12826 },
+  { 0xfb7c, G_UNICODE_NOT_PRESENT_OFFSET, 12826 },
+  { 0xfb7d, G_UNICODE_NOT_PRESENT_OFFSET, 12826 },
+  { 0xfb7e, G_UNICODE_NOT_PRESENT_OFFSET, 12829 },
+  { 0xfb7f, G_UNICODE_NOT_PRESENT_OFFSET, 12829 },
+  { 0xfb80, G_UNICODE_NOT_PRESENT_OFFSET, 12829 },
+  { 0xfb81, G_UNICODE_NOT_PRESENT_OFFSET, 12829 },
+  { 0xfb82, G_UNICODE_NOT_PRESENT_OFFSET, 12832 },
+  { 0xfb83, G_UNICODE_NOT_PRESENT_OFFSET, 12832 },
+  { 0xfb84, G_UNICODE_NOT_PRESENT_OFFSET, 12835 },
+  { 0xfb85, G_UNICODE_NOT_PRESENT_OFFSET, 12835 },
+  { 0xfb86, G_UNICODE_NOT_PRESENT_OFFSET, 12838 },
+  { 0xfb87, G_UNICODE_NOT_PRESENT_OFFSET, 12838 },
+  { 0xfb88, G_UNICODE_NOT_PRESENT_OFFSET, 12841 },
+  { 0xfb89, G_UNICODE_NOT_PRESENT_OFFSET, 12841 },
+  { 0xfb8a, G_UNICODE_NOT_PRESENT_OFFSET, 12844 },
+  { 0xfb8b, G_UNICODE_NOT_PRESENT_OFFSET, 12844 },
+  { 0xfb8c, G_UNICODE_NOT_PRESENT_OFFSET, 12847 },
+  { 0xfb8d, G_UNICODE_NOT_PRESENT_OFFSET, 12847 },
+  { 0xfb8e, G_UNICODE_NOT_PRESENT_OFFSET, 12850 },
+  { 0xfb8f, G_UNICODE_NOT_PRESENT_OFFSET, 12850 },
+  { 0xfb90, G_UNICODE_NOT_PRESENT_OFFSET, 12850 },
+  { 0xfb91, G_UNICODE_NOT_PRESENT_OFFSET, 12850 },
+  { 0xfb92, G_UNICODE_NOT_PRESENT_OFFSET, 12853 },
+  { 0xfb93, G_UNICODE_NOT_PRESENT_OFFSET, 12853 },
+  { 0xfb94, G_UNICODE_NOT_PRESENT_OFFSET, 12853 },
+  { 0xfb95, G_UNICODE_NOT_PRESENT_OFFSET, 12853 },
+  { 0xfb96, G_UNICODE_NOT_PRESENT_OFFSET, 12856 },
+  { 0xfb97, G_UNICODE_NOT_PRESENT_OFFSET, 12856 },
+  { 0xfb98, G_UNICODE_NOT_PRESENT_OFFSET, 12856 },
+  { 0xfb99, G_UNICODE_NOT_PRESENT_OFFSET, 12856 },
+  { 0xfb9a, G_UNICODE_NOT_PRESENT_OFFSET, 12859 },
+  { 0xfb9b, G_UNICODE_NOT_PRESENT_OFFSET, 12859 },
+  { 0xfb9c, G_UNICODE_NOT_PRESENT_OFFSET, 12859 },
+  { 0xfb9d, G_UNICODE_NOT_PRESENT_OFFSET, 12859 },
+  { 0xfb9e, G_UNICODE_NOT_PRESENT_OFFSET, 12862 },
+  { 0xfb9f, G_UNICODE_NOT_PRESENT_OFFSET, 12862 },
+  { 0xfba0, G_UNICODE_NOT_PRESENT_OFFSET, 12865 },
+  { 0xfba1, G_UNICODE_NOT_PRESENT_OFFSET, 12865 },
+  { 0xfba2, G_UNICODE_NOT_PRESENT_OFFSET, 12865 },
+  { 0xfba3, G_UNICODE_NOT_PRESENT_OFFSET, 12865 },
   { 0xfba4, G_UNICODE_NOT_PRESENT_OFFSET, 1721 },
   { 0xfba5, G_UNICODE_NOT_PRESENT_OFFSET, 1721 },
-  { 0xfba6, G_UNICODE_NOT_PRESENT_OFFSET, 12865 },
-  { 0xfba7, G_UNICODE_NOT_PRESENT_OFFSET, 12865 },
-  { 0xfba8, G_UNICODE_NOT_PRESENT_OFFSET, 12865 },
-  { 0xfba9, G_UNICODE_NOT_PRESENT_OFFSET, 12865 },
-  { 0xfbaa, G_UNICODE_NOT_PRESENT_OFFSET, 12868 },
-  { 0xfbab, G_UNICODE_NOT_PRESENT_OFFSET, 12868 },
-  { 0xfbac, G_UNICODE_NOT_PRESENT_OFFSET, 12868 },
-  { 0xfbad, G_UNICODE_NOT_PRESENT_OFFSET, 12868 },
-  { 0xfbae, G_UNICODE_NOT_PRESENT_OFFSET, 12871 },
-  { 0xfbaf, G_UNICODE_NOT_PRESENT_OFFSET, 12871 },
+  { 0xfba6, G_UNICODE_NOT_PRESENT_OFFSET, 12868 },
+  { 0xfba7, G_UNICODE_NOT_PRESENT_OFFSET, 12868 },
+  { 0xfba8, G_UNICODE_NOT_PRESENT_OFFSET, 12868 },
+  { 0xfba9, G_UNICODE_NOT_PRESENT_OFFSET, 12868 },
+  { 0xfbaa, G_UNICODE_NOT_PRESENT_OFFSET, 12871 },
+  { 0xfbab, G_UNICODE_NOT_PRESENT_OFFSET, 12871 },
+  { 0xfbac, G_UNICODE_NOT_PRESENT_OFFSET, 12871 },
+  { 0xfbad, G_UNICODE_NOT_PRESENT_OFFSET, 12871 },
+  { 0xfbae, G_UNICODE_NOT_PRESENT_OFFSET, 12874 },
+  { 0xfbaf, G_UNICODE_NOT_PRESENT_OFFSET, 12874 },
   { 0xfbb0, G_UNICODE_NOT_PRESENT_OFFSET, 1731 },
   { 0xfbb1, G_UNICODE_NOT_PRESENT_OFFSET, 1731 },
-  { 0xfbd3, G_UNICODE_NOT_PRESENT_OFFSET, 12874 },
-  { 0xfbd4, G_UNICODE_NOT_PRESENT_OFFSET, 12874 },
-  { 0xfbd5, G_UNICODE_NOT_PRESENT_OFFSET, 12874 },
-  { 0xfbd6, G_UNICODE_NOT_PRESENT_OFFSET, 12874 },
-  { 0xfbd7, G_UNICODE_NOT_PRESENT_OFFSET, 12877 },
-  { 0xfbd8, G_UNICODE_NOT_PRESENT_OFFSET, 12877 },
-  { 0xfbd9, G_UNICODE_NOT_PRESENT_OFFSET, 12880 },
-  { 0xfbda, G_UNICODE_NOT_PRESENT_OFFSET, 12880 },
-  { 0xfbdb, G_UNICODE_NOT_PRESENT_OFFSET, 12883 },
-  { 0xfbdc, G_UNICODE_NOT_PRESENT_OFFSET, 12883 },
+  { 0xfbd3, G_UNICODE_NOT_PRESENT_OFFSET, 12877 },
+  { 0xfbd4, G_UNICODE_NOT_PRESENT_OFFSET, 12877 },
+  { 0xfbd5, G_UNICODE_NOT_PRESENT_OFFSET, 12877 },
+  { 0xfbd6, G_UNICODE_NOT_PRESENT_OFFSET, 12877 },
+  { 0xfbd7, G_UNICODE_NOT_PRESENT_OFFSET, 12880 },
+  { 0xfbd8, G_UNICODE_NOT_PRESENT_OFFSET, 12880 },
+  { 0xfbd9, G_UNICODE_NOT_PRESENT_OFFSET, 12883 },
+  { 0xfbda, G_UNICODE_NOT_PRESENT_OFFSET, 12883 },
+  { 0xfbdb, G_UNICODE_NOT_PRESENT_OFFSET, 12886 },
+  { 0xfbdc, G_UNICODE_NOT_PRESENT_OFFSET, 12886 },
   { 0xfbdd, G_UNICODE_NOT_PRESENT_OFFSET, 1711 },
-  { 0xfbde, G_UNICODE_NOT_PRESENT_OFFSET, 12886 },
-  { 0xfbdf, G_UNICODE_NOT_PRESENT_OFFSET, 12886 },
-  { 0xfbe0, G_UNICODE_NOT_PRESENT_OFFSET, 12889 },
-  { 0xfbe1, G_UNICODE_NOT_PRESENT_OFFSET, 12889 },
-  { 0xfbe2, G_UNICODE_NOT_PRESENT_OFFSET, 12892 },
-  { 0xfbe3, G_UNICODE_NOT_PRESENT_OFFSET, 12892 },
-  { 0xfbe4, G_UNICODE_NOT_PRESENT_OFFSET, 12895 },
-  { 0xfbe5, G_UNICODE_NOT_PRESENT_OFFSET, 12895 },
-  { 0xfbe6, G_UNICODE_NOT_PRESENT_OFFSET, 12895 },
-  { 0xfbe7, G_UNICODE_NOT_PRESENT_OFFSET, 12895 },
-  { 0xfbe8, G_UNICODE_NOT_PRESENT_OFFSET, 12898 },
-  { 0xfbe9, G_UNICODE_NOT_PRESENT_OFFSET, 12898 },
-  { 0xfbea, G_UNICODE_NOT_PRESENT_OFFSET, 12901 },
-  { 0xfbeb, G_UNICODE_NOT_PRESENT_OFFSET, 12901 },
-  { 0xfbec, G_UNICODE_NOT_PRESENT_OFFSET, 12908 },
-  { 0xfbed, G_UNICODE_NOT_PRESENT_OFFSET, 12908 },
-  { 0xfbee, G_UNICODE_NOT_PRESENT_OFFSET, 12915 },
-  { 0xfbef, G_UNICODE_NOT_PRESENT_OFFSET, 12915 },
-  { 0xfbf0, G_UNICODE_NOT_PRESENT_OFFSET, 12922 },
-  { 0xfbf1, G_UNICODE_NOT_PRESENT_OFFSET, 12922 },
-  { 0xfbf2, G_UNICODE_NOT_PRESENT_OFFSET, 12929 },
-  { 0xfbf3, G_UNICODE_NOT_PRESENT_OFFSET, 12929 },
-  { 0xfbf4, G_UNICODE_NOT_PRESENT_OFFSET, 12936 },
-  { 0xfbf5, G_UNICODE_NOT_PRESENT_OFFSET, 12936 },
-  { 0xfbf6, G_UNICODE_NOT_PRESENT_OFFSET, 12943 },
-  { 0xfbf7, G_UNICODE_NOT_PRESENT_OFFSET, 12943 },
-  { 0xfbf8, G_UNICODE_NOT_PRESENT_OFFSET, 12943 },
-  { 0xfbf9, G_UNICODE_NOT_PRESENT_OFFSET, 12950 },
-  { 0xfbfa, G_UNICODE_NOT_PRESENT_OFFSET, 12950 },
-  { 0xfbfb, G_UNICODE_NOT_PRESENT_OFFSET, 12950 },
-  { 0xfbfc, G_UNICODE_NOT_PRESENT_OFFSET, 12957 },
-  { 0xfbfd, G_UNICODE_NOT_PRESENT_OFFSET, 12957 },
-  { 0xfbfe, G_UNICODE_NOT_PRESENT_OFFSET, 12957 },
-  { 0xfbff, G_UNICODE_NOT_PRESENT_OFFSET, 12957 },
-  { 0xfc00, G_UNICODE_NOT_PRESENT_OFFSET, 12960 },
-  { 0xfc01, G_UNICODE_NOT_PRESENT_OFFSET, 12967 },
-  { 0xfc02, G_UNICODE_NOT_PRESENT_OFFSET, 12974 },
-  { 0xfc03, G_UNICODE_NOT_PRESENT_OFFSET, 12950 },
-  { 0xfc04, G_UNICODE_NOT_PRESENT_OFFSET, 12981 },
-  { 0xfc05, G_UNICODE_NOT_PRESENT_OFFSET, 12988 },
-  { 0xfc06, G_UNICODE_NOT_PRESENT_OFFSET, 12993 },
-  { 0xfc07, G_UNICODE_NOT_PRESENT_OFFSET, 12998 },
-  { 0xfc08, G_UNICODE_NOT_PRESENT_OFFSET, 13003 },
-  { 0xfc09, G_UNICODE_NOT_PRESENT_OFFSET, 13008 },
-  { 0xfc0a, G_UNICODE_NOT_PRESENT_OFFSET, 13013 },
-  { 0xfc0b, G_UNICODE_NOT_PRESENT_OFFSET, 13018 },
-  { 0xfc0c, G_UNICODE_NOT_PRESENT_OFFSET, 13023 },
-  { 0xfc0d, G_UNICODE_NOT_PRESENT_OFFSET, 13028 },
-  { 0xfc0e, G_UNICODE_NOT_PRESENT_OFFSET, 13033 },
-  { 0xfc0f, G_UNICODE_NOT_PRESENT_OFFSET, 13038 },
-  { 0xfc10, G_UNICODE_NOT_PRESENT_OFFSET, 13043 },
-  { 0xfc11, G_UNICODE_NOT_PRESENT_OFFSET, 13048 },
-  { 0xfc12, G_UNICODE_NOT_PRESENT_OFFSET, 13053 },
-  { 0xfc13, G_UNICODE_NOT_PRESENT_OFFSET, 13058 },
-  { 0xfc14, G_UNICODE_NOT_PRESENT_OFFSET, 13063 },
-  { 0xfc15, G_UNICODE_NOT_PRESENT_OFFSET, 13068 },
-  { 0xfc16, G_UNICODE_NOT_PRESENT_OFFSET, 13073 },
-  { 0xfc17, G_UNICODE_NOT_PRESENT_OFFSET, 13078 },
-  { 0xfc18, G_UNICODE_NOT_PRESENT_OFFSET, 13083 },
-  { 0xfc19, G_UNICODE_NOT_PRESENT_OFFSET, 13088 },
-  { 0xfc1a, G_UNICODE_NOT_PRESENT_OFFSET, 13093 },
-  { 0xfc1b, G_UNICODE_NOT_PRESENT_OFFSET, 13098 },
-  { 0xfc1c, G_UNICODE_NOT_PRESENT_OFFSET, 13103 },
-  { 0xfc1d, G_UNICODE_NOT_PRESENT_OFFSET, 13108 },
-  { 0xfc1e, G_UNICODE_NOT_PRESENT_OFFSET, 13113 },
-  { 0xfc1f, G_UNICODE_NOT_PRESENT_OFFSET, 13118 },
-  { 0xfc20, G_UNICODE_NOT_PRESENT_OFFSET, 13123 },
-  { 0xfc21, G_UNICODE_NOT_PRESENT_OFFSET, 13128 },
-  { 0xfc22, G_UNICODE_NOT_PRESENT_OFFSET, 13133 },
-  { 0xfc23, G_UNICODE_NOT_PRESENT_OFFSET, 13138 },
-  { 0xfc24, G_UNICODE_NOT_PRESENT_OFFSET, 13143 },
-  { 0xfc25, G_UNICODE_NOT_PRESENT_OFFSET, 13148 },
-  { 0xfc26, G_UNICODE_NOT_PRESENT_OFFSET, 13153 },
-  { 0xfc27, G_UNICODE_NOT_PRESENT_OFFSET, 13158 },
-  { 0xfc28, G_UNICODE_NOT_PRESENT_OFFSET, 13163 },
-  { 0xfc29, G_UNICODE_NOT_PRESENT_OFFSET, 13168 },
-  { 0xfc2a, G_UNICODE_NOT_PRESENT_OFFSET, 13173 },
-  { 0xfc2b, G_UNICODE_NOT_PRESENT_OFFSET, 13178 },
-  { 0xfc2c, G_UNICODE_NOT_PRESENT_OFFSET, 13183 },
-  { 0xfc2d, G_UNICODE_NOT_PRESENT_OFFSET, 13188 },
-  { 0xfc2e, G_UNICODE_NOT_PRESENT_OFFSET, 13193 },
-  { 0xfc2f, G_UNICODE_NOT_PRESENT_OFFSET, 13198 },
-  { 0xfc30, G_UNICODE_NOT_PRESENT_OFFSET, 13203 },
-  { 0xfc31, G_UNICODE_NOT_PRESENT_OFFSET, 13208 },
-  { 0xfc32, G_UNICODE_NOT_PRESENT_OFFSET, 13213 },
-  { 0xfc33, G_UNICODE_NOT_PRESENT_OFFSET, 13218 },
-  { 0xfc34, G_UNICODE_NOT_PRESENT_OFFSET, 13223 },
-  { 0xfc35, G_UNICODE_NOT_PRESENT_OFFSET, 13228 },
-  { 0xfc36, G_UNICODE_NOT_PRESENT_OFFSET, 13233 },
-  { 0xfc37, G_UNICODE_NOT_PRESENT_OFFSET, 13238 },
-  { 0xfc38, G_UNICODE_NOT_PRESENT_OFFSET, 13243 },
-  { 0xfc39, G_UNICODE_NOT_PRESENT_OFFSET, 13248 },
-  { 0xfc3a, G_UNICODE_NOT_PRESENT_OFFSET, 13253 },
-  { 0xfc3b, G_UNICODE_NOT_PRESENT_OFFSET, 13258 },
-  { 0xfc3c, G_UNICODE_NOT_PRESENT_OFFSET, 13263 },
-  { 0xfc3d, G_UNICODE_NOT_PRESENT_OFFSET, 13268 },
-  { 0xfc3e, G_UNICODE_NOT_PRESENT_OFFSET, 13273 },
-  { 0xfc3f, G_UNICODE_NOT_PRESENT_OFFSET, 13278 },
-  { 0xfc40, G_UNICODE_NOT_PRESENT_OFFSET, 13283 },
-  { 0xfc41, G_UNICODE_NOT_PRESENT_OFFSET, 13288 },
-  { 0xfc42, G_UNICODE_NOT_PRESENT_OFFSET, 13293 },
-  { 0xfc43, G_UNICODE_NOT_PRESENT_OFFSET, 13298 },
-  { 0xfc44, G_UNICODE_NOT_PRESENT_OFFSET, 13303 },
-  { 0xfc45, G_UNICODE_NOT_PRESENT_OFFSET, 13308 },
-  { 0xfc46, G_UNICODE_NOT_PRESENT_OFFSET, 13313 },
-  { 0xfc47, G_UNICODE_NOT_PRESENT_OFFSET, 13318 },
-  { 0xfc48, G_UNICODE_NOT_PRESENT_OFFSET, 13323 },
-  { 0xfc49, G_UNICODE_NOT_PRESENT_OFFSET, 13328 },
-  { 0xfc4a, G_UNICODE_NOT_PRESENT_OFFSET, 13333 },
-  { 0xfc4b, G_UNICODE_NOT_PRESENT_OFFSET, 13338 },
-  { 0xfc4c, G_UNICODE_NOT_PRESENT_OFFSET, 13343 },
-  { 0xfc4d, G_UNICODE_NOT_PRESENT_OFFSET, 13348 },
-  { 0xfc4e, G_UNICODE_NOT_PRESENT_OFFSET, 13353 },
-  { 0xfc4f, G_UNICODE_NOT_PRESENT_OFFSET, 13358 },
-  { 0xfc50, G_UNICODE_NOT_PRESENT_OFFSET, 13363 },
-  { 0xfc51, G_UNICODE_NOT_PRESENT_OFFSET, 13368 },
-  { 0xfc52, G_UNICODE_NOT_PRESENT_OFFSET, 13373 },
-  { 0xfc53, G_UNICODE_NOT_PRESENT_OFFSET, 13378 },
-  { 0xfc54, G_UNICODE_NOT_PRESENT_OFFSET, 13383 },
-  { 0xfc55, G_UNICODE_NOT_PRESENT_OFFSET, 13388 },
-  { 0xfc56, G_UNICODE_NOT_PRESENT_OFFSET, 13393 },
-  { 0xfc57, G_UNICODE_NOT_PRESENT_OFFSET, 13398 },
-  { 0xfc58, G_UNICODE_NOT_PRESENT_OFFSET, 13403 },
-  { 0xfc59, G_UNICODE_NOT_PRESENT_OFFSET, 13408 },
-  { 0xfc5a, G_UNICODE_NOT_PRESENT_OFFSET, 13413 },
-  { 0xfc5b, G_UNICODE_NOT_PRESENT_OFFSET, 13418 },
-  { 0xfc5c, G_UNICODE_NOT_PRESENT_OFFSET, 13423 },
-  { 0xfc5d, G_UNICODE_NOT_PRESENT_OFFSET, 13428 },
-  { 0xfc5e, G_UNICODE_NOT_PRESENT_OFFSET, 13433 },
-  { 0xfc5f, G_UNICODE_NOT_PRESENT_OFFSET, 13439 },
-  { 0xfc60, G_UNICODE_NOT_PRESENT_OFFSET, 13445 },
-  { 0xfc61, G_UNICODE_NOT_PRESENT_OFFSET, 13451 },
-  { 0xfc62, G_UNICODE_NOT_PRESENT_OFFSET, 13457 },
-  { 0xfc63, G_UNICODE_NOT_PRESENT_OFFSET, 13463 },
-  { 0xfc64, G_UNICODE_NOT_PRESENT_OFFSET, 13469 },
-  { 0xfc65, G_UNICODE_NOT_PRESENT_OFFSET, 13476 },
-  { 0xfc66, G_UNICODE_NOT_PRESENT_OFFSET, 12974 },
-  { 0xfc67, G_UNICODE_NOT_PRESENT_OFFSET, 13483 },
-  { 0xfc68, G_UNICODE_NOT_PRESENT_OFFSET, 12950 },
-  { 0xfc69, G_UNICODE_NOT_PRESENT_OFFSET, 12981 },
-  { 0xfc6a, G_UNICODE_NOT_PRESENT_OFFSET, 13490 },
-  { 0xfc6b, G_UNICODE_NOT_PRESENT_OFFSET, 13495 },
-  { 0xfc6c, G_UNICODE_NOT_PRESENT_OFFSET, 13003 },
-  { 0xfc6d, G_UNICODE_NOT_PRESENT_OFFSET, 13500 },
-  { 0xfc6e, G_UNICODE_NOT_PRESENT_OFFSET, 13008 },
-  { 0xfc6f, G_UNICODE_NOT_PRESENT_OFFSET, 13013 },
-  { 0xfc70, G_UNICODE_NOT_PRESENT_OFFSET, 13505 },
-  { 0xfc71, G_UNICODE_NOT_PRESENT_OFFSET, 13510 },
-  { 0xfc72, G_UNICODE_NOT_PRESENT_OFFSET, 13033 },
-  { 0xfc73, G_UNICODE_NOT_PRESENT_OFFSET, 13515 },
-  { 0xfc74, G_UNICODE_NOT_PRESENT_OFFSET, 13038 },
-  { 0xfc75, G_UNICODE_NOT_PRESENT_OFFSET, 13043 },
-  { 0xfc76, G_UNICODE_NOT_PRESENT_OFFSET, 13520 },
-  { 0xfc77, G_UNICODE_NOT_PRESENT_OFFSET, 13525 },
-  { 0xfc78, G_UNICODE_NOT_PRESENT_OFFSET, 13053 },
-  { 0xfc79, G_UNICODE_NOT_PRESENT_OFFSET, 13530 },
-  { 0xfc7a, G_UNICODE_NOT_PRESENT_OFFSET, 13058 },
-  { 0xfc7b, G_UNICODE_NOT_PRESENT_OFFSET, 13063 },
-  { 0xfc7c, G_UNICODE_NOT_PRESENT_OFFSET, 13208 },
-  { 0xfc7d, G_UNICODE_NOT_PRESENT_OFFSET, 13213 },
-  { 0xfc7e, G_UNICODE_NOT_PRESENT_OFFSET, 13228 },
-  { 0xfc7f, G_UNICODE_NOT_PRESENT_OFFSET, 13233 },
-  { 0xfc80, G_UNICODE_NOT_PRESENT_OFFSET, 13238 },
-  { 0xfc81, G_UNICODE_NOT_PRESENT_OFFSET, 13258 },
-  { 0xfc82, G_UNICODE_NOT_PRESENT_OFFSET, 13263 },
-  { 0xfc83, G_UNICODE_NOT_PRESENT_OFFSET, 13268 },
-  { 0xfc84, G_UNICODE_NOT_PRESENT_OFFSET, 13273 },
-  { 0xfc85, G_UNICODE_NOT_PRESENT_OFFSET, 13293 },
-  { 0xfc86, G_UNICODE_NOT_PRESENT_OFFSET, 13298 },
-  { 0xfc87, G_UNICODE_NOT_PRESENT_OFFSET, 13303 },
-  { 0xfc88, G_UNICODE_NOT_PRESENT_OFFSET, 13535 },
-  { 0xfc89, G_UNICODE_NOT_PRESENT_OFFSET, 13323 },
-  { 0xfc8a, G_UNICODE_NOT_PRESENT_OFFSET, 13540 },
-  { 0xfc8b, G_UNICODE_NOT_PRESENT_OFFSET, 13545 },
-  { 0xfc8c, G_UNICODE_NOT_PRESENT_OFFSET, 13353 },
-  { 0xfc8d, G_UNICODE_NOT_PRESENT_OFFSET, 13550 },
-  { 0xfc8e, G_UNICODE_NOT_PRESENT_OFFSET, 13358 },
-  { 0xfc8f, G_UNICODE_NOT_PRESENT_OFFSET, 13363 },
-  { 0xfc90, G_UNICODE_NOT_PRESENT_OFFSET, 13428 },
-  { 0xfc91, G_UNICODE_NOT_PRESENT_OFFSET, 13555 },
-  { 0xfc92, G_UNICODE_NOT_PRESENT_OFFSET, 13560 },
-  { 0xfc93, G_UNICODE_NOT_PRESENT_OFFSET, 13403 },
-  { 0xfc94, G_UNICODE_NOT_PRESENT_OFFSET, 13565 },
-  { 0xfc95, G_UNICODE_NOT_PRESENT_OFFSET, 13408 },
-  { 0xfc96, G_UNICODE_NOT_PRESENT_OFFSET, 13413 },
-  { 0xfc97, G_UNICODE_NOT_PRESENT_OFFSET, 12960 },
-  { 0xfc98, G_UNICODE_NOT_PRESENT_OFFSET, 12967 },
-  { 0xfc99, G_UNICODE_NOT_PRESENT_OFFSET, 13570 },
-  { 0xfc9a, G_UNICODE_NOT_PRESENT_OFFSET, 12974 },
-  { 0xfc9b, G_UNICODE_NOT_PRESENT_OFFSET, 13577 },
-  { 0xfc9c, G_UNICODE_NOT_PRESENT_OFFSET, 12988 },
-  { 0xfc9d, G_UNICODE_NOT_PRESENT_OFFSET, 12993 },
-  { 0xfc9e, G_UNICODE_NOT_PRESENT_OFFSET, 12998 },
-  { 0xfc9f, G_UNICODE_NOT_PRESENT_OFFSET, 13003 },
-  { 0xfca0, G_UNICODE_NOT_PRESENT_OFFSET, 13584 },
-  { 0xfca1, G_UNICODE_NOT_PRESENT_OFFSET, 13018 },
-  { 0xfca2, G_UNICODE_NOT_PRESENT_OFFSET, 13023 },
-  { 0xfca3, G_UNICODE_NOT_PRESENT_OFFSET, 13028 },
-  { 0xfca4, G_UNICODE_NOT_PRESENT_OFFSET, 13033 },
-  { 0xfca5, G_UNICODE_NOT_PRESENT_OFFSET, 13589 },
-  { 0xfca6, G_UNICODE_NOT_PRESENT_OFFSET, 13053 },
-  { 0xfca7, G_UNICODE_NOT_PRESENT_OFFSET, 13068 },
-  { 0xfca8, G_UNICODE_NOT_PRESENT_OFFSET, 13073 },
-  { 0xfca9, G_UNICODE_NOT_PRESENT_OFFSET, 13078 },
-  { 0xfcaa, G_UNICODE_NOT_PRESENT_OFFSET, 13083 },
-  { 0xfcab, G_UNICODE_NOT_PRESENT_OFFSET, 13088 },
-  { 0xfcac, G_UNICODE_NOT_PRESENT_OFFSET, 13098 },
-  { 0xfcad, G_UNICODE_NOT_PRESENT_OFFSET, 13103 },
-  { 0xfcae, G_UNICODE_NOT_PRESENT_OFFSET, 13108 },
-  { 0xfcaf, G_UNICODE_NOT_PRESENT_OFFSET, 13113 },
-  { 0xfcb0, G_UNICODE_NOT_PRESENT_OFFSET, 13118 },
-  { 0xfcb1, G_UNICODE_NOT_PRESENT_OFFSET, 13123 },
-  { 0xfcb2, G_UNICODE_NOT_PRESENT_OFFSET, 13594 },
-  { 0xfcb3, G_UNICODE_NOT_PRESENT_OFFSET, 13128 },
-  { 0xfcb4, G_UNICODE_NOT_PRESENT_OFFSET, 13133 },
-  { 0xfcb5, G_UNICODE_NOT_PRESENT_OFFSET, 13138 },
-  { 0xfcb6, G_UNICODE_NOT_PRESENT_OFFSET, 13143 },
-  { 0xfcb7, G_UNICODE_NOT_PRESENT_OFFSET, 13148 },
-  { 0xfcb8, G_UNICODE_NOT_PRESENT_OFFSET, 13153 },
-  { 0xfcb9, G_UNICODE_NOT_PRESENT_OFFSET, 13163 },
-  { 0xfcba, G_UNICODE_NOT_PRESENT_OFFSET, 13168 },
-  { 0xfcbb, G_UNICODE_NOT_PRESENT_OFFSET, 13173 },
-  { 0xfcbc, G_UNICODE_NOT_PRESENT_OFFSET, 13178 },
-  { 0xfcbd, G_UNICODE_NOT_PRESENT_OFFSET, 13183 },
-  { 0xfcbe, G_UNICODE_NOT_PRESENT_OFFSET, 13188 },
-  { 0xfcbf, G_UNICODE_NOT_PRESENT_OFFSET, 13193 },
-  { 0xfcc0, G_UNICODE_NOT_PRESENT_OFFSET, 13198 },
-  { 0xfcc1, G_UNICODE_NOT_PRESENT_OFFSET, 13203 },
-  { 0xfcc2, G_UNICODE_NOT_PRESENT_OFFSET, 13218 },
-  { 0xfcc3, G_UNICODE_NOT_PRESENT_OFFSET, 13223 },
-  { 0xfcc4, G_UNICODE_NOT_PRESENT_OFFSET, 13243 },
-  { 0xfcc5, G_UNICODE_NOT_PRESENT_OFFSET, 13248 },
-  { 0xfcc6, G_UNICODE_NOT_PRESENT_OFFSET, 13253 },
-  { 0xfcc7, G_UNICODE_NOT_PRESENT_OFFSET, 13258 },
-  { 0xfcc8, G_UNICODE_NOT_PRESENT_OFFSET, 13263 },
-  { 0xfcc9, G_UNICODE_NOT_PRESENT_OFFSET, 13278 },
-  { 0xfcca, G_UNICODE_NOT_PRESENT_OFFSET, 13283 },
-  { 0xfccb, G_UNICODE_NOT_PRESENT_OFFSET, 13288 },
-  { 0xfccc, G_UNICODE_NOT_PRESENT_OFFSET, 13293 },
-  { 0xfccd, G_UNICODE_NOT_PRESENT_OFFSET, 13599 },
-  { 0xfcce, G_UNICODE_NOT_PRESENT_OFFSET, 13308 },
-  { 0xfccf, G_UNICODE_NOT_PRESENT_OFFSET, 13313 },
-  { 0xfcd0, G_UNICODE_NOT_PRESENT_OFFSET, 13318 },
-  { 0xfcd1, G_UNICODE_NOT_PRESENT_OFFSET, 13323 },
-  { 0xfcd2, G_UNICODE_NOT_PRESENT_OFFSET, 13338 },
-  { 0xfcd3, G_UNICODE_NOT_PRESENT_OFFSET, 13343 },
-  { 0xfcd4, G_UNICODE_NOT_PRESENT_OFFSET, 13348 },
-  { 0xfcd5, G_UNICODE_NOT_PRESENT_OFFSET, 13353 },
-  { 0xfcd6, G_UNICODE_NOT_PRESENT_OFFSET, 13604 },
-  { 0xfcd7, G_UNICODE_NOT_PRESENT_OFFSET, 13368 },
-  { 0xfcd8, G_UNICODE_NOT_PRESENT_OFFSET, 13373 },
-  { 0xfcd9, G_UNICODE_NOT_PRESENT_OFFSET, 13609 },
-  { 0xfcda, G_UNICODE_NOT_PRESENT_OFFSET, 13388 },
-  { 0xfcdb, G_UNICODE_NOT_PRESENT_OFFSET, 13393 },
-  { 0xfcdc, G_UNICODE_NOT_PRESENT_OFFSET, 13398 },
-  { 0xfcdd, G_UNICODE_NOT_PRESENT_OFFSET, 13403 },
-  { 0xfcde, G_UNICODE_NOT_PRESENT_OFFSET, 13614 },
-  { 0xfcdf, G_UNICODE_NOT_PRESENT_OFFSET, 12974 },
-  { 0xfce0, G_UNICODE_NOT_PRESENT_OFFSET, 13577 },
-  { 0xfce1, G_UNICODE_NOT_PRESENT_OFFSET, 13003 },
-  { 0xfce2, G_UNICODE_NOT_PRESENT_OFFSET, 13584 },
-  { 0xfce3, G_UNICODE_NOT_PRESENT_OFFSET, 13033 },
-  { 0xfce4, G_UNICODE_NOT_PRESENT_OFFSET, 13589 },
-  { 0xfce5, G_UNICODE_NOT_PRESENT_OFFSET, 13053 },
-  { 0xfce6, G_UNICODE_NOT_PRESENT_OFFSET, 13619 },
-  { 0xfce7, G_UNICODE_NOT_PRESENT_OFFSET, 13118 },
-  { 0xfce8, G_UNICODE_NOT_PRESENT_OFFSET, 13624 },
-  { 0xfce9, G_UNICODE_NOT_PRESENT_OFFSET, 13629 },
-  { 0xfcea, G_UNICODE_NOT_PRESENT_OFFSET, 13634 },
-  { 0xfceb, G_UNICODE_NOT_PRESENT_OFFSET, 13258 },
-  { 0xfcec, G_UNICODE_NOT_PRESENT_OFFSET, 13263 },
-  { 0xfced, G_UNICODE_NOT_PRESENT_OFFSET, 13293 },
-  { 0xfcee, G_UNICODE_NOT_PRESENT_OFFSET, 13353 },
-  { 0xfcef, G_UNICODE_NOT_PRESENT_OFFSET, 13604 },
-  { 0xfcf0, G_UNICODE_NOT_PRESENT_OFFSET, 13403 },
-  { 0xfcf1, G_UNICODE_NOT_PRESENT_OFFSET, 13614 },
-  { 0xfcf2, G_UNICODE_NOT_PRESENT_OFFSET, 13639 },
-  { 0xfcf3, G_UNICODE_NOT_PRESENT_OFFSET, 13646 },
-  { 0xfcf4, G_UNICODE_NOT_PRESENT_OFFSET, 13653 },
-  { 0xfcf5, G_UNICODE_NOT_PRESENT_OFFSET, 13660 },
-  { 0xfcf6, G_UNICODE_NOT_PRESENT_OFFSET, 13665 },
-  { 0xfcf7, G_UNICODE_NOT_PRESENT_OFFSET, 13670 },
-  { 0xfcf8, G_UNICODE_NOT_PRESENT_OFFSET, 13675 },
-  { 0xfcf9, G_UNICODE_NOT_PRESENT_OFFSET, 13680 },
-  { 0xfcfa, G_UNICODE_NOT_PRESENT_OFFSET, 13685 },
-  { 0xfcfb, G_UNICODE_NOT_PRESENT_OFFSET, 13690 },
-  { 0xfcfc, G_UNICODE_NOT_PRESENT_OFFSET, 13695 },
-  { 0xfcfd, G_UNICODE_NOT_PRESENT_OFFSET, 13700 },
-  { 0xfcfe, G_UNICODE_NOT_PRESENT_OFFSET, 13705 },
-  { 0xfcff, G_UNICODE_NOT_PRESENT_OFFSET, 13710 },
-  { 0xfd00, G_UNICODE_NOT_PRESENT_OFFSET, 13715 },
-  { 0xfd01, G_UNICODE_NOT_PRESENT_OFFSET, 13720 },
-  { 0xfd02, G_UNICODE_NOT_PRESENT_OFFSET, 13725 },
-  { 0xfd03, G_UNICODE_NOT_PRESENT_OFFSET, 13730 },
-  { 0xfd04, G_UNICODE_NOT_PRESENT_OFFSET, 13735 },
-  { 0xfd05, G_UNICODE_NOT_PRESENT_OFFSET, 13740 },
-  { 0xfd06, G_UNICODE_NOT_PRESENT_OFFSET, 13745 },
-  { 0xfd07, G_UNICODE_NOT_PRESENT_OFFSET, 13750 },
-  { 0xfd08, G_UNICODE_NOT_PRESENT_OFFSET, 13755 },
-  { 0xfd09, G_UNICODE_NOT_PRESENT_OFFSET, 13760 },
-  { 0xfd0a, G_UNICODE_NOT_PRESENT_OFFSET, 13765 },
-  { 0xfd0b, G_UNICODE_NOT_PRESENT_OFFSET, 13770 },
-  { 0xfd0c, G_UNICODE_NOT_PRESENT_OFFSET, 13629 },
-  { 0xfd0d, G_UNICODE_NOT_PRESENT_OFFSET, 13775 },
-  { 0xfd0e, G_UNICODE_NOT_PRESENT_OFFSET, 13780 },
-  { 0xfd0f, G_UNICODE_NOT_PRESENT_OFFSET, 13785 },
-  { 0xfd10, G_UNICODE_NOT_PRESENT_OFFSET, 13790 },
-  { 0xfd11, G_UNICODE_NOT_PRESENT_OFFSET, 13660 },
-  { 0xfd12, G_UNICODE_NOT_PRESENT_OFFSET, 13665 },
-  { 0xfd13, G_UNICODE_NOT_PRESENT_OFFSET, 13670 },
-  { 0xfd14, G_UNICODE_NOT_PRESENT_OFFSET, 13675 },
-  { 0xfd15, G_UNICODE_NOT_PRESENT_OFFSET, 13680 },
-  { 0xfd16, G_UNICODE_NOT_PRESENT_OFFSET, 13685 },
-  { 0xfd17, G_UNICODE_NOT_PRESENT_OFFSET, 13690 },
-  { 0xfd18, G_UNICODE_NOT_PRESENT_OFFSET, 13695 },
-  { 0xfd19, G_UNICODE_NOT_PRESENT_OFFSET, 13700 },
-  { 0xfd1a, G_UNICODE_NOT_PRESENT_OFFSET, 13705 },
-  { 0xfd1b, G_UNICODE_NOT_PRESENT_OFFSET, 13710 },
-  { 0xfd1c, G_UNICODE_NOT_PRESENT_OFFSET, 13715 },
-  { 0xfd1d, G_UNICODE_NOT_PRESENT_OFFSET, 13720 },
-  { 0xfd1e, G_UNICODE_NOT_PRESENT_OFFSET, 13725 },
-  { 0xfd1f, G_UNICODE_NOT_PRESENT_OFFSET, 13730 },
-  { 0xfd20, G_UNICODE_NOT_PRESENT_OFFSET, 13735 },
-  { 0xfd21, G_UNICODE_NOT_PRESENT_OFFSET, 13740 },
-  { 0xfd22, G_UNICODE_NOT_PRESENT_OFFSET, 13745 },
-  { 0xfd23, G_UNICODE_NOT_PRESENT_OFFSET, 13750 },
-  { 0xfd24, G_UNICODE_NOT_PRESENT_OFFSET, 13755 },
-  { 0xfd25, G_UNICODE_NOT_PRESENT_OFFSET, 13760 },
-  { 0xfd26, G_UNICODE_NOT_PRESENT_OFFSET, 13765 },
-  { 0xfd27, G_UNICODE_NOT_PRESENT_OFFSET, 13770 },
-  { 0xfd28, G_UNICODE_NOT_PRESENT_OFFSET, 13629 },
-  { 0xfd29, G_UNICODE_NOT_PRESENT_OFFSET, 13775 },
-  { 0xfd2a, G_UNICODE_NOT_PRESENT_OFFSET, 13780 },
-  { 0xfd2b, G_UNICODE_NOT_PRESENT_OFFSET, 13785 },
-  { 0xfd2c, G_UNICODE_NOT_PRESENT_OFFSET, 13790 },
-  { 0xfd2d, G_UNICODE_NOT_PRESENT_OFFSET, 13760 },
-  { 0xfd2e, G_UNICODE_NOT_PRESENT_OFFSET, 13765 },
-  { 0xfd2f, G_UNICODE_NOT_PRESENT_OFFSET, 13770 },
-  { 0xfd30, G_UNICODE_NOT_PRESENT_OFFSET, 13629 },
-  { 0xfd31, G_UNICODE_NOT_PRESENT_OFFSET, 13624 },
-  { 0xfd32, G_UNICODE_NOT_PRESENT_OFFSET, 13634 },
-  { 0xfd33, G_UNICODE_NOT_PRESENT_OFFSET, 13158 },
-  { 0xfd34, G_UNICODE_NOT_PRESENT_OFFSET, 13103 },
-  { 0xfd35, G_UNICODE_NOT_PRESENT_OFFSET, 13108 },
-  { 0xfd36, G_UNICODE_NOT_PRESENT_OFFSET, 13113 },
-  { 0xfd37, G_UNICODE_NOT_PRESENT_OFFSET, 13760 },
-  { 0xfd38, G_UNICODE_NOT_PRESENT_OFFSET, 13765 },
-  { 0xfd39, G_UNICODE_NOT_PRESENT_OFFSET, 13770 },
-  { 0xfd3a, G_UNICODE_NOT_PRESENT_OFFSET, 13158 },
-  { 0xfd3b, G_UNICODE_NOT_PRESENT_OFFSET, 13163 },
-  { 0xfd3c, G_UNICODE_NOT_PRESENT_OFFSET, 13795 },
-  { 0xfd3d, G_UNICODE_NOT_PRESENT_OFFSET, 13795 },
-  { 0xfd50, G_UNICODE_NOT_PRESENT_OFFSET, 13800 },
-  { 0xfd51, G_UNICODE_NOT_PRESENT_OFFSET, 13807 },
-  { 0xfd52, G_UNICODE_NOT_PRESENT_OFFSET, 13807 },
-  { 0xfd53, G_UNICODE_NOT_PRESENT_OFFSET, 13814 },
-  { 0xfd54, G_UNICODE_NOT_PRESENT_OFFSET, 13821 },
-  { 0xfd55, G_UNICODE_NOT_PRESENT_OFFSET, 13828 },
-  { 0xfd56, G_UNICODE_NOT_PRESENT_OFFSET, 13835 },
-  { 0xfd57, G_UNICODE_NOT_PRESENT_OFFSET, 13842 },
-  { 0xfd58, G_UNICODE_NOT_PRESENT_OFFSET, 13849 },
-  { 0xfd59, G_UNICODE_NOT_PRESENT_OFFSET, 13849 },
-  { 0xfd5a, G_UNICODE_NOT_PRESENT_OFFSET, 13856 },
-  { 0xfd5b, G_UNICODE_NOT_PRESENT_OFFSET, 13863 },
-  { 0xfd5c, G_UNICODE_NOT_PRESENT_OFFSET, 13870 },
-  { 0xfd5d, G_UNICODE_NOT_PRESENT_OFFSET, 13877 },
-  { 0xfd5e, G_UNICODE_NOT_PRESENT_OFFSET, 13884 },
-  { 0xfd5f, G_UNICODE_NOT_PRESENT_OFFSET, 13891 },
-  { 0xfd60, G_UNICODE_NOT_PRESENT_OFFSET, 13891 },
-  { 0xfd61, G_UNICODE_NOT_PRESENT_OFFSET, 13898 },
-  { 0xfd62, G_UNICODE_NOT_PRESENT_OFFSET, 13905 },
-  { 0xfd63, G_UNICODE_NOT_PRESENT_OFFSET, 13905 },
-  { 0xfd64, G_UNICODE_NOT_PRESENT_OFFSET, 13912 },
-  { 0xfd65, G_UNICODE_NOT_PRESENT_OFFSET, 13912 },
-  { 0xfd66, G_UNICODE_NOT_PRESENT_OFFSET, 13919 },
-  { 0xfd67, G_UNICODE_NOT_PRESENT_OFFSET, 13926 },
-  { 0xfd68, G_UNICODE_NOT_PRESENT_OFFSET, 13926 },
-  { 0xfd69, G_UNICODE_NOT_PRESENT_OFFSET, 13933 },
-  { 0xfd6a, G_UNICODE_NOT_PRESENT_OFFSET, 13940 },
-  { 0xfd6b, G_UNICODE_NOT_PRESENT_OFFSET, 13940 },
-  { 0xfd6c, G_UNICODE_NOT_PRESENT_OFFSET, 13947 },
-  { 0xfd6d, G_UNICODE_NOT_PRESENT_OFFSET, 13947 },
-  { 0xfd6e, G_UNICODE_NOT_PRESENT_OFFSET, 13954 },
-  { 0xfd6f, G_UNICODE_NOT_PRESENT_OFFSET, 13961 },
-  { 0xfd70, G_UNICODE_NOT_PRESENT_OFFSET, 13961 },
-  { 0xfd71, G_UNICODE_NOT_PRESENT_OFFSET, 13968 },
-  { 0xfd72, G_UNICODE_NOT_PRESENT_OFFSET, 13968 },
-  { 0xfd73, G_UNICODE_NOT_PRESENT_OFFSET, 13975 },
-  { 0xfd74, G_UNICODE_NOT_PRESENT_OFFSET, 13982 },
-  { 0xfd75, G_UNICODE_NOT_PRESENT_OFFSET, 13989 },
-  { 0xfd76, G_UNICODE_NOT_PRESENT_OFFSET, 13996 },
-  { 0xfd77, G_UNICODE_NOT_PRESENT_OFFSET, 13996 },
-  { 0xfd78, G_UNICODE_NOT_PRESENT_OFFSET, 14003 },
-  { 0xfd79, G_UNICODE_NOT_PRESENT_OFFSET, 14010 },
-  { 0xfd7a, G_UNICODE_NOT_PRESENT_OFFSET, 14017 },
-  { 0xfd7b, G_UNICODE_NOT_PRESENT_OFFSET, 14024 },
-  { 0xfd7c, G_UNICODE_NOT_PRESENT_OFFSET, 14031 },
-  { 0xfd7d, G_UNICODE_NOT_PRESENT_OFFSET, 14031 },
-  { 0xfd7e, G_UNICODE_NOT_PRESENT_OFFSET, 14038 },
-  { 0xfd7f, G_UNICODE_NOT_PRESENT_OFFSET, 14045 },
-  { 0xfd80, G_UNICODE_NOT_PRESENT_OFFSET, 14052 },
-  { 0xfd81, G_UNICODE_NOT_PRESENT_OFFSET, 14059 },
-  { 0xfd82, G_UNICODE_NOT_PRESENT_OFFSET, 14066 },
-  { 0xfd83, G_UNICODE_NOT_PRESENT_OFFSET, 14073 },
-  { 0xfd84, G_UNICODE_NOT_PRESENT_OFFSET, 14073 },
-  { 0xfd85, G_UNICODE_NOT_PRESENT_OFFSET, 14080 },
-  { 0xfd86, G_UNICODE_NOT_PRESENT_OFFSET, 14080 },
-  { 0xfd87, G_UNICODE_NOT_PRESENT_OFFSET, 14087 },
-  { 0xfd88, G_UNICODE_NOT_PRESENT_OFFSET, 14087 },
-  { 0xfd89, G_UNICODE_NOT_PRESENT_OFFSET, 14094 },
-  { 0xfd8a, G_UNICODE_NOT_PRESENT_OFFSET, 14101 },
-  { 0xfd8b, G_UNICODE_NOT_PRESENT_OFFSET, 14108 },
-  { 0xfd8c, G_UNICODE_NOT_PRESENT_OFFSET, 14115 },
-  { 0xfd8d, G_UNICODE_NOT_PRESENT_OFFSET, 14122 },
-  { 0xfd8e, G_UNICODE_NOT_PRESENT_OFFSET, 14129 },
-  { 0xfd8f, G_UNICODE_NOT_PRESENT_OFFSET, 14136 },
-  { 0xfd92, G_UNICODE_NOT_PRESENT_OFFSET, 14143 },
-  { 0xfd93, G_UNICODE_NOT_PRESENT_OFFSET, 14150 },
-  { 0xfd94, G_UNICODE_NOT_PRESENT_OFFSET, 14157 },
-  { 0xfd95, G_UNICODE_NOT_PRESENT_OFFSET, 14164 },
-  { 0xfd96, G_UNICODE_NOT_PRESENT_OFFSET, 14171 },
-  { 0xfd97, G_UNICODE_NOT_PRESENT_OFFSET, 14178 },
-  { 0xfd98, G_UNICODE_NOT_PRESENT_OFFSET, 14178 },
-  { 0xfd99, G_UNICODE_NOT_PRESENT_OFFSET, 14185 },
-  { 0xfd9a, G_UNICODE_NOT_PRESENT_OFFSET, 14192 },
-  { 0xfd9b, G_UNICODE_NOT_PRESENT_OFFSET, 14199 },
-  { 0xfd9c, G_UNICODE_NOT_PRESENT_OFFSET, 14206 },
-  { 0xfd9d, G_UNICODE_NOT_PRESENT_OFFSET, 14206 },
-  { 0xfd9e, G_UNICODE_NOT_PRESENT_OFFSET, 14213 },
-  { 0xfd9f, G_UNICODE_NOT_PRESENT_OFFSET, 14220 },
-  { 0xfda0, G_UNICODE_NOT_PRESENT_OFFSET, 14227 },
-  { 0xfda1, G_UNICODE_NOT_PRESENT_OFFSET, 14234 },
-  { 0xfda2, G_UNICODE_NOT_PRESENT_OFFSET, 14241 },
-  { 0xfda3, G_UNICODE_NOT_PRESENT_OFFSET, 14248 },
-  { 0xfda4, G_UNICODE_NOT_PRESENT_OFFSET, 14255 },
-  { 0xfda5, G_UNICODE_NOT_PRESENT_OFFSET, 14262 },
-  { 0xfda6, G_UNICODE_NOT_PRESENT_OFFSET, 14269 },
-  { 0xfda7, G_UNICODE_NOT_PRESENT_OFFSET, 14276 },
-  { 0xfda8, G_UNICODE_NOT_PRESENT_OFFSET, 14283 },
-  { 0xfda9, G_UNICODE_NOT_PRESENT_OFFSET, 14290 },
-  { 0xfdaa, G_UNICODE_NOT_PRESENT_OFFSET, 14297 },
-  { 0xfdab, G_UNICODE_NOT_PRESENT_OFFSET, 14304 },
-  { 0xfdac, G_UNICODE_NOT_PRESENT_OFFSET, 14311 },
-  { 0xfdad, G_UNICODE_NOT_PRESENT_OFFSET, 14318 },
-  { 0xfdae, G_UNICODE_NOT_PRESENT_OFFSET, 14325 },
-  { 0xfdaf, G_UNICODE_NOT_PRESENT_OFFSET, 14332 },
-  { 0xfdb0, G_UNICODE_NOT_PRESENT_OFFSET, 14339 },
-  { 0xfdb1, G_UNICODE_NOT_PRESENT_OFFSET, 14346 },
-  { 0xfdb2, G_UNICODE_NOT_PRESENT_OFFSET, 14353 },
-  { 0xfdb3, G_UNICODE_NOT_PRESENT_OFFSET, 14360 },
-  { 0xfdb4, G_UNICODE_NOT_PRESENT_OFFSET, 14038 },
-  { 0xfdb5, G_UNICODE_NOT_PRESENT_OFFSET, 14052 },
-  { 0xfdb6, G_UNICODE_NOT_PRESENT_OFFSET, 14367 },
-  { 0xfdb7, G_UNICODE_NOT_PRESENT_OFFSET, 14374 },
-  { 0xfdb8, G_UNICODE_NOT_PRESENT_OFFSET, 14381 },
-  { 0xfdb9, G_UNICODE_NOT_PRESENT_OFFSET, 14388 },
-  { 0xfdba, G_UNICODE_NOT_PRESENT_OFFSET, 14395 },
-  { 0xfdbb, G_UNICODE_NOT_PRESENT_OFFSET, 14402 },
-  { 0xfdbc, G_UNICODE_NOT_PRESENT_OFFSET, 14395 },
-  { 0xfdbd, G_UNICODE_NOT_PRESENT_OFFSET, 14381 },
-  { 0xfdbe, G_UNICODE_NOT_PRESENT_OFFSET, 14409 },
-  { 0xfdbf, G_UNICODE_NOT_PRESENT_OFFSET, 14416 },
-  { 0xfdc0, G_UNICODE_NOT_PRESENT_OFFSET, 14423 },
-  { 0xfdc1, G_UNICODE_NOT_PRESENT_OFFSET, 14430 },
-  { 0xfdc2, G_UNICODE_NOT_PRESENT_OFFSET, 14437 },
-  { 0xfdc3, G_UNICODE_NOT_PRESENT_OFFSET, 14402 },
-  { 0xfdc4, G_UNICODE_NOT_PRESENT_OFFSET, 13989 },
-  { 0xfdc5, G_UNICODE_NOT_PRESENT_OFFSET, 13919 },
-  { 0xfdc6, G_UNICODE_NOT_PRESENT_OFFSET, 14444 },
-  { 0xfdc7, G_UNICODE_NOT_PRESENT_OFFSET, 14451 },
-  { 0xfdf0, G_UNICODE_NOT_PRESENT_OFFSET, 14458 },
-  { 0xfdf1, G_UNICODE_NOT_PRESENT_OFFSET, 14465 },
-  { 0xfdf2, G_UNICODE_NOT_PRESENT_OFFSET, 14472 },
-  { 0xfdf3, G_UNICODE_NOT_PRESENT_OFFSET, 14481 },
-  { 0xfdf4, G_UNICODE_NOT_PRESENT_OFFSET, 14490 },
-  { 0xfdf5, G_UNICODE_NOT_PRESENT_OFFSET, 14499 },
-  { 0xfdf6, G_UNICODE_NOT_PRESENT_OFFSET, 14508 },
-  { 0xfdf7, G_UNICODE_NOT_PRESENT_OFFSET, 14517 },
-  { 0xfdf8, G_UNICODE_NOT_PRESENT_OFFSET, 14526 },
-  { 0xfdf9, G_UNICODE_NOT_PRESENT_OFFSET, 14535 },
-  { 0xfdfa, G_UNICODE_NOT_PRESENT_OFFSET, 14542 },
-  { 0xfdfb, G_UNICODE_NOT_PRESENT_OFFSET, 14576 },
-  { 0xfdfc, G_UNICODE_NOT_PRESENT_OFFSET, 14592 },
-  { 0xfe10, G_UNICODE_NOT_PRESENT_OFFSET, 14601 },
-  { 0xfe11, G_UNICODE_NOT_PRESENT_OFFSET, 14603 },
-  { 0xfe12, G_UNICODE_NOT_PRESENT_OFFSET, 14607 },
-  { 0xfe13, G_UNICODE_NOT_PRESENT_OFFSET, 14611 },
+  { 0xfbde, G_UNICODE_NOT_PRESENT_OFFSET, 12889 },
+  { 0xfbdf, G_UNICODE_NOT_PRESENT_OFFSET, 12889 },
+  { 0xfbe0, G_UNICODE_NOT_PRESENT_OFFSET, 12892 },
+  { 0xfbe1, G_UNICODE_NOT_PRESENT_OFFSET, 12892 },
+  { 0xfbe2, G_UNICODE_NOT_PRESENT_OFFSET, 12895 },
+  { 0xfbe3, G_UNICODE_NOT_PRESENT_OFFSET, 12895 },
+  { 0xfbe4, G_UNICODE_NOT_PRESENT_OFFSET, 12898 },
+  { 0xfbe5, G_UNICODE_NOT_PRESENT_OFFSET, 12898 },
+  { 0xfbe6, G_UNICODE_NOT_PRESENT_OFFSET, 12898 },
+  { 0xfbe7, G_UNICODE_NOT_PRESENT_OFFSET, 12898 },
+  { 0xfbe8, G_UNICODE_NOT_PRESENT_OFFSET, 12901 },
+  { 0xfbe9, G_UNICODE_NOT_PRESENT_OFFSET, 12901 },
+  { 0xfbea, G_UNICODE_NOT_PRESENT_OFFSET, 12904 },
+  { 0xfbeb, G_UNICODE_NOT_PRESENT_OFFSET, 12904 },
+  { 0xfbec, G_UNICODE_NOT_PRESENT_OFFSET, 12911 },
+  { 0xfbed, G_UNICODE_NOT_PRESENT_OFFSET, 12911 },
+  { 0xfbee, G_UNICODE_NOT_PRESENT_OFFSET, 12918 },
+  { 0xfbef, G_UNICODE_NOT_PRESENT_OFFSET, 12918 },
+  { 0xfbf0, G_UNICODE_NOT_PRESENT_OFFSET, 12925 },
+  { 0xfbf1, G_UNICODE_NOT_PRESENT_OFFSET, 12925 },
+  { 0xfbf2, G_UNICODE_NOT_PRESENT_OFFSET, 12932 },
+  { 0xfbf3, G_UNICODE_NOT_PRESENT_OFFSET, 12932 },
+  { 0xfbf4, G_UNICODE_NOT_PRESENT_OFFSET, 12939 },
+  { 0xfbf5, G_UNICODE_NOT_PRESENT_OFFSET, 12939 },
+  { 0xfbf6, G_UNICODE_NOT_PRESENT_OFFSET, 12946 },
+  { 0xfbf7, G_UNICODE_NOT_PRESENT_OFFSET, 12946 },
+  { 0xfbf8, G_UNICODE_NOT_PRESENT_OFFSET, 12946 },
+  { 0xfbf9, G_UNICODE_NOT_PRESENT_OFFSET, 12953 },
+  { 0xfbfa, G_UNICODE_NOT_PRESENT_OFFSET, 12953 },
+  { 0xfbfb, G_UNICODE_NOT_PRESENT_OFFSET, 12953 },
+  { 0xfbfc, G_UNICODE_NOT_PRESENT_OFFSET, 12960 },
+  { 0xfbfd, G_UNICODE_NOT_PRESENT_OFFSET, 12960 },
+  { 0xfbfe, G_UNICODE_NOT_PRESENT_OFFSET, 12960 },
+  { 0xfbff, G_UNICODE_NOT_PRESENT_OFFSET, 12960 },
+  { 0xfc00, G_UNICODE_NOT_PRESENT_OFFSET, 12963 },
+  { 0xfc01, G_UNICODE_NOT_PRESENT_OFFSET, 12970 },
+  { 0xfc02, G_UNICODE_NOT_PRESENT_OFFSET, 12977 },
+  { 0xfc03, G_UNICODE_NOT_PRESENT_OFFSET, 12953 },
+  { 0xfc04, G_UNICODE_NOT_PRESENT_OFFSET, 12984 },
+  { 0xfc05, G_UNICODE_NOT_PRESENT_OFFSET, 12991 },
+  { 0xfc06, G_UNICODE_NOT_PRESENT_OFFSET, 12996 },
+  { 0xfc07, G_UNICODE_NOT_PRESENT_OFFSET, 13001 },
+  { 0xfc08, G_UNICODE_NOT_PRESENT_OFFSET, 13006 },
+  { 0xfc09, G_UNICODE_NOT_PRESENT_OFFSET, 13011 },
+  { 0xfc0a, G_UNICODE_NOT_PRESENT_OFFSET, 13016 },
+  { 0xfc0b, G_UNICODE_NOT_PRESENT_OFFSET, 13021 },
+  { 0xfc0c, G_UNICODE_NOT_PRESENT_OFFSET, 13026 },
+  { 0xfc0d, G_UNICODE_NOT_PRESENT_OFFSET, 13031 },
+  { 0xfc0e, G_UNICODE_NOT_PRESENT_OFFSET, 13036 },
+  { 0xfc0f, G_UNICODE_NOT_PRESENT_OFFSET, 13041 },
+  { 0xfc10, G_UNICODE_NOT_PRESENT_OFFSET, 13046 },
+  { 0xfc11, G_UNICODE_NOT_PRESENT_OFFSET, 13051 },
+  { 0xfc12, G_UNICODE_NOT_PRESENT_OFFSET, 13056 },
+  { 0xfc13, G_UNICODE_NOT_PRESENT_OFFSET, 13061 },
+  { 0xfc14, G_UNICODE_NOT_PRESENT_OFFSET, 13066 },
+  { 0xfc15, G_UNICODE_NOT_PRESENT_OFFSET, 13071 },
+  { 0xfc16, G_UNICODE_NOT_PRESENT_OFFSET, 13076 },
+  { 0xfc17, G_UNICODE_NOT_PRESENT_OFFSET, 13081 },
+  { 0xfc18, G_UNICODE_NOT_PRESENT_OFFSET, 13086 },
+  { 0xfc19, G_UNICODE_NOT_PRESENT_OFFSET, 13091 },
+  { 0xfc1a, G_UNICODE_NOT_PRESENT_OFFSET, 13096 },
+  { 0xfc1b, G_UNICODE_NOT_PRESENT_OFFSET, 13101 },
+  { 0xfc1c, G_UNICODE_NOT_PRESENT_OFFSET, 13106 },
+  { 0xfc1d, G_UNICODE_NOT_PRESENT_OFFSET, 13111 },
+  { 0xfc1e, G_UNICODE_NOT_PRESENT_OFFSET, 13116 },
+  { 0xfc1f, G_UNICODE_NOT_PRESENT_OFFSET, 13121 },
+  { 0xfc20, G_UNICODE_NOT_PRESENT_OFFSET, 13126 },
+  { 0xfc21, G_UNICODE_NOT_PRESENT_OFFSET, 13131 },
+  { 0xfc22, G_UNICODE_NOT_PRESENT_OFFSET, 13136 },
+  { 0xfc23, G_UNICODE_NOT_PRESENT_OFFSET, 13141 },
+  { 0xfc24, G_UNICODE_NOT_PRESENT_OFFSET, 13146 },
+  { 0xfc25, G_UNICODE_NOT_PRESENT_OFFSET, 13151 },
+  { 0xfc26, G_UNICODE_NOT_PRESENT_OFFSET, 13156 },
+  { 0xfc27, G_UNICODE_NOT_PRESENT_OFFSET, 13161 },
+  { 0xfc28, G_UNICODE_NOT_PRESENT_OFFSET, 13166 },
+  { 0xfc29, G_UNICODE_NOT_PRESENT_OFFSET, 13171 },
+  { 0xfc2a, G_UNICODE_NOT_PRESENT_OFFSET, 13176 },
+  { 0xfc2b, G_UNICODE_NOT_PRESENT_OFFSET, 13181 },
+  { 0xfc2c, G_UNICODE_NOT_PRESENT_OFFSET, 13186 },
+  { 0xfc2d, G_UNICODE_NOT_PRESENT_OFFSET, 13191 },
+  { 0xfc2e, G_UNICODE_NOT_PRESENT_OFFSET, 13196 },
+  { 0xfc2f, G_UNICODE_NOT_PRESENT_OFFSET, 13201 },
+  { 0xfc30, G_UNICODE_NOT_PRESENT_OFFSET, 13206 },
+  { 0xfc31, G_UNICODE_NOT_PRESENT_OFFSET, 13211 },
+  { 0xfc32, G_UNICODE_NOT_PRESENT_OFFSET, 13216 },
+  { 0xfc33, G_UNICODE_NOT_PRESENT_OFFSET, 13221 },
+  { 0xfc34, G_UNICODE_NOT_PRESENT_OFFSET, 13226 },
+  { 0xfc35, G_UNICODE_NOT_PRESENT_OFFSET, 13231 },
+  { 0xfc36, G_UNICODE_NOT_PRESENT_OFFSET, 13236 },
+  { 0xfc37, G_UNICODE_NOT_PRESENT_OFFSET, 13241 },
+  { 0xfc38, G_UNICODE_NOT_PRESENT_OFFSET, 13246 },
+  { 0xfc39, G_UNICODE_NOT_PRESENT_OFFSET, 13251 },
+  { 0xfc3a, G_UNICODE_NOT_PRESENT_OFFSET, 13256 },
+  { 0xfc3b, G_UNICODE_NOT_PRESENT_OFFSET, 13261 },
+  { 0xfc3c, G_UNICODE_NOT_PRESENT_OFFSET, 13266 },
+  { 0xfc3d, G_UNICODE_NOT_PRESENT_OFFSET, 13271 },
+  { 0xfc3e, G_UNICODE_NOT_PRESENT_OFFSET, 13276 },
+  { 0xfc3f, G_UNICODE_NOT_PRESENT_OFFSET, 13281 },
+  { 0xfc40, G_UNICODE_NOT_PRESENT_OFFSET, 13286 },
+  { 0xfc41, G_UNICODE_NOT_PRESENT_OFFSET, 13291 },
+  { 0xfc42, G_UNICODE_NOT_PRESENT_OFFSET, 13296 },
+  { 0xfc43, G_UNICODE_NOT_PRESENT_OFFSET, 13301 },
+  { 0xfc44, G_UNICODE_NOT_PRESENT_OFFSET, 13306 },
+  { 0xfc45, G_UNICODE_NOT_PRESENT_OFFSET, 13311 },
+  { 0xfc46, G_UNICODE_NOT_PRESENT_OFFSET, 13316 },
+  { 0xfc47, G_UNICODE_NOT_PRESENT_OFFSET, 13321 },
+  { 0xfc48, G_UNICODE_NOT_PRESENT_OFFSET, 13326 },
+  { 0xfc49, G_UNICODE_NOT_PRESENT_OFFSET, 13331 },
+  { 0xfc4a, G_UNICODE_NOT_PRESENT_OFFSET, 13336 },
+  { 0xfc4b, G_UNICODE_NOT_PRESENT_OFFSET, 13341 },
+  { 0xfc4c, G_UNICODE_NOT_PRESENT_OFFSET, 13346 },
+  { 0xfc4d, G_UNICODE_NOT_PRESENT_OFFSET, 13351 },
+  { 0xfc4e, G_UNICODE_NOT_PRESENT_OFFSET, 13356 },
+  { 0xfc4f, G_UNICODE_NOT_PRESENT_OFFSET, 13361 },
+  { 0xfc50, G_UNICODE_NOT_PRESENT_OFFSET, 13366 },
+  { 0xfc51, G_UNICODE_NOT_PRESENT_OFFSET, 13371 },
+  { 0xfc52, G_UNICODE_NOT_PRESENT_OFFSET, 13376 },
+  { 0xfc53, G_UNICODE_NOT_PRESENT_OFFSET, 13381 },
+  { 0xfc54, G_UNICODE_NOT_PRESENT_OFFSET, 13386 },
+  { 0xfc55, G_UNICODE_NOT_PRESENT_OFFSET, 13391 },
+  { 0xfc56, G_UNICODE_NOT_PRESENT_OFFSET, 13396 },
+  { 0xfc57, G_UNICODE_NOT_PRESENT_OFFSET, 13401 },
+  { 0xfc58, G_UNICODE_NOT_PRESENT_OFFSET, 13406 },
+  { 0xfc59, G_UNICODE_NOT_PRESENT_OFFSET, 13411 },
+  { 0xfc5a, G_UNICODE_NOT_PRESENT_OFFSET, 13416 },
+  { 0xfc5b, G_UNICODE_NOT_PRESENT_OFFSET, 13421 },
+  { 0xfc5c, G_UNICODE_NOT_PRESENT_OFFSET, 13426 },
+  { 0xfc5d, G_UNICODE_NOT_PRESENT_OFFSET, 13431 },
+  { 0xfc5e, G_UNICODE_NOT_PRESENT_OFFSET, 13436 },
+  { 0xfc5f, G_UNICODE_NOT_PRESENT_OFFSET, 13442 },
+  { 0xfc60, G_UNICODE_NOT_PRESENT_OFFSET, 13448 },
+  { 0xfc61, G_UNICODE_NOT_PRESENT_OFFSET, 13454 },
+  { 0xfc62, G_UNICODE_NOT_PRESENT_OFFSET, 13460 },
+  { 0xfc63, G_UNICODE_NOT_PRESENT_OFFSET, 13466 },
+  { 0xfc64, G_UNICODE_NOT_PRESENT_OFFSET, 13472 },
+  { 0xfc65, G_UNICODE_NOT_PRESENT_OFFSET, 13479 },
+  { 0xfc66, G_UNICODE_NOT_PRESENT_OFFSET, 12977 },
+  { 0xfc67, G_UNICODE_NOT_PRESENT_OFFSET, 13486 },
+  { 0xfc68, G_UNICODE_NOT_PRESENT_OFFSET, 12953 },
+  { 0xfc69, G_UNICODE_NOT_PRESENT_OFFSET, 12984 },
+  { 0xfc6a, G_UNICODE_NOT_PRESENT_OFFSET, 13493 },
+  { 0xfc6b, G_UNICODE_NOT_PRESENT_OFFSET, 13498 },
+  { 0xfc6c, G_UNICODE_NOT_PRESENT_OFFSET, 13006 },
+  { 0xfc6d, G_UNICODE_NOT_PRESENT_OFFSET, 13503 },
+  { 0xfc6e, G_UNICODE_NOT_PRESENT_OFFSET, 13011 },
+  { 0xfc6f, G_UNICODE_NOT_PRESENT_OFFSET, 13016 },
+  { 0xfc70, G_UNICODE_NOT_PRESENT_OFFSET, 13508 },
+  { 0xfc71, G_UNICODE_NOT_PRESENT_OFFSET, 13513 },
+  { 0xfc72, G_UNICODE_NOT_PRESENT_OFFSET, 13036 },
+  { 0xfc73, G_UNICODE_NOT_PRESENT_OFFSET, 13518 },
+  { 0xfc74, G_UNICODE_NOT_PRESENT_OFFSET, 13041 },
+  { 0xfc75, G_UNICODE_NOT_PRESENT_OFFSET, 13046 },
+  { 0xfc76, G_UNICODE_NOT_PRESENT_OFFSET, 13523 },
+  { 0xfc77, G_UNICODE_NOT_PRESENT_OFFSET, 13528 },
+  { 0xfc78, G_UNICODE_NOT_PRESENT_OFFSET, 13056 },
+  { 0xfc79, G_UNICODE_NOT_PRESENT_OFFSET, 13533 },
+  { 0xfc7a, G_UNICODE_NOT_PRESENT_OFFSET, 13061 },
+  { 0xfc7b, G_UNICODE_NOT_PRESENT_OFFSET, 13066 },
+  { 0xfc7c, G_UNICODE_NOT_PRESENT_OFFSET, 13211 },
+  { 0xfc7d, G_UNICODE_NOT_PRESENT_OFFSET, 13216 },
+  { 0xfc7e, G_UNICODE_NOT_PRESENT_OFFSET, 13231 },
+  { 0xfc7f, G_UNICODE_NOT_PRESENT_OFFSET, 13236 },
+  { 0xfc80, G_UNICODE_NOT_PRESENT_OFFSET, 13241 },
+  { 0xfc81, G_UNICODE_NOT_PRESENT_OFFSET, 13261 },
+  { 0xfc82, G_UNICODE_NOT_PRESENT_OFFSET, 13266 },
+  { 0xfc83, G_UNICODE_NOT_PRESENT_OFFSET, 13271 },
+  { 0xfc84, G_UNICODE_NOT_PRESENT_OFFSET, 13276 },
+  { 0xfc85, G_UNICODE_NOT_PRESENT_OFFSET, 13296 },
+  { 0xfc86, G_UNICODE_NOT_PRESENT_OFFSET, 13301 },
+  { 0xfc87, G_UNICODE_NOT_PRESENT_OFFSET, 13306 },
+  { 0xfc88, G_UNICODE_NOT_PRESENT_OFFSET, 13538 },
+  { 0xfc89, G_UNICODE_NOT_PRESENT_OFFSET, 13326 },
+  { 0xfc8a, G_UNICODE_NOT_PRESENT_OFFSET, 13543 },
+  { 0xfc8b, G_UNICODE_NOT_PRESENT_OFFSET, 13548 },
+  { 0xfc8c, G_UNICODE_NOT_PRESENT_OFFSET, 13356 },
+  { 0xfc8d, G_UNICODE_NOT_PRESENT_OFFSET, 13553 },
+  { 0xfc8e, G_UNICODE_NOT_PRESENT_OFFSET, 13361 },
+  { 0xfc8f, G_UNICODE_NOT_PRESENT_OFFSET, 13366 },
+  { 0xfc90, G_UNICODE_NOT_PRESENT_OFFSET, 13431 },
+  { 0xfc91, G_UNICODE_NOT_PRESENT_OFFSET, 13558 },
+  { 0xfc92, G_UNICODE_NOT_PRESENT_OFFSET, 13563 },
+  { 0xfc93, G_UNICODE_NOT_PRESENT_OFFSET, 13406 },
+  { 0xfc94, G_UNICODE_NOT_PRESENT_OFFSET, 13568 },
+  { 0xfc95, G_UNICODE_NOT_PRESENT_OFFSET, 13411 },
+  { 0xfc96, G_UNICODE_NOT_PRESENT_OFFSET, 13416 },
+  { 0xfc97, G_UNICODE_NOT_PRESENT_OFFSET, 12963 },
+  { 0xfc98, G_UNICODE_NOT_PRESENT_OFFSET, 12970 },
+  { 0xfc99, G_UNICODE_NOT_PRESENT_OFFSET, 13573 },
+  { 0xfc9a, G_UNICODE_NOT_PRESENT_OFFSET, 12977 },
+  { 0xfc9b, G_UNICODE_NOT_PRESENT_OFFSET, 13580 },
+  { 0xfc9c, G_UNICODE_NOT_PRESENT_OFFSET, 12991 },
+  { 0xfc9d, G_UNICODE_NOT_PRESENT_OFFSET, 12996 },
+  { 0xfc9e, G_UNICODE_NOT_PRESENT_OFFSET, 13001 },
+  { 0xfc9f, G_UNICODE_NOT_PRESENT_OFFSET, 13006 },
+  { 0xfca0, G_UNICODE_NOT_PRESENT_OFFSET, 13587 },
+  { 0xfca1, G_UNICODE_NOT_PRESENT_OFFSET, 13021 },
+  { 0xfca2, G_UNICODE_NOT_PRESENT_OFFSET, 13026 },
+  { 0xfca3, G_UNICODE_NOT_PRESENT_OFFSET, 13031 },
+  { 0xfca4, G_UNICODE_NOT_PRESENT_OFFSET, 13036 },
+  { 0xfca5, G_UNICODE_NOT_PRESENT_OFFSET, 13592 },
+  { 0xfca6, G_UNICODE_NOT_PRESENT_OFFSET, 13056 },
+  { 0xfca7, G_UNICODE_NOT_PRESENT_OFFSET, 13071 },
+  { 0xfca8, G_UNICODE_NOT_PRESENT_OFFSET, 13076 },
+  { 0xfca9, G_UNICODE_NOT_PRESENT_OFFSET, 13081 },
+  { 0xfcaa, G_UNICODE_NOT_PRESENT_OFFSET, 13086 },
+  { 0xfcab, G_UNICODE_NOT_PRESENT_OFFSET, 13091 },
+  { 0xfcac, G_UNICODE_NOT_PRESENT_OFFSET, 13101 },
+  { 0xfcad, G_UNICODE_NOT_PRESENT_OFFSET, 13106 },
+  { 0xfcae, G_UNICODE_NOT_PRESENT_OFFSET, 13111 },
+  { 0xfcaf, G_UNICODE_NOT_PRESENT_OFFSET, 13116 },
+  { 0xfcb0, G_UNICODE_NOT_PRESENT_OFFSET, 13121 },
+  { 0xfcb1, G_UNICODE_NOT_PRESENT_OFFSET, 13126 },
+  { 0xfcb2, G_UNICODE_NOT_PRESENT_OFFSET, 13597 },
+  { 0xfcb3, G_UNICODE_NOT_PRESENT_OFFSET, 13131 },
+  { 0xfcb4, G_UNICODE_NOT_PRESENT_OFFSET, 13136 },
+  { 0xfcb5, G_UNICODE_NOT_PRESENT_OFFSET, 13141 },
+  { 0xfcb6, G_UNICODE_NOT_PRESENT_OFFSET, 13146 },
+  { 0xfcb7, G_UNICODE_NOT_PRESENT_OFFSET, 13151 },
+  { 0xfcb8, G_UNICODE_NOT_PRESENT_OFFSET, 13156 },
+  { 0xfcb9, G_UNICODE_NOT_PRESENT_OFFSET, 13166 },
+  { 0xfcba, G_UNICODE_NOT_PRESENT_OFFSET, 13171 },
+  { 0xfcbb, G_UNICODE_NOT_PRESENT_OFFSET, 13176 },
+  { 0xfcbc, G_UNICODE_NOT_PRESENT_OFFSET, 13181 },
+  { 0xfcbd, G_UNICODE_NOT_PRESENT_OFFSET, 13186 },
+  { 0xfcbe, G_UNICODE_NOT_PRESENT_OFFSET, 13191 },
+  { 0xfcbf, G_UNICODE_NOT_PRESENT_OFFSET, 13196 },
+  { 0xfcc0, G_UNICODE_NOT_PRESENT_OFFSET, 13201 },
+  { 0xfcc1, G_UNICODE_NOT_PRESENT_OFFSET, 13206 },
+  { 0xfcc2, G_UNICODE_NOT_PRESENT_OFFSET, 13221 },
+  { 0xfcc3, G_UNICODE_NOT_PRESENT_OFFSET, 13226 },
+  { 0xfcc4, G_UNICODE_NOT_PRESENT_OFFSET, 13246 },
+  { 0xfcc5, G_UNICODE_NOT_PRESENT_OFFSET, 13251 },
+  { 0xfcc6, G_UNICODE_NOT_PRESENT_OFFSET, 13256 },
+  { 0xfcc7, G_UNICODE_NOT_PRESENT_OFFSET, 13261 },
+  { 0xfcc8, G_UNICODE_NOT_PRESENT_OFFSET, 13266 },
+  { 0xfcc9, G_UNICODE_NOT_PRESENT_OFFSET, 13281 },
+  { 0xfcca, G_UNICODE_NOT_PRESENT_OFFSET, 13286 },
+  { 0xfccb, G_UNICODE_NOT_PRESENT_OFFSET, 13291 },
+  { 0xfccc, G_UNICODE_NOT_PRESENT_OFFSET, 13296 },
+  { 0xfccd, G_UNICODE_NOT_PRESENT_OFFSET, 13602 },
+  { 0xfcce, G_UNICODE_NOT_PRESENT_OFFSET, 13311 },
+  { 0xfccf, G_UNICODE_NOT_PRESENT_OFFSET, 13316 },
+  { 0xfcd0, G_UNICODE_NOT_PRESENT_OFFSET, 13321 },
+  { 0xfcd1, G_UNICODE_NOT_PRESENT_OFFSET, 13326 },
+  { 0xfcd2, G_UNICODE_NOT_PRESENT_OFFSET, 13341 },
+  { 0xfcd3, G_UNICODE_NOT_PRESENT_OFFSET, 13346 },
+  { 0xfcd4, G_UNICODE_NOT_PRESENT_OFFSET, 13351 },
+  { 0xfcd5, G_UNICODE_NOT_PRESENT_OFFSET, 13356 },
+  { 0xfcd6, G_UNICODE_NOT_PRESENT_OFFSET, 13607 },
+  { 0xfcd7, G_UNICODE_NOT_PRESENT_OFFSET, 13371 },
+  { 0xfcd8, G_UNICODE_NOT_PRESENT_OFFSET, 13376 },
+  { 0xfcd9, G_UNICODE_NOT_PRESENT_OFFSET, 13612 },
+  { 0xfcda, G_UNICODE_NOT_PRESENT_OFFSET, 13391 },
+  { 0xfcdb, G_UNICODE_NOT_PRESENT_OFFSET, 13396 },
+  { 0xfcdc, G_UNICODE_NOT_PRESENT_OFFSET, 13401 },
+  { 0xfcdd, G_UNICODE_NOT_PRESENT_OFFSET, 13406 },
+  { 0xfcde, G_UNICODE_NOT_PRESENT_OFFSET, 13617 },
+  { 0xfcdf, G_UNICODE_NOT_PRESENT_OFFSET, 12977 },
+  { 0xfce0, G_UNICODE_NOT_PRESENT_OFFSET, 13580 },
+  { 0xfce1, G_UNICODE_NOT_PRESENT_OFFSET, 13006 },
+  { 0xfce2, G_UNICODE_NOT_PRESENT_OFFSET, 13587 },
+  { 0xfce3, G_UNICODE_NOT_PRESENT_OFFSET, 13036 },
+  { 0xfce4, G_UNICODE_NOT_PRESENT_OFFSET, 13592 },
+  { 0xfce5, G_UNICODE_NOT_PRESENT_OFFSET, 13056 },
+  { 0xfce6, G_UNICODE_NOT_PRESENT_OFFSET, 13622 },
+  { 0xfce7, G_UNICODE_NOT_PRESENT_OFFSET, 13121 },
+  { 0xfce8, G_UNICODE_NOT_PRESENT_OFFSET, 13627 },
+  { 0xfce9, G_UNICODE_NOT_PRESENT_OFFSET, 13632 },
+  { 0xfcea, G_UNICODE_NOT_PRESENT_OFFSET, 13637 },
+  { 0xfceb, G_UNICODE_NOT_PRESENT_OFFSET, 13261 },
+  { 0xfcec, G_UNICODE_NOT_PRESENT_OFFSET, 13266 },
+  { 0xfced, G_UNICODE_NOT_PRESENT_OFFSET, 13296 },
+  { 0xfcee, G_UNICODE_NOT_PRESENT_OFFSET, 13356 },
+  { 0xfcef, G_UNICODE_NOT_PRESENT_OFFSET, 13607 },
+  { 0xfcf0, G_UNICODE_NOT_PRESENT_OFFSET, 13406 },
+  { 0xfcf1, G_UNICODE_NOT_PRESENT_OFFSET, 13617 },
+  { 0xfcf2, G_UNICODE_NOT_PRESENT_OFFSET, 13642 },
+  { 0xfcf3, G_UNICODE_NOT_PRESENT_OFFSET, 13649 },
+  { 0xfcf4, G_UNICODE_NOT_PRESENT_OFFSET, 13656 },
+  { 0xfcf5, G_UNICODE_NOT_PRESENT_OFFSET, 13663 },
+  { 0xfcf6, G_UNICODE_NOT_PRESENT_OFFSET, 13668 },
+  { 0xfcf7, G_UNICODE_NOT_PRESENT_OFFSET, 13673 },
+  { 0xfcf8, G_UNICODE_NOT_PRESENT_OFFSET, 13678 },
+  { 0xfcf9, G_UNICODE_NOT_PRESENT_OFFSET, 13683 },
+  { 0xfcfa, G_UNICODE_NOT_PRESENT_OFFSET, 13688 },
+  { 0xfcfb, G_UNICODE_NOT_PRESENT_OFFSET, 13693 },
+  { 0xfcfc, G_UNICODE_NOT_PRESENT_OFFSET, 13698 },
+  { 0xfcfd, G_UNICODE_NOT_PRESENT_OFFSET, 13703 },
+  { 0xfcfe, G_UNICODE_NOT_PRESENT_OFFSET, 13708 },
+  { 0xfcff, G_UNICODE_NOT_PRESENT_OFFSET, 13713 },
+  { 0xfd00, G_UNICODE_NOT_PRESENT_OFFSET, 13718 },
+  { 0xfd01, G_UNICODE_NOT_PRESENT_OFFSET, 13723 },
+  { 0xfd02, G_UNICODE_NOT_PRESENT_OFFSET, 13728 },
+  { 0xfd03, G_UNICODE_NOT_PRESENT_OFFSET, 13733 },
+  { 0xfd04, G_UNICODE_NOT_PRESENT_OFFSET, 13738 },
+  { 0xfd05, G_UNICODE_NOT_PRESENT_OFFSET, 13743 },
+  { 0xfd06, G_UNICODE_NOT_PRESENT_OFFSET, 13748 },
+  { 0xfd07, G_UNICODE_NOT_PRESENT_OFFSET, 13753 },
+  { 0xfd08, G_UNICODE_NOT_PRESENT_OFFSET, 13758 },
+  { 0xfd09, G_UNICODE_NOT_PRESENT_OFFSET, 13763 },
+  { 0xfd0a, G_UNICODE_NOT_PRESENT_OFFSET, 13768 },
+  { 0xfd0b, G_UNICODE_NOT_PRESENT_OFFSET, 13773 },
+  { 0xfd0c, G_UNICODE_NOT_PRESENT_OFFSET, 13632 },
+  { 0xfd0d, G_UNICODE_NOT_PRESENT_OFFSET, 13778 },
+  { 0xfd0e, G_UNICODE_NOT_PRESENT_OFFSET, 13783 },
+  { 0xfd0f, G_UNICODE_NOT_PRESENT_OFFSET, 13788 },
+  { 0xfd10, G_UNICODE_NOT_PRESENT_OFFSET, 13793 },
+  { 0xfd11, G_UNICODE_NOT_PRESENT_OFFSET, 13663 },
+  { 0xfd12, G_UNICODE_NOT_PRESENT_OFFSET, 13668 },
+  { 0xfd13, G_UNICODE_NOT_PRESENT_OFFSET, 13673 },
+  { 0xfd14, G_UNICODE_NOT_PRESENT_OFFSET, 13678 },
+  { 0xfd15, G_UNICODE_NOT_PRESENT_OFFSET, 13683 },
+  { 0xfd16, G_UNICODE_NOT_PRESENT_OFFSET, 13688 },
+  { 0xfd17, G_UNICODE_NOT_PRESENT_OFFSET, 13693 },
+  { 0xfd18, G_UNICODE_NOT_PRESENT_OFFSET, 13698 },
+  { 0xfd19, G_UNICODE_NOT_PRESENT_OFFSET, 13703 },
+  { 0xfd1a, G_UNICODE_NOT_PRESENT_OFFSET, 13708 },
+  { 0xfd1b, G_UNICODE_NOT_PRESENT_OFFSET, 13713 },
+  { 0xfd1c, G_UNICODE_NOT_PRESENT_OFFSET, 13718 },
+  { 0xfd1d, G_UNICODE_NOT_PRESENT_OFFSET, 13723 },
+  { 0xfd1e, G_UNICODE_NOT_PRESENT_OFFSET, 13728 },
+  { 0xfd1f, G_UNICODE_NOT_PRESENT_OFFSET, 13733 },
+  { 0xfd20, G_UNICODE_NOT_PRESENT_OFFSET, 13738 },
+  { 0xfd21, G_UNICODE_NOT_PRESENT_OFFSET, 13743 },
+  { 0xfd22, G_UNICODE_NOT_PRESENT_OFFSET, 13748 },
+  { 0xfd23, G_UNICODE_NOT_PRESENT_OFFSET, 13753 },
+  { 0xfd24, G_UNICODE_NOT_PRESENT_OFFSET, 13758 },
+  { 0xfd25, G_UNICODE_NOT_PRESENT_OFFSET, 13763 },
+  { 0xfd26, G_UNICODE_NOT_PRESENT_OFFSET, 13768 },
+  { 0xfd27, G_UNICODE_NOT_PRESENT_OFFSET, 13773 },
+  { 0xfd28, G_UNICODE_NOT_PRESENT_OFFSET, 13632 },
+  { 0xfd29, G_UNICODE_NOT_PRESENT_OFFSET, 13778 },
+  { 0xfd2a, G_UNICODE_NOT_PRESENT_OFFSET, 13783 },
+  { 0xfd2b, G_UNICODE_NOT_PRESENT_OFFSET, 13788 },
+  { 0xfd2c, G_UNICODE_NOT_PRESENT_OFFSET, 13793 },
+  { 0xfd2d, G_UNICODE_NOT_PRESENT_OFFSET, 13763 },
+  { 0xfd2e, G_UNICODE_NOT_PRESENT_OFFSET, 13768 },
+  { 0xfd2f, G_UNICODE_NOT_PRESENT_OFFSET, 13773 },
+  { 0xfd30, G_UNICODE_NOT_PRESENT_OFFSET, 13632 },
+  { 0xfd31, G_UNICODE_NOT_PRESENT_OFFSET, 13627 },
+  { 0xfd32, G_UNICODE_NOT_PRESENT_OFFSET, 13637 },
+  { 0xfd33, G_UNICODE_NOT_PRESENT_OFFSET, 13161 },
+  { 0xfd34, G_UNICODE_NOT_PRESENT_OFFSET, 13106 },
+  { 0xfd35, G_UNICODE_NOT_PRESENT_OFFSET, 13111 },
+  { 0xfd36, G_UNICODE_NOT_PRESENT_OFFSET, 13116 },
+  { 0xfd37, G_UNICODE_NOT_PRESENT_OFFSET, 13763 },
+  { 0xfd38, G_UNICODE_NOT_PRESENT_OFFSET, 13768 },
+  { 0xfd39, G_UNICODE_NOT_PRESENT_OFFSET, 13773 },
+  { 0xfd3a, G_UNICODE_NOT_PRESENT_OFFSET, 13161 },
+  { 0xfd3b, G_UNICODE_NOT_PRESENT_OFFSET, 13166 },
+  { 0xfd3c, G_UNICODE_NOT_PRESENT_OFFSET, 13798 },
+  { 0xfd3d, G_UNICODE_NOT_PRESENT_OFFSET, 13798 },
+  { 0xfd50, G_UNICODE_NOT_PRESENT_OFFSET, 13803 },
+  { 0xfd51, G_UNICODE_NOT_PRESENT_OFFSET, 13810 },
+  { 0xfd52, G_UNICODE_NOT_PRESENT_OFFSET, 13810 },
+  { 0xfd53, G_UNICODE_NOT_PRESENT_OFFSET, 13817 },
+  { 0xfd54, G_UNICODE_NOT_PRESENT_OFFSET, 13824 },
+  { 0xfd55, G_UNICODE_NOT_PRESENT_OFFSET, 13831 },
+  { 0xfd56, G_UNICODE_NOT_PRESENT_OFFSET, 13838 },
+  { 0xfd57, G_UNICODE_NOT_PRESENT_OFFSET, 13845 },
+  { 0xfd58, G_UNICODE_NOT_PRESENT_OFFSET, 13852 },
+  { 0xfd59, G_UNICODE_NOT_PRESENT_OFFSET, 13852 },
+  { 0xfd5a, G_UNICODE_NOT_PRESENT_OFFSET, 13859 },
+  { 0xfd5b, G_UNICODE_NOT_PRESENT_OFFSET, 13866 },
+  { 0xfd5c, G_UNICODE_NOT_PRESENT_OFFSET, 13873 },
+  { 0xfd5d, G_UNICODE_NOT_PRESENT_OFFSET, 13880 },
+  { 0xfd5e, G_UNICODE_NOT_PRESENT_OFFSET, 13887 },
+  { 0xfd5f, G_UNICODE_NOT_PRESENT_OFFSET, 13894 },
+  { 0xfd60, G_UNICODE_NOT_PRESENT_OFFSET, 13894 },
+  { 0xfd61, G_UNICODE_NOT_PRESENT_OFFSET, 13901 },
+  { 0xfd62, G_UNICODE_NOT_PRESENT_OFFSET, 13908 },
+  { 0xfd63, G_UNICODE_NOT_PRESENT_OFFSET, 13908 },
+  { 0xfd64, G_UNICODE_NOT_PRESENT_OFFSET, 13915 },
+  { 0xfd65, G_UNICODE_NOT_PRESENT_OFFSET, 13915 },
+  { 0xfd66, G_UNICODE_NOT_PRESENT_OFFSET, 13922 },
+  { 0xfd67, G_UNICODE_NOT_PRESENT_OFFSET, 13929 },
+  { 0xfd68, G_UNICODE_NOT_PRESENT_OFFSET, 13929 },
+  { 0xfd69, G_UNICODE_NOT_PRESENT_OFFSET, 13936 },
+  { 0xfd6a, G_UNICODE_NOT_PRESENT_OFFSET, 13943 },
+  { 0xfd6b, G_UNICODE_NOT_PRESENT_OFFSET, 13943 },
+  { 0xfd6c, G_UNICODE_NOT_PRESENT_OFFSET, 13950 },
+  { 0xfd6d, G_UNICODE_NOT_PRESENT_OFFSET, 13950 },
+  { 0xfd6e, G_UNICODE_NOT_PRESENT_OFFSET, 13957 },
+  { 0xfd6f, G_UNICODE_NOT_PRESENT_OFFSET, 13964 },
+  { 0xfd70, G_UNICODE_NOT_PRESENT_OFFSET, 13964 },
+  { 0xfd71, G_UNICODE_NOT_PRESENT_OFFSET, 13971 },
+  { 0xfd72, G_UNICODE_NOT_PRESENT_OFFSET, 13971 },
+  { 0xfd73, G_UNICODE_NOT_PRESENT_OFFSET, 13978 },
+  { 0xfd74, G_UNICODE_NOT_PRESENT_OFFSET, 13985 },
+  { 0xfd75, G_UNICODE_NOT_PRESENT_OFFSET, 13992 },
+  { 0xfd76, G_UNICODE_NOT_PRESENT_OFFSET, 13999 },
+  { 0xfd77, G_UNICODE_NOT_PRESENT_OFFSET, 13999 },
+  { 0xfd78, G_UNICODE_NOT_PRESENT_OFFSET, 14006 },
+  { 0xfd79, G_UNICODE_NOT_PRESENT_OFFSET, 14013 },
+  { 0xfd7a, G_UNICODE_NOT_PRESENT_OFFSET, 14020 },
+  { 0xfd7b, G_UNICODE_NOT_PRESENT_OFFSET, 14027 },
+  { 0xfd7c, G_UNICODE_NOT_PRESENT_OFFSET, 14034 },
+  { 0xfd7d, G_UNICODE_NOT_PRESENT_OFFSET, 14034 },
+  { 0xfd7e, G_UNICODE_NOT_PRESENT_OFFSET, 14041 },
+  { 0xfd7f, G_UNICODE_NOT_PRESENT_OFFSET, 14048 },
+  { 0xfd80, G_UNICODE_NOT_PRESENT_OFFSET, 14055 },
+  { 0xfd81, G_UNICODE_NOT_PRESENT_OFFSET, 14062 },
+  { 0xfd82, G_UNICODE_NOT_PRESENT_OFFSET, 14069 },
+  { 0xfd83, G_UNICODE_NOT_PRESENT_OFFSET, 14076 },
+  { 0xfd84, G_UNICODE_NOT_PRESENT_OFFSET, 14076 },
+  { 0xfd85, G_UNICODE_NOT_PRESENT_OFFSET, 14083 },
+  { 0xfd86, G_UNICODE_NOT_PRESENT_OFFSET, 14083 },
+  { 0xfd87, G_UNICODE_NOT_PRESENT_OFFSET, 14090 },
+  { 0xfd88, G_UNICODE_NOT_PRESENT_OFFSET, 14090 },
+  { 0xfd89, G_UNICODE_NOT_PRESENT_OFFSET, 14097 },
+  { 0xfd8a, G_UNICODE_NOT_PRESENT_OFFSET, 14104 },
+  { 0xfd8b, G_UNICODE_NOT_PRESENT_OFFSET, 14111 },
+  { 0xfd8c, G_UNICODE_NOT_PRESENT_OFFSET, 14118 },
+  { 0xfd8d, G_UNICODE_NOT_PRESENT_OFFSET, 14125 },
+  { 0xfd8e, G_UNICODE_NOT_PRESENT_OFFSET, 14132 },
+  { 0xfd8f, G_UNICODE_NOT_PRESENT_OFFSET, 14139 },
+  { 0xfd92, G_UNICODE_NOT_PRESENT_OFFSET, 14146 },
+  { 0xfd93, G_UNICODE_NOT_PRESENT_OFFSET, 14153 },
+  { 0xfd94, G_UNICODE_NOT_PRESENT_OFFSET, 14160 },
+  { 0xfd95, G_UNICODE_NOT_PRESENT_OFFSET, 14167 },
+  { 0xfd96, G_UNICODE_NOT_PRESENT_OFFSET, 14174 },
+  { 0xfd97, G_UNICODE_NOT_PRESENT_OFFSET, 14181 },
+  { 0xfd98, G_UNICODE_NOT_PRESENT_OFFSET, 14181 },
+  { 0xfd99, G_UNICODE_NOT_PRESENT_OFFSET, 14188 },
+  { 0xfd9a, G_UNICODE_NOT_PRESENT_OFFSET, 14195 },
+  { 0xfd9b, G_UNICODE_NOT_PRESENT_OFFSET, 14202 },
+  { 0xfd9c, G_UNICODE_NOT_PRESENT_OFFSET, 14209 },
+  { 0xfd9d, G_UNICODE_NOT_PRESENT_OFFSET, 14209 },
+  { 0xfd9e, G_UNICODE_NOT_PRESENT_OFFSET, 14216 },
+  { 0xfd9f, G_UNICODE_NOT_PRESENT_OFFSET, 14223 },
+  { 0xfda0, G_UNICODE_NOT_PRESENT_OFFSET, 14230 },
+  { 0xfda1, G_UNICODE_NOT_PRESENT_OFFSET, 14237 },
+  { 0xfda2, G_UNICODE_NOT_PRESENT_OFFSET, 14244 },
+  { 0xfda3, G_UNICODE_NOT_PRESENT_OFFSET, 14251 },
+  { 0xfda4, G_UNICODE_NOT_PRESENT_OFFSET, 14258 },
+  { 0xfda5, G_UNICODE_NOT_PRESENT_OFFSET, 14265 },
+  { 0xfda6, G_UNICODE_NOT_PRESENT_OFFSET, 14272 },
+  { 0xfda7, G_UNICODE_NOT_PRESENT_OFFSET, 14279 },
+  { 0xfda8, G_UNICODE_NOT_PRESENT_OFFSET, 14286 },
+  { 0xfda9, G_UNICODE_NOT_PRESENT_OFFSET, 14293 },
+  { 0xfdaa, G_UNICODE_NOT_PRESENT_OFFSET, 14300 },
+  { 0xfdab, G_UNICODE_NOT_PRESENT_OFFSET, 14307 },
+  { 0xfdac, G_UNICODE_NOT_PRESENT_OFFSET, 14314 },
+  { 0xfdad, G_UNICODE_NOT_PRESENT_OFFSET, 14321 },
+  { 0xfdae, G_UNICODE_NOT_PRESENT_OFFSET, 14328 },
+  { 0xfdaf, G_UNICODE_NOT_PRESENT_OFFSET, 14335 },
+  { 0xfdb0, G_UNICODE_NOT_PRESENT_OFFSET, 14342 },
+  { 0xfdb1, G_UNICODE_NOT_PRESENT_OFFSET, 14349 },
+  { 0xfdb2, G_UNICODE_NOT_PRESENT_OFFSET, 14356 },
+  { 0xfdb3, G_UNICODE_NOT_PRESENT_OFFSET, 14363 },
+  { 0xfdb4, G_UNICODE_NOT_PRESENT_OFFSET, 14041 },
+  { 0xfdb5, G_UNICODE_NOT_PRESENT_OFFSET, 14055 },
+  { 0xfdb6, G_UNICODE_NOT_PRESENT_OFFSET, 14370 },
+  { 0xfdb7, G_UNICODE_NOT_PRESENT_OFFSET, 14377 },
+  { 0xfdb8, G_UNICODE_NOT_PRESENT_OFFSET, 14384 },
+  { 0xfdb9, G_UNICODE_NOT_PRESENT_OFFSET, 14391 },
+  { 0xfdba, G_UNICODE_NOT_PRESENT_OFFSET, 14398 },
+  { 0xfdbb, G_UNICODE_NOT_PRESENT_OFFSET, 14405 },
+  { 0xfdbc, G_UNICODE_NOT_PRESENT_OFFSET, 14398 },
+  { 0xfdbd, G_UNICODE_NOT_PRESENT_OFFSET, 14384 },
+  { 0xfdbe, G_UNICODE_NOT_PRESENT_OFFSET, 14412 },
+  { 0xfdbf, G_UNICODE_NOT_PRESENT_OFFSET, 14419 },
+  { 0xfdc0, G_UNICODE_NOT_PRESENT_OFFSET, 14426 },
+  { 0xfdc1, G_UNICODE_NOT_PRESENT_OFFSET, 14433 },
+  { 0xfdc2, G_UNICODE_NOT_PRESENT_OFFSET, 14440 },
+  { 0xfdc3, G_UNICODE_NOT_PRESENT_OFFSET, 14405 },
+  { 0xfdc4, G_UNICODE_NOT_PRESENT_OFFSET, 13992 },
+  { 0xfdc5, G_UNICODE_NOT_PRESENT_OFFSET, 13922 },
+  { 0xfdc6, G_UNICODE_NOT_PRESENT_OFFSET, 14447 },
+  { 0xfdc7, G_UNICODE_NOT_PRESENT_OFFSET, 14454 },
+  { 0xfdf0, G_UNICODE_NOT_PRESENT_OFFSET, 14461 },
+  { 0xfdf1, G_UNICODE_NOT_PRESENT_OFFSET, 14468 },
+  { 0xfdf2, G_UNICODE_NOT_PRESENT_OFFSET, 14475 },
+  { 0xfdf3, G_UNICODE_NOT_PRESENT_OFFSET, 14484 },
+  { 0xfdf4, G_UNICODE_NOT_PRESENT_OFFSET, 14493 },
+  { 0xfdf5, G_UNICODE_NOT_PRESENT_OFFSET, 14502 },
+  { 0xfdf6, G_UNICODE_NOT_PRESENT_OFFSET, 14511 },
+  { 0xfdf7, G_UNICODE_NOT_PRESENT_OFFSET, 14520 },
+  { 0xfdf8, G_UNICODE_NOT_PRESENT_OFFSET, 14529 },
+  { 0xfdf9, G_UNICODE_NOT_PRESENT_OFFSET, 14538 },
+  { 0xfdfa, G_UNICODE_NOT_PRESENT_OFFSET, 14545 },
+  { 0xfdfb, G_UNICODE_NOT_PRESENT_OFFSET, 14579 },
+  { 0xfdfc, G_UNICODE_NOT_PRESENT_OFFSET, 14595 },
+  { 0xfe10, G_UNICODE_NOT_PRESENT_OFFSET, 14604 },
+  { 0xfe11, G_UNICODE_NOT_PRESENT_OFFSET, 14606 },
+  { 0xfe12, G_UNICODE_NOT_PRESENT_OFFSET, 14610 },
+  { 0xfe13, G_UNICODE_NOT_PRESENT_OFFSET, 14614 },
   { 0xfe14, G_UNICODE_NOT_PRESENT_OFFSET, 1248 },
-  { 0xfe15, G_UNICODE_NOT_PRESENT_OFFSET, 14613 },
-  { 0xfe16, G_UNICODE_NOT_PRESENT_OFFSET, 14615 },
-  { 0xfe17, G_UNICODE_NOT_PRESENT_OFFSET, 14617 },
-  { 0xfe18, G_UNICODE_NOT_PRESENT_OFFSET, 14621 },
+  { 0xfe15, G_UNICODE_NOT_PRESENT_OFFSET, 14616 },
+  { 0xfe16, G_UNICODE_NOT_PRESENT_OFFSET, 14618 },
+  { 0xfe17, G_UNICODE_NOT_PRESENT_OFFSET, 14620 },
+  { 0xfe18, G_UNICODE_NOT_PRESENT_OFFSET, 14624 },
   { 0xfe19, G_UNICODE_NOT_PRESENT_OFFSET, 5186 },
   { 0xfe30, G_UNICODE_NOT_PRESENT_OFFSET, 5183 },
-  { 0xfe31, G_UNICODE_NOT_PRESENT_OFFSET, 14625 },
-  { 0xfe32, G_UNICODE_NOT_PRESENT_OFFSET, 14629 },
-  { 0xfe33, G_UNICODE_NOT_PRESENT_OFFSET, 14633 },
-  { 0xfe34, G_UNICODE_NOT_PRESENT_OFFSET, 14633 },
+  { 0xfe31, G_UNICODE_NOT_PRESENT_OFFSET, 14628 },
+  { 0xfe32, G_UNICODE_NOT_PRESENT_OFFSET, 14632 },
+  { 0xfe33, G_UNICODE_NOT_PRESENT_OFFSET, 14636 },
+  { 0xfe34, G_UNICODE_NOT_PRESENT_OFFSET, 14636 },
   { 0xfe35, G_UNICODE_NOT_PRESENT_OFFSET, 5275 },
   { 0xfe36, G_UNICODE_NOT_PRESENT_OFFSET, 5277 },
-  { 0xfe37, G_UNICODE_NOT_PRESENT_OFFSET, 14635 },
-  { 0xfe38, G_UNICODE_NOT_PRESENT_OFFSET, 14637 },
-  { 0xfe39, G_UNICODE_NOT_PRESENT_OFFSET, 14639 },
-  { 0xfe3a, G_UNICODE_NOT_PRESENT_OFFSET, 14643 },
-  { 0xfe3b, G_UNICODE_NOT_PRESENT_OFFSET, 14647 },
-  { 0xfe3c, G_UNICODE_NOT_PRESENT_OFFSET, 14651 },
-  { 0xfe3d, G_UNICODE_NOT_PRESENT_OFFSET, 14655 },
-  { 0xfe3e, G_UNICODE_NOT_PRESENT_OFFSET, 14659 },
+  { 0xfe37, G_UNICODE_NOT_PRESENT_OFFSET, 14638 },
+  { 0xfe38, G_UNICODE_NOT_PRESENT_OFFSET, 14640 },
+  { 0xfe39, G_UNICODE_NOT_PRESENT_OFFSET, 14642 },
+  { 0xfe3a, G_UNICODE_NOT_PRESENT_OFFSET, 14646 },
+  { 0xfe3b, G_UNICODE_NOT_PRESENT_OFFSET, 14650 },
+  { 0xfe3c, G_UNICODE_NOT_PRESENT_OFFSET, 14654 },
+  { 0xfe3d, G_UNICODE_NOT_PRESENT_OFFSET, 14658 },
+  { 0xfe3e, G_UNICODE_NOT_PRESENT_OFFSET, 14662 },
   { 0xfe3f, G_UNICODE_NOT_PRESENT_OFFSET, 5826 },
   { 0xfe40, G_UNICODE_NOT_PRESENT_OFFSET, 5830 },
-  { 0xfe41, G_UNICODE_NOT_PRESENT_OFFSET, 14663 },
-  { 0xfe42, G_UNICODE_NOT_PRESENT_OFFSET, 14667 },
-  { 0xfe43, G_UNICODE_NOT_PRESENT_OFFSET, 14671 },
-  { 0xfe44, G_UNICODE_NOT_PRESENT_OFFSET, 14675 },
-  { 0xfe47, G_UNICODE_NOT_PRESENT_OFFSET, 14679 },
-  { 0xfe48, G_UNICODE_NOT_PRESENT_OFFSET, 14681 },
+  { 0xfe41, G_UNICODE_NOT_PRESENT_OFFSET, 14666 },
+  { 0xfe42, G_UNICODE_NOT_PRESENT_OFFSET, 14670 },
+  { 0xfe43, G_UNICODE_NOT_PRESENT_OFFSET, 14674 },
+  { 0xfe44, G_UNICODE_NOT_PRESENT_OFFSET, 14678 },
+  { 0xfe47, G_UNICODE_NOT_PRESENT_OFFSET, 14682 },
+  { 0xfe48, G_UNICODE_NOT_PRESENT_OFFSET, 14684 },
   { 0xfe49, G_UNICODE_NOT_PRESENT_OFFSET, 5227 },
   { 0xfe4a, G_UNICODE_NOT_PRESENT_OFFSET, 5227 },
   { 0xfe4b, G_UNICODE_NOT_PRESENT_OFFSET, 5227 },
   { 0xfe4c, G_UNICODE_NOT_PRESENT_OFFSET, 5227 },
-  { 0xfe4d, G_UNICODE_NOT_PRESENT_OFFSET, 14633 },
-  { 0xfe4e, G_UNICODE_NOT_PRESENT_OFFSET, 14633 },
-  { 0xfe4f, G_UNICODE_NOT_PRESENT_OFFSET, 14633 },
-  { 0xfe50, G_UNICODE_NOT_PRESENT_OFFSET, 14601 },
-  { 0xfe51, G_UNICODE_NOT_PRESENT_OFFSET, 14603 },
+  { 0xfe4d, G_UNICODE_NOT_PRESENT_OFFSET, 14636 },
+  { 0xfe4e, G_UNICODE_NOT_PRESENT_OFFSET, 14636 },
+  { 0xfe4f, G_UNICODE_NOT_PRESENT_OFFSET, 14636 },
+  { 0xfe50, G_UNICODE_NOT_PRESENT_OFFSET, 14604 },
+  { 0xfe51, G_UNICODE_NOT_PRESENT_OFFSET, 14606 },
   { 0xfe52, G_UNICODE_NOT_PRESENT_OFFSET, 5181 },
   { 0xfe54, G_UNICODE_NOT_PRESENT_OFFSET, 1248 },
-  { 0xfe55, G_UNICODE_NOT_PRESENT_OFFSET, 14611 },
-  { 0xfe56, G_UNICODE_NOT_PRESENT_OFFSET, 14615 },
-  { 0xfe57, G_UNICODE_NOT_PRESENT_OFFSET, 14613 },
-  { 0xfe58, G_UNICODE_NOT_PRESENT_OFFSET, 14625 },
+  { 0xfe55, G_UNICODE_NOT_PRESENT_OFFSET, 14614 },
+  { 0xfe56, G_UNICODE_NOT_PRESENT_OFFSET, 14618 },
+  { 0xfe57, G_UNICODE_NOT_PRESENT_OFFSET, 14616 },
+  { 0xfe58, G_UNICODE_NOT_PRESENT_OFFSET, 14628 },
   { 0xfe59, G_UNICODE_NOT_PRESENT_OFFSET, 5275 },
   { 0xfe5a, G_UNICODE_NOT_PRESENT_OFFSET, 5277 },
-  { 0xfe5b, G_UNICODE_NOT_PRESENT_OFFSET, 14635 },
-  { 0xfe5c, G_UNICODE_NOT_PRESENT_OFFSET, 14637 },
-  { 0xfe5d, G_UNICODE_NOT_PRESENT_OFFSET, 14639 },
-  { 0xfe5e, G_UNICODE_NOT_PRESENT_OFFSET, 14643 },
-  { 0xfe5f, G_UNICODE_NOT_PRESENT_OFFSET, 14683 },
-  { 0xfe60, G_UNICODE_NOT_PRESENT_OFFSET, 14685 },
-  { 0xfe61, G_UNICODE_NOT_PRESENT_OFFSET, 14687 },
+  { 0xfe5b, G_UNICODE_NOT_PRESENT_OFFSET, 14638 },
+  { 0xfe5c, G_UNICODE_NOT_PRESENT_OFFSET, 14640 },
+  { 0xfe5d, G_UNICODE_NOT_PRESENT_OFFSET, 14642 },
+  { 0xfe5e, G_UNICODE_NOT_PRESENT_OFFSET, 14646 },
+  { 0xfe5f, G_UNICODE_NOT_PRESENT_OFFSET, 14686 },
+  { 0xfe60, G_UNICODE_NOT_PRESENT_OFFSET, 14688 },
+  { 0xfe61, G_UNICODE_NOT_PRESENT_OFFSET, 14690 },
   { 0xfe62, G_UNICODE_NOT_PRESENT_OFFSET, 5267 },
-  { 0xfe63, G_UNICODE_NOT_PRESENT_OFFSET, 14689 },
-  { 0xfe64, G_UNICODE_NOT_PRESENT_OFFSET, 14691 },
-  { 0xfe65, G_UNICODE_NOT_PRESENT_OFFSET, 14693 },
+  { 0xfe63, G_UNICODE_NOT_PRESENT_OFFSET, 14692 },
+  { 0xfe64, G_UNICODE_NOT_PRESENT_OFFSET, 14694 },
+  { 0xfe65, G_UNICODE_NOT_PRESENT_OFFSET, 14696 },
   { 0xfe66, G_UNICODE_NOT_PRESENT_OFFSET, 5273 },
-  { 0xfe68, G_UNICODE_NOT_PRESENT_OFFSET, 14695 },
-  { 0xfe69, G_UNICODE_NOT_PRESENT_OFFSET, 14697 },
-  { 0xfe6a, G_UNICODE_NOT_PRESENT_OFFSET, 14699 },
-  { 0xfe6b, G_UNICODE_NOT_PRESENT_OFFSET, 14701 },
-  { 0xfe70, G_UNICODE_NOT_PRESENT_OFFSET, 14703 },
-  { 0xfe71, G_UNICODE_NOT_PRESENT_OFFSET, 14707 },
-  { 0xfe72, G_UNICODE_NOT_PRESENT_OFFSET, 14712 },
-  { 0xfe74, G_UNICODE_NOT_PRESENT_OFFSET, 14716 },
-  { 0xfe76, G_UNICODE_NOT_PRESENT_OFFSET, 14720 },
-  { 0xfe77, G_UNICODE_NOT_PRESENT_OFFSET, 14724 },
-  { 0xfe78, G_UNICODE_NOT_PRESENT_OFFSET, 14729 },
-  { 0xfe79, G_UNICODE_NOT_PRESENT_OFFSET, 14733 },
-  { 0xfe7a, G_UNICODE_NOT_PRESENT_OFFSET, 14738 },
-  { 0xfe7b, G_UNICODE_NOT_PRESENT_OFFSET, 14742 },
-  { 0xfe7c, G_UNICODE_NOT_PRESENT_OFFSET, 14747 },
-  { 0xfe7d, G_UNICODE_NOT_PRESENT_OFFSET, 14751 },
-  { 0xfe7e, G_UNICODE_NOT_PRESENT_OFFSET, 14756 },
-  { 0xfe7f, G_UNICODE_NOT_PRESENT_OFFSET, 14760 },
-  { 0xfe80, G_UNICODE_NOT_PRESENT_OFFSET, 14765 },
+  { 0xfe68, G_UNICODE_NOT_PRESENT_OFFSET, 14698 },
+  { 0xfe69, G_UNICODE_NOT_PRESENT_OFFSET, 14700 },
+  { 0xfe6a, G_UNICODE_NOT_PRESENT_OFFSET, 14702 },
+  { 0xfe6b, G_UNICODE_NOT_PRESENT_OFFSET, 14704 },
+  { 0xfe70, G_UNICODE_NOT_PRESENT_OFFSET, 14706 },
+  { 0xfe71, G_UNICODE_NOT_PRESENT_OFFSET, 14710 },
+  { 0xfe72, G_UNICODE_NOT_PRESENT_OFFSET, 14715 },
+  { 0xfe74, G_UNICODE_NOT_PRESENT_OFFSET, 14719 },
+  { 0xfe76, G_UNICODE_NOT_PRESENT_OFFSET, 14723 },
+  { 0xfe77, G_UNICODE_NOT_PRESENT_OFFSET, 14727 },
+  { 0xfe78, G_UNICODE_NOT_PRESENT_OFFSET, 14732 },
+  { 0xfe79, G_UNICODE_NOT_PRESENT_OFFSET, 14736 },
+  { 0xfe7a, G_UNICODE_NOT_PRESENT_OFFSET, 14741 },
+  { 0xfe7b, G_UNICODE_NOT_PRESENT_OFFSET, 14745 },
+  { 0xfe7c, G_UNICODE_NOT_PRESENT_OFFSET, 14750 },
+  { 0xfe7d, G_UNICODE_NOT_PRESENT_OFFSET, 14754 },
+  { 0xfe7e, G_UNICODE_NOT_PRESENT_OFFSET, 14759 },
+  { 0xfe7f, G_UNICODE_NOT_PRESENT_OFFSET, 14763 },
+  { 0xfe80, G_UNICODE_NOT_PRESENT_OFFSET, 14768 },
   { 0xfe81, G_UNICODE_NOT_PRESENT_OFFSET, 1676 },
   { 0xfe82, G_UNICODE_NOT_PRESENT_OFFSET, 1676 },
   { 0xfe83, G_UNICODE_NOT_PRESENT_OFFSET, 1681 },
@@ -5935,133 +5987,133 @@ static const decomposition decomp_table[] =
   { 0xfe8a, G_UNICODE_NOT_PRESENT_OFFSET, 1696 },
   { 0xfe8b, G_UNICODE_NOT_PRESENT_OFFSET, 1696 },
   { 0xfe8c, G_UNICODE_NOT_PRESENT_OFFSET, 1696 },
-  { 0xfe8d, G_UNICODE_NOT_PRESENT_OFFSET, 14768 },
-  { 0xfe8e, G_UNICODE_NOT_PRESENT_OFFSET, 14768 },
-  { 0xfe8f, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
-  { 0xfe90, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
-  { 0xfe91, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
-  { 0xfe92, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
-  { 0xfe93, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
-  { 0xfe94, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
-  { 0xfe95, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
-  { 0xfe96, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
-  { 0xfe97, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
-  { 0xfe98, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
-  { 0xfe99, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
-  { 0xfe9a, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
-  { 0xfe9b, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
-  { 0xfe9c, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
-  { 0xfe9d, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0xfe9e, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0xfe9f, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0xfea0, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0xfea1, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0xfea2, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0xfea3, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0xfea4, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0xfea5, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0xfea6, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0xfea7, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0xfea8, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0xfea9, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
-  { 0xfeaa, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
-  { 0xfeab, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
-  { 0xfeac, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
-  { 0xfead, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
-  { 0xfeae, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
-  { 0xfeaf, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
-  { 0xfeb0, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
-  { 0xfeb1, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0xfeb2, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0xfeb3, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0xfeb4, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0xfeb5, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0xfeb6, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0xfeb7, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0xfeb8, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0xfeb9, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0xfeba, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0xfebb, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0xfebc, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0xfebd, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0xfebe, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0xfebf, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0xfec0, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0xfec1, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
-  { 0xfec2, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
-  { 0xfec3, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
-  { 0xfec4, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
-  { 0xfec5, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
-  { 0xfec6, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
-  { 0xfec7, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
-  { 0xfec8, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
-  { 0xfec9, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0xfeca, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0xfecb, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0xfecc, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0xfecd, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0xfece, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0xfecf, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0xfed0, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0xfed1, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
-  { 0xfed2, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
-  { 0xfed3, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
-  { 0xfed4, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
-  { 0xfed5, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0xfed6, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0xfed7, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0xfed8, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0xfed9, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
-  { 0xfeda, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
-  { 0xfedb, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
-  { 0xfedc, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
-  { 0xfedd, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
-  { 0xfede, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
-  { 0xfedf, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
-  { 0xfee0, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
-  { 0xfee1, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
-  { 0xfee2, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
-  { 0xfee3, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
-  { 0xfee4, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
-  { 0xfee5, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0xfee6, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0xfee7, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0xfee8, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0xfee9, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
-  { 0xfeea, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
-  { 0xfeeb, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
-  { 0xfeec, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
-  { 0xfeed, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
-  { 0xfeee, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
-  { 0xfeef, G_UNICODE_NOT_PRESENT_OFFSET, 12898 },
-  { 0xfef0, G_UNICODE_NOT_PRESENT_OFFSET, 12898 },
-  { 0xfef1, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0xfef2, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0xfef3, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0xfef4, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0xfef5, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
-  { 0xfef6, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
-  { 0xfef7, G_UNICODE_NOT_PRESENT_OFFSET, 14862 },
-  { 0xfef8, G_UNICODE_NOT_PRESENT_OFFSET, 14862 },
-  { 0xfef9, G_UNICODE_NOT_PRESENT_OFFSET, 14869 },
-  { 0xfefa, G_UNICODE_NOT_PRESENT_OFFSET, 14869 },
-  { 0xfefb, G_UNICODE_NOT_PRESENT_OFFSET, 14876 },
-  { 0xfefc, G_UNICODE_NOT_PRESENT_OFFSET, 14876 },
-  { 0xff01, G_UNICODE_NOT_PRESENT_OFFSET, 14613 },
-  { 0xff02, G_UNICODE_NOT_PRESENT_OFFSET, 14881 },
-  { 0xff03, G_UNICODE_NOT_PRESENT_OFFSET, 14683 },
-  { 0xff04, G_UNICODE_NOT_PRESENT_OFFSET, 14697 },
-  { 0xff05, G_UNICODE_NOT_PRESENT_OFFSET, 14699 },
-  { 0xff06, G_UNICODE_NOT_PRESENT_OFFSET, 14685 },
-  { 0xff07, G_UNICODE_NOT_PRESENT_OFFSET, 14883 },
+  { 0xfe8d, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
+  { 0xfe8e, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
+  { 0xfe8f, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
+  { 0xfe90, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
+  { 0xfe91, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
+  { 0xfe92, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
+  { 0xfe93, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
+  { 0xfe94, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
+  { 0xfe95, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
+  { 0xfe96, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
+  { 0xfe97, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
+  { 0xfe98, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
+  { 0xfe99, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
+  { 0xfe9a, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
+  { 0xfe9b, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
+  { 0xfe9c, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
+  { 0xfe9d, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0xfe9e, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0xfe9f, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0xfea0, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0xfea1, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0xfea2, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0xfea3, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0xfea4, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0xfea5, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0xfea6, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0xfea7, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0xfea8, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0xfea9, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
+  { 0xfeaa, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
+  { 0xfeab, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
+  { 0xfeac, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
+  { 0xfead, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
+  { 0xfeae, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
+  { 0xfeaf, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
+  { 0xfeb0, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
+  { 0xfeb1, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0xfeb2, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0xfeb3, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0xfeb4, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0xfeb5, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0xfeb6, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0xfeb7, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0xfeb8, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0xfeb9, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0xfeba, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0xfebb, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0xfebc, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0xfebd, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0xfebe, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0xfebf, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0xfec0, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0xfec1, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
+  { 0xfec2, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
+  { 0xfec3, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
+  { 0xfec4, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
+  { 0xfec5, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
+  { 0xfec6, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
+  { 0xfec7, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
+  { 0xfec8, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
+  { 0xfec9, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0xfeca, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0xfecb, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0xfecc, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0xfecd, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0xfece, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0xfecf, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0xfed0, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0xfed1, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
+  { 0xfed2, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
+  { 0xfed3, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
+  { 0xfed4, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
+  { 0xfed5, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0xfed6, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0xfed7, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0xfed8, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0xfed9, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
+  { 0xfeda, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
+  { 0xfedb, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
+  { 0xfedc, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
+  { 0xfedd, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
+  { 0xfede, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
+  { 0xfedf, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
+  { 0xfee0, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
+  { 0xfee1, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
+  { 0xfee2, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
+  { 0xfee3, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
+  { 0xfee4, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
+  { 0xfee5, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0xfee6, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0xfee7, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0xfee8, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0xfee9, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
+  { 0xfeea, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
+  { 0xfeeb, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
+  { 0xfeec, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
+  { 0xfeed, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
+  { 0xfeee, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
+  { 0xfeef, G_UNICODE_NOT_PRESENT_OFFSET, 12901 },
+  { 0xfef0, G_UNICODE_NOT_PRESENT_OFFSET, 12901 },
+  { 0xfef1, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0xfef2, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0xfef3, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0xfef4, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0xfef5, G_UNICODE_NOT_PRESENT_OFFSET, 14858 },
+  { 0xfef6, G_UNICODE_NOT_PRESENT_OFFSET, 14858 },
+  { 0xfef7, G_UNICODE_NOT_PRESENT_OFFSET, 14865 },
+  { 0xfef8, G_UNICODE_NOT_PRESENT_OFFSET, 14865 },
+  { 0xfef9, G_UNICODE_NOT_PRESENT_OFFSET, 14872 },
+  { 0xfefa, G_UNICODE_NOT_PRESENT_OFFSET, 14872 },
+  { 0xfefb, G_UNICODE_NOT_PRESENT_OFFSET, 14879 },
+  { 0xfefc, G_UNICODE_NOT_PRESENT_OFFSET, 14879 },
+  { 0xff01, G_UNICODE_NOT_PRESENT_OFFSET, 14616 },
+  { 0xff02, G_UNICODE_NOT_PRESENT_OFFSET, 14884 },
+  { 0xff03, G_UNICODE_NOT_PRESENT_OFFSET, 14686 },
+  { 0xff04, G_UNICODE_NOT_PRESENT_OFFSET, 14700 },
+  { 0xff05, G_UNICODE_NOT_PRESENT_OFFSET, 14702 },
+  { 0xff06, G_UNICODE_NOT_PRESENT_OFFSET, 14688 },
+  { 0xff07, G_UNICODE_NOT_PRESENT_OFFSET, 14886 },
   { 0xff08, G_UNICODE_NOT_PRESENT_OFFSET, 5275 },
   { 0xff09, G_UNICODE_NOT_PRESENT_OFFSET, 5277 },
-  { 0xff0a, G_UNICODE_NOT_PRESENT_OFFSET, 14687 },
+  { 0xff0a, G_UNICODE_NOT_PRESENT_OFFSET, 14690 },
   { 0xff0b, G_UNICODE_NOT_PRESENT_OFFSET, 5267 },
-  { 0xff0c, G_UNICODE_NOT_PRESENT_OFFSET, 14601 },
-  { 0xff0d, G_UNICODE_NOT_PRESENT_OFFSET, 14689 },
+  { 0xff0c, G_UNICODE_NOT_PRESENT_OFFSET, 14604 },
+  { 0xff0d, G_UNICODE_NOT_PRESENT_OFFSET, 14692 },
   { 0xff0e, G_UNICODE_NOT_PRESENT_OFFSET, 5181 },
-  { 0xff0f, G_UNICODE_NOT_PRESENT_OFFSET, 14885 },
+  { 0xff0f, G_UNICODE_NOT_PRESENT_OFFSET, 14888 },
   { 0xff10, G_UNICODE_NOT_PRESENT_OFFSET, 5253 },
   { 0xff11, G_UNICODE_NOT_PRESENT_OFFSET, 27 },
   { 0xff12, G_UNICODE_NOT_PRESENT_OFFSET, 12 },
@@ -6072,13 +6124,13 @@ static const decomposition decomp_table[] =
   { 0xff17, G_UNICODE_NOT_PRESENT_OFFSET, 5261 },
   { 0xff18, G_UNICODE_NOT_PRESENT_OFFSET, 5263 },
   { 0xff19, G_UNICODE_NOT_PRESENT_OFFSET, 5265 },
-  { 0xff1a, G_UNICODE_NOT_PRESENT_OFFSET, 14611 },
+  { 0xff1a, G_UNICODE_NOT_PRESENT_OFFSET, 14614 },
   { 0xff1b, G_UNICODE_NOT_PRESENT_OFFSET, 1248 },
-  { 0xff1c, G_UNICODE_NOT_PRESENT_OFFSET, 14691 },
+  { 0xff1c, G_UNICODE_NOT_PRESENT_OFFSET, 14694 },
   { 0xff1d, G_UNICODE_NOT_PRESENT_OFFSET, 5273 },
-  { 0xff1e, G_UNICODE_NOT_PRESENT_OFFSET, 14693 },
-  { 0xff1f, G_UNICODE_NOT_PRESENT_OFFSET, 14615 },
-  { 0xff20, G_UNICODE_NOT_PRESENT_OFFSET, 14701 },
+  { 0xff1e, G_UNICODE_NOT_PRESENT_OFFSET, 14696 },
+  { 0xff1f, G_UNICODE_NOT_PRESENT_OFFSET, 14618 },
+  { 0xff20, G_UNICODE_NOT_PRESENT_OFFSET, 14704 },
   { 0xff21, G_UNICODE_NOT_PRESENT_OFFSET, 2309 },
   { 0xff22, G_UNICODE_NOT_PRESENT_OFFSET, 2314 },
   { 0xff23, G_UNICODE_NOT_PRESENT_OFFSET, 5292 },
@@ -6105,11 +6157,11 @@ static const decomposition decomp_table[] =
   { 0xff38, G_UNICODE_NOT_PRESENT_OFFSET, 5487 },
   { 0xff39, G_UNICODE_NOT_PRESENT_OFFSET, 6135 },
   { 0xff3a, G_UNICODE_NOT_PRESENT_OFFSET, 5331 },
-  { 0xff3b, G_UNICODE_NOT_PRESENT_OFFSET, 14679 },
-  { 0xff3c, G_UNICODE_NOT_PRESENT_OFFSET, 14695 },
-  { 0xff3d, G_UNICODE_NOT_PRESENT_OFFSET, 14681 },
-  { 0xff3e, G_UNICODE_NOT_PRESENT_OFFSET, 14887 },
-  { 0xff3f, G_UNICODE_NOT_PRESENT_OFFSET, 14633 },
+  { 0xff3b, G_UNICODE_NOT_PRESENT_OFFSET, 14682 },
+  { 0xff3c, G_UNICODE_NOT_PRESENT_OFFSET, 14698 },
+  { 0xff3d, G_UNICODE_NOT_PRESENT_OFFSET, 14684 },
+  { 0xff3e, G_UNICODE_NOT_PRESENT_OFFSET, 14890 },
+  { 0xff3f, G_UNICODE_NOT_PRESENT_OFFSET, 14636 },
   { 0xff40, G_UNICODE_NOT_PRESENT_OFFSET, 5110 },
   { 0xff41, G_UNICODE_NOT_PRESENT_OFFSET, 6 },
   { 0xff42, G_UNICODE_NOT_PRESENT_OFFSET, 2364 },
@@ -6137,28 +6189,28 @@ static const decomposition decomp_table[] =
   { 0xff58, G_UNICODE_NOT_PRESENT_OFFSET, 1222 },
   { 0xff59, G_UNICODE_NOT_PRESENT_OFFSET, 1191 },
   { 0xff5a, G_UNICODE_NOT_PRESENT_OFFSET, 2526 },
-  { 0xff5b, G_UNICODE_NOT_PRESENT_OFFSET, 14635 },
-  { 0xff5c, G_UNICODE_NOT_PRESENT_OFFSET, 14889 },
-  { 0xff5d, G_UNICODE_NOT_PRESENT_OFFSET, 14637 },
-  { 0xff5e, G_UNICODE_NOT_PRESENT_OFFSET, 14891 },
-  { 0xff5f, G_UNICODE_NOT_PRESENT_OFFSET, 14893 },
-  { 0xff60, G_UNICODE_NOT_PRESENT_OFFSET, 14897 },
-  { 0xff61, G_UNICODE_NOT_PRESENT_OFFSET, 14607 },
-  { 0xff62, G_UNICODE_NOT_PRESENT_OFFSET, 14663 },
-  { 0xff63, G_UNICODE_NOT_PRESENT_OFFSET, 14667 },
-  { 0xff64, G_UNICODE_NOT_PRESENT_OFFSET, 14603 },
-  { 0xff65, G_UNICODE_NOT_PRESENT_OFFSET, 14901 },
+  { 0xff5b, G_UNICODE_NOT_PRESENT_OFFSET, 14638 },
+  { 0xff5c, G_UNICODE_NOT_PRESENT_OFFSET, 14892 },
+  { 0xff5d, G_UNICODE_NOT_PRESENT_OFFSET, 14640 },
+  { 0xff5e, G_UNICODE_NOT_PRESENT_OFFSET, 14894 },
+  { 0xff5f, G_UNICODE_NOT_PRESENT_OFFSET, 14896 },
+  { 0xff60, G_UNICODE_NOT_PRESENT_OFFSET, 14900 },
+  { 0xff61, G_UNICODE_NOT_PRESENT_OFFSET, 14610 },
+  { 0xff62, G_UNICODE_NOT_PRESENT_OFFSET, 14666 },
+  { 0xff63, G_UNICODE_NOT_PRESENT_OFFSET, 14670 },
+  { 0xff64, G_UNICODE_NOT_PRESENT_OFFSET, 14606 },
+  { 0xff65, G_UNICODE_NOT_PRESENT_OFFSET, 14904 },
   { 0xff66, G_UNICODE_NOT_PRESENT_OFFSET, 8992 },
-  { 0xff67, G_UNICODE_NOT_PRESENT_OFFSET, 14905 },
-  { 0xff68, G_UNICODE_NOT_PRESENT_OFFSET, 14909 },
-  { 0xff69, G_UNICODE_NOT_PRESENT_OFFSET, 14913 },
-  { 0xff6a, G_UNICODE_NOT_PRESENT_OFFSET, 14917 },
-  { 0xff6b, G_UNICODE_NOT_PRESENT_OFFSET, 14921 },
-  { 0xff6c, G_UNICODE_NOT_PRESENT_OFFSET, 14925 },
-  { 0xff6d, G_UNICODE_NOT_PRESENT_OFFSET, 14929 },
-  { 0xff6e, G_UNICODE_NOT_PRESENT_OFFSET, 14933 },
-  { 0xff6f, G_UNICODE_NOT_PRESENT_OFFSET, 14937 },
-  { 0xff70, G_UNICODE_NOT_PRESENT_OFFSET, 14941 },
+  { 0xff67, G_UNICODE_NOT_PRESENT_OFFSET, 14908 },
+  { 0xff68, G_UNICODE_NOT_PRESENT_OFFSET, 14912 },
+  { 0xff69, G_UNICODE_NOT_PRESENT_OFFSET, 14916 },
+  { 0xff6a, G_UNICODE_NOT_PRESENT_OFFSET, 14920 },
+  { 0xff6b, G_UNICODE_NOT_PRESENT_OFFSET, 14924 },
+  { 0xff6c, G_UNICODE_NOT_PRESENT_OFFSET, 14928 },
+  { 0xff6d, G_UNICODE_NOT_PRESENT_OFFSET, 14932 },
+  { 0xff6e, G_UNICODE_NOT_PRESENT_OFFSET, 14936 },
+  { 0xff6f, G_UNICODE_NOT_PRESENT_OFFSET, 14940 },
+  { 0xff70, G_UNICODE_NOT_PRESENT_OFFSET, 14944 },
   { 0xff71, G_UNICODE_NOT_PRESENT_OFFSET, 8808 },
   { 0xff72, G_UNICODE_NOT_PRESENT_OFFSET, 8812 },
   { 0xff73, G_UNICODE_NOT_PRESENT_OFFSET, 8816 },
@@ -6203,9 +6255,9 @@ static const decomposition decomp_table[] =
   { 0xff9a, G_UNICODE_NOT_PRESENT_OFFSET, 8972 },
   { 0xff9b, G_UNICODE_NOT_PRESENT_OFFSET, 8976 },
   { 0xff9c, G_UNICODE_NOT_PRESENT_OFFSET, 8980 },
-  { 0xff9d, G_UNICODE_NOT_PRESENT_OFFSET, 14945 },
-  { 0xff9e, G_UNICODE_NOT_PRESENT_OFFSET, 14949 },
-  { 0xff9f, G_UNICODE_NOT_PRESENT_OFFSET, 14953 },
+  { 0xff9d, G_UNICODE_NOT_PRESENT_OFFSET, 14948 },
+  { 0xff9e, G_UNICODE_NOT_PRESENT_OFFSET, 14952 },
+  { 0xff9f, G_UNICODE_NOT_PRESENT_OFFSET, 14956 },
   { 0xffa0, G_UNICODE_NOT_PRESENT_OFFSET, 7683 },
   { 0xffa1, G_UNICODE_NOT_PRESENT_OFFSET, 7479 },
   { 0xffa2, G_UNICODE_NOT_PRESENT_OFFSET, 7483 },
@@ -6258,45 +6310,46 @@ static const decomposition decomp_table[] =
   { 0xffda, G_UNICODE_NOT_PRESENT_OFFSET, 7671 },
   { 0xffdb, G_UNICODE_NOT_PRESENT_OFFSET, 7675 },
   { 0xffdc, G_UNICODE_NOT_PRESENT_OFFSET, 7679 },
-  { 0xffe0, G_UNICODE_NOT_PRESENT_OFFSET, 14957 },
-  { 0xffe1, G_UNICODE_NOT_PRESENT_OFFSET, 14960 },
-  { 0xffe2, G_UNICODE_NOT_PRESENT_OFFSET, 14963 },
+  { 0xffe0, G_UNICODE_NOT_PRESENT_OFFSET, 14960 },
+  { 0xffe1, G_UNICODE_NOT_PRESENT_OFFSET, 14963 },
+  { 0xffe2, G_UNICODE_NOT_PRESENT_OFFSET, 14966 },
   { 0xffe3, G_UNICODE_NOT_PRESENT_OFFSET, 8 },
-  { 0xffe4, G_UNICODE_NOT_PRESENT_OFFSET, 14966 },
-  { 0xffe5, G_UNICODE_NOT_PRESENT_OFFSET, 14969 },
-  { 0xffe6, G_UNICODE_NOT_PRESENT_OFFSET, 14972 },
-  { 0xffe8, G_UNICODE_NOT_PRESENT_OFFSET, 14976 },
-  { 0xffe9, G_UNICODE_NOT_PRESENT_OFFSET, 14980 },
-  { 0xffea, G_UNICODE_NOT_PRESENT_OFFSET, 14984 },
-  { 0xffeb, G_UNICODE_NOT_PRESENT_OFFSET, 14988 },
-  { 0xffec, G_UNICODE_NOT_PRESENT_OFFSET, 14992 },
-  { 0xffed, G_UNICODE_NOT_PRESENT_OFFSET, 14996 },
-  { 0xffee, G_UNICODE_NOT_PRESENT_OFFSET, 15000 },
-  { 0x1109a, 15004, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1109c, 15013, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x110ab, 15022, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1112e, 15031, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1112f, 15040, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1134b, 15049, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1134c, 15058, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x114bb, 15067, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x114bc, 15076, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x114be, 15085, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x115ba, 15094, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x115bb, 15103, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d15e, 15112, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d15f, 15121, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d160, 15130, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d161, 15143, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d162, 15156, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d163, 15169, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d164, 15182, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d1bb, 15195, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d1bc, 15204, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d1bd, 15213, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d1be, 15226, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d1bf, 15239, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x1d1c0, 15252, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0xffe4, G_UNICODE_NOT_PRESENT_OFFSET, 14969 },
+  { 0xffe5, G_UNICODE_NOT_PRESENT_OFFSET, 14972 },
+  { 0xffe6, G_UNICODE_NOT_PRESENT_OFFSET, 14975 },
+  { 0xffe8, G_UNICODE_NOT_PRESENT_OFFSET, 14979 },
+  { 0xffe9, G_UNICODE_NOT_PRESENT_OFFSET, 14983 },
+  { 0xffea, G_UNICODE_NOT_PRESENT_OFFSET, 14987 },
+  { 0xffeb, G_UNICODE_NOT_PRESENT_OFFSET, 14991 },
+  { 0xffec, G_UNICODE_NOT_PRESENT_OFFSET, 14995 },
+  { 0xffed, G_UNICODE_NOT_PRESENT_OFFSET, 14999 },
+  { 0xffee, G_UNICODE_NOT_PRESENT_OFFSET, 15003 },
+  { 0x1109a, 15007, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1109c, 15016, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x110ab, 15025, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1112e, 15034, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1112f, 15043, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1134b, 15052, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1134c, 15061, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x114bb, 15070, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x114bc, 15079, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x114be, 15088, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x115ba, 15097, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x115bb, 15106, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x11938, 15115, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d15e, 15124, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d15f, 15133, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d160, 15142, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d161, 15155, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d162, 15168, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d163, 15181, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d164, 15194, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d1bb, 15207, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d1bc, 15216, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d1bd, 15225, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d1be, 15238, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d1bf, 15251, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1d1c0, 15264, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x1d400, G_UNICODE_NOT_PRESENT_OFFSET, 2309 },
   { 0x1d401, G_UNICODE_NOT_PRESENT_OFFSET, 2314 },
   { 0x1d402, G_UNICODE_NOT_PRESENT_OFFSET, 5292 },
@@ -6949,300 +7002,300 @@ static const decomposition decomp_table[] =
   { 0x1d6a1, G_UNICODE_NOT_PRESENT_OFFSET, 1222 },
   { 0x1d6a2, G_UNICODE_NOT_PRESENT_OFFSET, 1191 },
   { 0x1d6a3, G_UNICODE_NOT_PRESENT_OFFSET, 2526 },
-  { 0x1d6a4, G_UNICODE_NOT_PRESENT_OFFSET, 15265 },
-  { 0x1d6a5, G_UNICODE_NOT_PRESENT_OFFSET, 15268 },
-  { 0x1d6a8, G_UNICODE_NOT_PRESENT_OFFSET, 15271 },
-  { 0x1d6a9, G_UNICODE_NOT_PRESENT_OFFSET, 15274 },
+  { 0x1d6a4, G_UNICODE_NOT_PRESENT_OFFSET, 15277 },
+  { 0x1d6a5, G_UNICODE_NOT_PRESENT_OFFSET, 15280 },
+  { 0x1d6a8, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
+  { 0x1d6a9, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
   { 0x1d6aa, G_UNICODE_NOT_PRESENT_OFFSET, 5354 },
-  { 0x1d6ab, G_UNICODE_NOT_PRESENT_OFFSET, 15277 },
-  { 0x1d6ac, G_UNICODE_NOT_PRESENT_OFFSET, 15280 },
-  { 0x1d6ad, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
-  { 0x1d6ae, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
+  { 0x1d6ab, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
+  { 0x1d6ac, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
+  { 0x1d6ad, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
+  { 0x1d6ae, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
   { 0x1d6af, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
-  { 0x1d6b0, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
-  { 0x1d6b1, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
-  { 0x1d6b2, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
-  { 0x1d6b3, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
-  { 0x1d6b4, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
-  { 0x1d6b5, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
-  { 0x1d6b6, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d6b0, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
+  { 0x1d6b1, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
+  { 0x1d6b2, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d6b3, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d6b4, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d6b5, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
+  { 0x1d6b6, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
   { 0x1d6b7, G_UNICODE_NOT_PRESENT_OFFSET, 5357 },
-  { 0x1d6b8, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d6b8, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
   { 0x1d6b9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
   { 0x1d6ba, G_UNICODE_NOT_PRESENT_OFFSET, 1408 },
-  { 0x1d6bb, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d6bb, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
   { 0x1d6bc, G_UNICODE_NOT_PRESENT_OFFSET, 1374 },
-  { 0x1d6bd, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
-  { 0x1d6be, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
-  { 0x1d6bf, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
+  { 0x1d6bd, G_UNICODE_NOT_PRESENT_OFFSET, 15328 },
+  { 0x1d6be, G_UNICODE_NOT_PRESENT_OFFSET, 15331 },
+  { 0x1d6bf, G_UNICODE_NOT_PRESENT_OFFSET, 15334 },
   { 0x1d6c0, G_UNICODE_NOT_PRESENT_OFFSET, 5333 },
-  { 0x1d6c1, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
-  { 0x1d6c2, G_UNICODE_NOT_PRESENT_OFFSET, 15329 },
+  { 0x1d6c1, G_UNICODE_NOT_PRESENT_OFFSET, 15337 },
+  { 0x1d6c2, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
   { 0x1d6c3, G_UNICODE_NOT_PRESENT_OFFSET, 1368 },
   { 0x1d6c4, G_UNICODE_NOT_PRESENT_OFFSET, 2418 },
   { 0x1d6c5, G_UNICODE_NOT_PRESENT_OFFSET, 2421 },
   { 0x1d6c6, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
-  { 0x1d6c7, G_UNICODE_NOT_PRESENT_OFFSET, 15332 },
-  { 0x1d6c8, G_UNICODE_NOT_PRESENT_OFFSET, 15335 },
+  { 0x1d6c7, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
+  { 0x1d6c8, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
   { 0x1d6c9, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d6ca, G_UNICODE_NOT_PRESENT_OFFSET, 4860 },
   { 0x1d6cb, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
-  { 0x1d6cc, G_UNICODE_NOT_PRESENT_OFFSET, 15338 },
+  { 0x1d6cc, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
   { 0x1d6cd, G_UNICODE_NOT_PRESENT_OFFSET, 20 },
-  { 0x1d6ce, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
-  { 0x1d6cf, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
-  { 0x1d6d0, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
+  { 0x1d6ce, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
+  { 0x1d6cf, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d6d0, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
   { 0x1d6d1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
   { 0x1d6d2, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d6d3, G_UNICODE_NOT_PRESENT_OFFSET, 1399 },
-  { 0x1d6d4, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
-  { 0x1d6d5, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
-  { 0x1d6d6, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d6d4, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
+  { 0x1d6d5, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d6d6, G_UNICODE_NOT_PRESENT_OFFSET, 15368 },
   { 0x1d6d7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d6d8, G_UNICODE_NOT_PRESENT_OFFSET, 2424 },
-  { 0x1d6d9, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
-  { 0x1d6da, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
-  { 0x1d6db, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d6d9, G_UNICODE_NOT_PRESENT_OFFSET, 15371 },
+  { 0x1d6da, G_UNICODE_NOT_PRESENT_OFFSET, 15374 },
+  { 0x1d6db, G_UNICODE_NOT_PRESENT_OFFSET, 15377 },
   { 0x1d6dc, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
   { 0x1d6dd, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d6de, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
   { 0x1d6df, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d6e0, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d6e1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
-  { 0x1d6e2, G_UNICODE_NOT_PRESENT_OFFSET, 15271 },
-  { 0x1d6e3, G_UNICODE_NOT_PRESENT_OFFSET, 15274 },
+  { 0x1d6e2, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
+  { 0x1d6e3, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
   { 0x1d6e4, G_UNICODE_NOT_PRESENT_OFFSET, 5354 },
-  { 0x1d6e5, G_UNICODE_NOT_PRESENT_OFFSET, 15277 },
-  { 0x1d6e6, G_UNICODE_NOT_PRESENT_OFFSET, 15280 },
-  { 0x1d6e7, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
-  { 0x1d6e8, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
+  { 0x1d6e5, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
+  { 0x1d6e6, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
+  { 0x1d6e7, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
+  { 0x1d6e8, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
   { 0x1d6e9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
-  { 0x1d6ea, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
-  { 0x1d6eb, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
-  { 0x1d6ec, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
-  { 0x1d6ed, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
-  { 0x1d6ee, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
-  { 0x1d6ef, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
-  { 0x1d6f0, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d6ea, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
+  { 0x1d6eb, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
+  { 0x1d6ec, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d6ed, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d6ee, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d6ef, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
+  { 0x1d6f0, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
   { 0x1d6f1, G_UNICODE_NOT_PRESENT_OFFSET, 5357 },
-  { 0x1d6f2, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d6f2, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
   { 0x1d6f3, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
   { 0x1d6f4, G_UNICODE_NOT_PRESENT_OFFSET, 1408 },
-  { 0x1d6f5, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d6f5, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
   { 0x1d6f6, G_UNICODE_NOT_PRESENT_OFFSET, 1374 },
-  { 0x1d6f7, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
-  { 0x1d6f8, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
-  { 0x1d6f9, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
+  { 0x1d6f7, G_UNICODE_NOT_PRESENT_OFFSET, 15328 },
+  { 0x1d6f8, G_UNICODE_NOT_PRESENT_OFFSET, 15331 },
+  { 0x1d6f9, G_UNICODE_NOT_PRESENT_OFFSET, 15334 },
   { 0x1d6fa, G_UNICODE_NOT_PRESENT_OFFSET, 5333 },
-  { 0x1d6fb, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
-  { 0x1d6fc, G_UNICODE_NOT_PRESENT_OFFSET, 15329 },
+  { 0x1d6fb, G_UNICODE_NOT_PRESENT_OFFSET, 15337 },
+  { 0x1d6fc, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
   { 0x1d6fd, G_UNICODE_NOT_PRESENT_OFFSET, 1368 },
   { 0x1d6fe, G_UNICODE_NOT_PRESENT_OFFSET, 2418 },
   { 0x1d6ff, G_UNICODE_NOT_PRESENT_OFFSET, 2421 },
   { 0x1d700, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
-  { 0x1d701, G_UNICODE_NOT_PRESENT_OFFSET, 15332 },
-  { 0x1d702, G_UNICODE_NOT_PRESENT_OFFSET, 15335 },
+  { 0x1d701, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
+  { 0x1d702, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
   { 0x1d703, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d704, G_UNICODE_NOT_PRESENT_OFFSET, 4860 },
   { 0x1d705, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
-  { 0x1d706, G_UNICODE_NOT_PRESENT_OFFSET, 15338 },
+  { 0x1d706, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
   { 0x1d707, G_UNICODE_NOT_PRESENT_OFFSET, 20 },
-  { 0x1d708, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
-  { 0x1d709, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
-  { 0x1d70a, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
+  { 0x1d708, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
+  { 0x1d709, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d70a, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
   { 0x1d70b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
   { 0x1d70c, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d70d, G_UNICODE_NOT_PRESENT_OFFSET, 1399 },
-  { 0x1d70e, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
-  { 0x1d70f, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
-  { 0x1d710, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d70e, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
+  { 0x1d70f, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d710, G_UNICODE_NOT_PRESENT_OFFSET, 15368 },
   { 0x1d711, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d712, G_UNICODE_NOT_PRESENT_OFFSET, 2424 },
-  { 0x1d713, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
-  { 0x1d714, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
-  { 0x1d715, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d713, G_UNICODE_NOT_PRESENT_OFFSET, 15371 },
+  { 0x1d714, G_UNICODE_NOT_PRESENT_OFFSET, 15374 },
+  { 0x1d715, G_UNICODE_NOT_PRESENT_OFFSET, 15377 },
   { 0x1d716, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
   { 0x1d717, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d718, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
   { 0x1d719, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d71a, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d71b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
-  { 0x1d71c, G_UNICODE_NOT_PRESENT_OFFSET, 15271 },
-  { 0x1d71d, G_UNICODE_NOT_PRESENT_OFFSET, 15274 },
+  { 0x1d71c, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
+  { 0x1d71d, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
   { 0x1d71e, G_UNICODE_NOT_PRESENT_OFFSET, 5354 },
-  { 0x1d71f, G_UNICODE_NOT_PRESENT_OFFSET, 15277 },
-  { 0x1d720, G_UNICODE_NOT_PRESENT_OFFSET, 15280 },
-  { 0x1d721, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
-  { 0x1d722, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
+  { 0x1d71f, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
+  { 0x1d720, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
+  { 0x1d721, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
+  { 0x1d722, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
   { 0x1d723, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
-  { 0x1d724, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
-  { 0x1d725, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
-  { 0x1d726, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
-  { 0x1d727, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
-  { 0x1d728, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
-  { 0x1d729, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
-  { 0x1d72a, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d724, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
+  { 0x1d725, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
+  { 0x1d726, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d727, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d728, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d729, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
+  { 0x1d72a, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
   { 0x1d72b, G_UNICODE_NOT_PRESENT_OFFSET, 5357 },
-  { 0x1d72c, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d72c, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
   { 0x1d72d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
   { 0x1d72e, G_UNICODE_NOT_PRESENT_OFFSET, 1408 },
-  { 0x1d72f, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d72f, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
   { 0x1d730, G_UNICODE_NOT_PRESENT_OFFSET, 1374 },
-  { 0x1d731, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
-  { 0x1d732, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
-  { 0x1d733, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
+  { 0x1d731, G_UNICODE_NOT_PRESENT_OFFSET, 15328 },
+  { 0x1d732, G_UNICODE_NOT_PRESENT_OFFSET, 15331 },
+  { 0x1d733, G_UNICODE_NOT_PRESENT_OFFSET, 15334 },
   { 0x1d734, G_UNICODE_NOT_PRESENT_OFFSET, 5333 },
-  { 0x1d735, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
-  { 0x1d736, G_UNICODE_NOT_PRESENT_OFFSET, 15329 },
+  { 0x1d735, G_UNICODE_NOT_PRESENT_OFFSET, 15337 },
+  { 0x1d736, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
   { 0x1d737, G_UNICODE_NOT_PRESENT_OFFSET, 1368 },
   { 0x1d738, G_UNICODE_NOT_PRESENT_OFFSET, 2418 },
   { 0x1d739, G_UNICODE_NOT_PRESENT_OFFSET, 2421 },
   { 0x1d73a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
-  { 0x1d73b, G_UNICODE_NOT_PRESENT_OFFSET, 15332 },
-  { 0x1d73c, G_UNICODE_NOT_PRESENT_OFFSET, 15335 },
+  { 0x1d73b, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
+  { 0x1d73c, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
   { 0x1d73d, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d73e, G_UNICODE_NOT_PRESENT_OFFSET, 4860 },
   { 0x1d73f, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
-  { 0x1d740, G_UNICODE_NOT_PRESENT_OFFSET, 15338 },
+  { 0x1d740, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
   { 0x1d741, G_UNICODE_NOT_PRESENT_OFFSET, 20 },
-  { 0x1d742, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
-  { 0x1d743, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
-  { 0x1d744, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
+  { 0x1d742, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
+  { 0x1d743, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d744, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
   { 0x1d745, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
   { 0x1d746, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d747, G_UNICODE_NOT_PRESENT_OFFSET, 1399 },
-  { 0x1d748, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
-  { 0x1d749, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
-  { 0x1d74a, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d748, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
+  { 0x1d749, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d74a, G_UNICODE_NOT_PRESENT_OFFSET, 15368 },
   { 0x1d74b, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d74c, G_UNICODE_NOT_PRESENT_OFFSET, 2424 },
-  { 0x1d74d, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
-  { 0x1d74e, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
-  { 0x1d74f, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d74d, G_UNICODE_NOT_PRESENT_OFFSET, 15371 },
+  { 0x1d74e, G_UNICODE_NOT_PRESENT_OFFSET, 15374 },
+  { 0x1d74f, G_UNICODE_NOT_PRESENT_OFFSET, 15377 },
   { 0x1d750, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
   { 0x1d751, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d752, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
   { 0x1d753, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d754, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d755, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
-  { 0x1d756, G_UNICODE_NOT_PRESENT_OFFSET, 15271 },
-  { 0x1d757, G_UNICODE_NOT_PRESENT_OFFSET, 15274 },
+  { 0x1d756, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
+  { 0x1d757, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
   { 0x1d758, G_UNICODE_NOT_PRESENT_OFFSET, 5354 },
-  { 0x1d759, G_UNICODE_NOT_PRESENT_OFFSET, 15277 },
-  { 0x1d75a, G_UNICODE_NOT_PRESENT_OFFSET, 15280 },
-  { 0x1d75b, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
-  { 0x1d75c, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
+  { 0x1d759, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
+  { 0x1d75a, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
+  { 0x1d75b, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
+  { 0x1d75c, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
   { 0x1d75d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
-  { 0x1d75e, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
-  { 0x1d75f, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
-  { 0x1d760, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
-  { 0x1d761, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
-  { 0x1d762, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
-  { 0x1d763, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
-  { 0x1d764, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d75e, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
+  { 0x1d75f, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
+  { 0x1d760, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d761, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d762, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d763, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
+  { 0x1d764, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
   { 0x1d765, G_UNICODE_NOT_PRESENT_OFFSET, 5357 },
-  { 0x1d766, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d766, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
   { 0x1d767, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
   { 0x1d768, G_UNICODE_NOT_PRESENT_OFFSET, 1408 },
-  { 0x1d769, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d769, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
   { 0x1d76a, G_UNICODE_NOT_PRESENT_OFFSET, 1374 },
-  { 0x1d76b, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
-  { 0x1d76c, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
-  { 0x1d76d, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
+  { 0x1d76b, G_UNICODE_NOT_PRESENT_OFFSET, 15328 },
+  { 0x1d76c, G_UNICODE_NOT_PRESENT_OFFSET, 15331 },
+  { 0x1d76d, G_UNICODE_NOT_PRESENT_OFFSET, 15334 },
   { 0x1d76e, G_UNICODE_NOT_PRESENT_OFFSET, 5333 },
-  { 0x1d76f, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
-  { 0x1d770, G_UNICODE_NOT_PRESENT_OFFSET, 15329 },
+  { 0x1d76f, G_UNICODE_NOT_PRESENT_OFFSET, 15337 },
+  { 0x1d770, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
   { 0x1d771, G_UNICODE_NOT_PRESENT_OFFSET, 1368 },
   { 0x1d772, G_UNICODE_NOT_PRESENT_OFFSET, 2418 },
   { 0x1d773, G_UNICODE_NOT_PRESENT_OFFSET, 2421 },
   { 0x1d774, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
-  { 0x1d775, G_UNICODE_NOT_PRESENT_OFFSET, 15332 },
-  { 0x1d776, G_UNICODE_NOT_PRESENT_OFFSET, 15335 },
+  { 0x1d775, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
+  { 0x1d776, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
   { 0x1d777, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d778, G_UNICODE_NOT_PRESENT_OFFSET, 4860 },
   { 0x1d779, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
-  { 0x1d77a, G_UNICODE_NOT_PRESENT_OFFSET, 15338 },
+  { 0x1d77a, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
   { 0x1d77b, G_UNICODE_NOT_PRESENT_OFFSET, 20 },
-  { 0x1d77c, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
-  { 0x1d77d, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
-  { 0x1d77e, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
+  { 0x1d77c, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
+  { 0x1d77d, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d77e, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
   { 0x1d77f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
   { 0x1d780, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d781, G_UNICODE_NOT_PRESENT_OFFSET, 1399 },
-  { 0x1d782, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
-  { 0x1d783, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
-  { 0x1d784, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d782, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
+  { 0x1d783, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d784, G_UNICODE_NOT_PRESENT_OFFSET, 15368 },
   { 0x1d785, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d786, G_UNICODE_NOT_PRESENT_OFFSET, 2424 },
-  { 0x1d787, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
-  { 0x1d788, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
-  { 0x1d789, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d787, G_UNICODE_NOT_PRESENT_OFFSET, 15371 },
+  { 0x1d788, G_UNICODE_NOT_PRESENT_OFFSET, 15374 },
+  { 0x1d789, G_UNICODE_NOT_PRESENT_OFFSET, 15377 },
   { 0x1d78a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
   { 0x1d78b, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d78c, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
   { 0x1d78d, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d78e, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d78f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
-  { 0x1d790, G_UNICODE_NOT_PRESENT_OFFSET, 15271 },
-  { 0x1d791, G_UNICODE_NOT_PRESENT_OFFSET, 15274 },
+  { 0x1d790, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
+  { 0x1d791, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
   { 0x1d792, G_UNICODE_NOT_PRESENT_OFFSET, 5354 },
-  { 0x1d793, G_UNICODE_NOT_PRESENT_OFFSET, 15277 },
-  { 0x1d794, G_UNICODE_NOT_PRESENT_OFFSET, 15280 },
-  { 0x1d795, G_UNICODE_NOT_PRESENT_OFFSET, 15283 },
-  { 0x1d796, G_UNICODE_NOT_PRESENT_OFFSET, 15286 },
+  { 0x1d793, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
+  { 0x1d794, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
+  { 0x1d795, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
+  { 0x1d796, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
   { 0x1d797, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
-  { 0x1d798, G_UNICODE_NOT_PRESENT_OFFSET, 15289 },
-  { 0x1d799, G_UNICODE_NOT_PRESENT_OFFSET, 15292 },
-  { 0x1d79a, G_UNICODE_NOT_PRESENT_OFFSET, 15295 },
-  { 0x1d79b, G_UNICODE_NOT_PRESENT_OFFSET, 15298 },
-  { 0x1d79c, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
-  { 0x1d79d, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
-  { 0x1d79e, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d798, G_UNICODE_NOT_PRESENT_OFFSET, 15301 },
+  { 0x1d799, G_UNICODE_NOT_PRESENT_OFFSET, 15304 },
+  { 0x1d79a, G_UNICODE_NOT_PRESENT_OFFSET, 15307 },
+  { 0x1d79b, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d79c, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d79d, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
+  { 0x1d79e, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
   { 0x1d79f, G_UNICODE_NOT_PRESENT_OFFSET, 5357 },
-  { 0x1d7a0, G_UNICODE_NOT_PRESENT_OFFSET, 15310 },
+  { 0x1d7a0, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
   { 0x1d7a1, G_UNICODE_NOT_PRESENT_OFFSET, 1402 },
   { 0x1d7a2, G_UNICODE_NOT_PRESENT_OFFSET, 1408 },
-  { 0x1d7a3, G_UNICODE_NOT_PRESENT_OFFSET, 15313 },
+  { 0x1d7a3, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
   { 0x1d7a4, G_UNICODE_NOT_PRESENT_OFFSET, 1374 },
-  { 0x1d7a5, G_UNICODE_NOT_PRESENT_OFFSET, 15316 },
-  { 0x1d7a6, G_UNICODE_NOT_PRESENT_OFFSET, 15319 },
-  { 0x1d7a7, G_UNICODE_NOT_PRESENT_OFFSET, 15322 },
+  { 0x1d7a5, G_UNICODE_NOT_PRESENT_OFFSET, 15328 },
+  { 0x1d7a6, G_UNICODE_NOT_PRESENT_OFFSET, 15331 },
+  { 0x1d7a7, G_UNICODE_NOT_PRESENT_OFFSET, 15334 },
   { 0x1d7a8, G_UNICODE_NOT_PRESENT_OFFSET, 5333 },
-  { 0x1d7a9, G_UNICODE_NOT_PRESENT_OFFSET, 15325 },
-  { 0x1d7aa, G_UNICODE_NOT_PRESENT_OFFSET, 15329 },
+  { 0x1d7a9, G_UNICODE_NOT_PRESENT_OFFSET, 15337 },
+  { 0x1d7aa, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
   { 0x1d7ab, G_UNICODE_NOT_PRESENT_OFFSET, 1368 },
   { 0x1d7ac, G_UNICODE_NOT_PRESENT_OFFSET, 2418 },
   { 0x1d7ad, G_UNICODE_NOT_PRESENT_OFFSET, 2421 },
   { 0x1d7ae, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
-  { 0x1d7af, G_UNICODE_NOT_PRESENT_OFFSET, 15332 },
-  { 0x1d7b0, G_UNICODE_NOT_PRESENT_OFFSET, 15335 },
+  { 0x1d7af, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
+  { 0x1d7b0, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
   { 0x1d7b1, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d7b2, G_UNICODE_NOT_PRESENT_OFFSET, 4860 },
   { 0x1d7b3, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
-  { 0x1d7b4, G_UNICODE_NOT_PRESENT_OFFSET, 15338 },
+  { 0x1d7b4, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
   { 0x1d7b5, G_UNICODE_NOT_PRESENT_OFFSET, 20 },
-  { 0x1d7b6, G_UNICODE_NOT_PRESENT_OFFSET, 15341 },
-  { 0x1d7b7, G_UNICODE_NOT_PRESENT_OFFSET, 15344 },
-  { 0x1d7b8, G_UNICODE_NOT_PRESENT_OFFSET, 15347 },
+  { 0x1d7b6, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
+  { 0x1d7b7, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d7b8, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
   { 0x1d7b9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
   { 0x1d7ba, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d7bb, G_UNICODE_NOT_PRESENT_OFFSET, 1399 },
-  { 0x1d7bc, G_UNICODE_NOT_PRESENT_OFFSET, 15350 },
-  { 0x1d7bd, G_UNICODE_NOT_PRESENT_OFFSET, 15353 },
-  { 0x1d7be, G_UNICODE_NOT_PRESENT_OFFSET, 15356 },
+  { 0x1d7bc, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
+  { 0x1d7bd, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d7be, G_UNICODE_NOT_PRESENT_OFFSET, 15368 },
   { 0x1d7bf, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d7c0, G_UNICODE_NOT_PRESENT_OFFSET, 2424 },
-  { 0x1d7c1, G_UNICODE_NOT_PRESENT_OFFSET, 15359 },
-  { 0x1d7c2, G_UNICODE_NOT_PRESENT_OFFSET, 15362 },
-  { 0x1d7c3, G_UNICODE_NOT_PRESENT_OFFSET, 15365 },
+  { 0x1d7c1, G_UNICODE_NOT_PRESENT_OFFSET, 15371 },
+  { 0x1d7c2, G_UNICODE_NOT_PRESENT_OFFSET, 15374 },
+  { 0x1d7c3, G_UNICODE_NOT_PRESENT_OFFSET, 15377 },
   { 0x1d7c4, G_UNICODE_NOT_PRESENT_OFFSET, 1405 },
   { 0x1d7c5, G_UNICODE_NOT_PRESENT_OFFSET, 1371 },
   { 0x1d7c6, G_UNICODE_NOT_PRESENT_OFFSET, 1393 },
   { 0x1d7c7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 },
   { 0x1d7c8, G_UNICODE_NOT_PRESENT_OFFSET, 1396 },
   { 0x1d7c9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 },
-  { 0x1d7ca, G_UNICODE_NOT_PRESENT_OFFSET, 15369 },
-  { 0x1d7cb, G_UNICODE_NOT_PRESENT_OFFSET, 15372 },
+  { 0x1d7ca, G_UNICODE_NOT_PRESENT_OFFSET, 15381 },
+  { 0x1d7cb, G_UNICODE_NOT_PRESENT_OFFSET, 15384 },
   { 0x1d7ce, G_UNICODE_NOT_PRESENT_OFFSET, 5253 },
   { 0x1d7cf, G_UNICODE_NOT_PRESENT_OFFSET, 27 },
   { 0x1d7d0, G_UNICODE_NOT_PRESENT_OFFSET, 12 },
@@ -7293,189 +7346,189 @@ static const decomposition decomp_table[] =
   { 0x1d7fd, G_UNICODE_NOT_PRESENT_OFFSET, 5261 },
   { 0x1d7fe, G_UNICODE_NOT_PRESENT_OFFSET, 5263 },
   { 0x1d7ff, G_UNICODE_NOT_PRESENT_OFFSET, 5265 },
-  { 0x1ee00, G_UNICODE_NOT_PRESENT_OFFSET, 14768 },
-  { 0x1ee01, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
-  { 0x1ee02, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0x1ee03, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
-  { 0x1ee05, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
-  { 0x1ee06, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
-  { 0x1ee07, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0x1ee08, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
-  { 0x1ee09, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0x1ee0a, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
-  { 0x1ee0b, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
-  { 0x1ee0c, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
-  { 0x1ee0d, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0x1ee0e, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0x1ee0f, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0x1ee10, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
-  { 0x1ee11, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0x1ee12, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0x1ee13, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
-  { 0x1ee14, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0x1ee15, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
-  { 0x1ee16, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
-  { 0x1ee17, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0x1ee18, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
-  { 0x1ee19, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0x1ee1a, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
-  { 0x1ee1b, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0x1ee1c, G_UNICODE_NOT_PRESENT_OFFSET, 15375 },
-  { 0x1ee1d, G_UNICODE_NOT_PRESENT_OFFSET, 12859 },
-  { 0x1ee1e, G_UNICODE_NOT_PRESENT_OFFSET, 15378 },
-  { 0x1ee1f, G_UNICODE_NOT_PRESENT_OFFSET, 15381 },
-  { 0x1ee21, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
-  { 0x1ee22, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0x1ee24, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
-  { 0x1ee27, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0x1ee29, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0x1ee2a, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
-  { 0x1ee2b, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
-  { 0x1ee2c, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
-  { 0x1ee2d, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0x1ee2e, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0x1ee2f, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0x1ee30, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
-  { 0x1ee31, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0x1ee32, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0x1ee34, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0x1ee35, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
-  { 0x1ee36, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
-  { 0x1ee37, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0x1ee39, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0x1ee3b, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0x1ee42, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0x1ee47, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0x1ee49, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0x1ee4b, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
-  { 0x1ee4d, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0x1ee4e, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0x1ee4f, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0x1ee51, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0x1ee52, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0x1ee54, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0x1ee57, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0x1ee59, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0x1ee5b, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0x1ee5d, G_UNICODE_NOT_PRESENT_OFFSET, 12859 },
-  { 0x1ee5f, G_UNICODE_NOT_PRESENT_OFFSET, 15381 },
-  { 0x1ee61, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
-  { 0x1ee62, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0x1ee64, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
-  { 0x1ee67, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0x1ee68, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
-  { 0x1ee69, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0x1ee6a, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
-  { 0x1ee6c, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
-  { 0x1ee6d, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0x1ee6e, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0x1ee6f, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0x1ee70, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
-  { 0x1ee71, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0x1ee72, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0x1ee74, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0x1ee75, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
-  { 0x1ee76, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
-  { 0x1ee77, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0x1ee79, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0x1ee7a, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
-  { 0x1ee7b, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0x1ee7c, G_UNICODE_NOT_PRESENT_OFFSET, 15375 },
-  { 0x1ee7e, G_UNICODE_NOT_PRESENT_OFFSET, 15378 },
-  { 0x1ee80, G_UNICODE_NOT_PRESENT_OFFSET, 14768 },
-  { 0x1ee81, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
-  { 0x1ee82, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0x1ee83, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
-  { 0x1ee84, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
-  { 0x1ee85, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
-  { 0x1ee86, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
-  { 0x1ee87, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0x1ee88, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
-  { 0x1ee89, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0x1ee8b, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
-  { 0x1ee8c, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
-  { 0x1ee8d, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0x1ee8e, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0x1ee8f, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0x1ee90, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
-  { 0x1ee91, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0x1ee92, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0x1ee93, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
-  { 0x1ee94, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0x1ee95, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
-  { 0x1ee96, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
-  { 0x1ee97, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0x1ee98, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
-  { 0x1ee99, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0x1ee9a, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
-  { 0x1ee9b, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0x1eea1, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
-  { 0x1eea2, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
-  { 0x1eea3, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
-  { 0x1eea5, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
-  { 0x1eea6, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
-  { 0x1eea7, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
-  { 0x1eea8, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
-  { 0x1eea9, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
-  { 0x1eeab, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
-  { 0x1eeac, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
-  { 0x1eead, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
-  { 0x1eeae, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
-  { 0x1eeaf, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
-  { 0x1eeb0, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
-  { 0x1eeb1, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
-  { 0x1eeb2, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
-  { 0x1eeb3, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
-  { 0x1eeb4, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
-  { 0x1eeb5, G_UNICODE_NOT_PRESENT_OFFSET, 14777 },
-  { 0x1eeb6, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
-  { 0x1eeb7, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
-  { 0x1eeb8, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
-  { 0x1eeb9, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
-  { 0x1eeba, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
-  { 0x1eebb, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
-  { 0x1f100, G_UNICODE_NOT_PRESENT_OFFSET, 15384 },
-  { 0x1f101, G_UNICODE_NOT_PRESENT_OFFSET, 15387 },
-  { 0x1f102, G_UNICODE_NOT_PRESENT_OFFSET, 15390 },
-  { 0x1f103, G_UNICODE_NOT_PRESENT_OFFSET, 15393 },
-  { 0x1f104, G_UNICODE_NOT_PRESENT_OFFSET, 15396 },
-  { 0x1f105, G_UNICODE_NOT_PRESENT_OFFSET, 15399 },
-  { 0x1f106, G_UNICODE_NOT_PRESENT_OFFSET, 15402 },
-  { 0x1f107, G_UNICODE_NOT_PRESENT_OFFSET, 15405 },
-  { 0x1f108, G_UNICODE_NOT_PRESENT_OFFSET, 15408 },
-  { 0x1f109, G_UNICODE_NOT_PRESENT_OFFSET, 15411 },
-  { 0x1f10a, G_UNICODE_NOT_PRESENT_OFFSET, 15414 },
-  { 0x1f110, G_UNICODE_NOT_PRESENT_OFFSET, 15417 },
-  { 0x1f111, G_UNICODE_NOT_PRESENT_OFFSET, 15421 },
-  { 0x1f112, G_UNICODE_NOT_PRESENT_OFFSET, 15425 },
-  { 0x1f113, G_UNICODE_NOT_PRESENT_OFFSET, 15429 },
-  { 0x1f114, G_UNICODE_NOT_PRESENT_OFFSET, 15433 },
-  { 0x1f115, G_UNICODE_NOT_PRESENT_OFFSET, 15437 },
-  { 0x1f116, G_UNICODE_NOT_PRESENT_OFFSET, 15441 },
-  { 0x1f117, G_UNICODE_NOT_PRESENT_OFFSET, 15445 },
-  { 0x1f118, G_UNICODE_NOT_PRESENT_OFFSET, 15449 },
-  { 0x1f119, G_UNICODE_NOT_PRESENT_OFFSET, 15453 },
-  { 0x1f11a, G_UNICODE_NOT_PRESENT_OFFSET, 15457 },
-  { 0x1f11b, G_UNICODE_NOT_PRESENT_OFFSET, 15461 },
-  { 0x1f11c, G_UNICODE_NOT_PRESENT_OFFSET, 15465 },
-  { 0x1f11d, G_UNICODE_NOT_PRESENT_OFFSET, 15469 },
-  { 0x1f11e, G_UNICODE_NOT_PRESENT_OFFSET, 15473 },
-  { 0x1f11f, G_UNICODE_NOT_PRESENT_OFFSET, 15477 },
-  { 0x1f120, G_UNICODE_NOT_PRESENT_OFFSET, 15481 },
-  { 0x1f121, G_UNICODE_NOT_PRESENT_OFFSET, 15485 },
-  { 0x1f122, G_UNICODE_NOT_PRESENT_OFFSET, 15489 },
-  { 0x1f123, G_UNICODE_NOT_PRESENT_OFFSET, 15493 },
-  { 0x1f124, G_UNICODE_NOT_PRESENT_OFFSET, 15497 },
-  { 0x1f125, G_UNICODE_NOT_PRESENT_OFFSET, 15501 },
-  { 0x1f126, G_UNICODE_NOT_PRESENT_OFFSET, 15505 },
-  { 0x1f127, G_UNICODE_NOT_PRESENT_OFFSET, 15509 },
-  { 0x1f128, G_UNICODE_NOT_PRESENT_OFFSET, 15513 },
-  { 0x1f129, G_UNICODE_NOT_PRESENT_OFFSET, 15517 },
-  { 0x1f12a, G_UNICODE_NOT_PRESENT_OFFSET, 15521 },
+  { 0x1ee00, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
+  { 0x1ee01, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
+  { 0x1ee02, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0x1ee03, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
+  { 0x1ee05, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
+  { 0x1ee06, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
+  { 0x1ee07, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0x1ee08, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
+  { 0x1ee09, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0x1ee0a, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
+  { 0x1ee0b, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
+  { 0x1ee0c, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
+  { 0x1ee0d, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0x1ee0e, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0x1ee0f, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0x1ee10, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
+  { 0x1ee11, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0x1ee12, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0x1ee13, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
+  { 0x1ee14, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0x1ee15, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
+  { 0x1ee16, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
+  { 0x1ee17, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0x1ee18, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
+  { 0x1ee19, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0x1ee1a, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
+  { 0x1ee1b, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0x1ee1c, G_UNICODE_NOT_PRESENT_OFFSET, 15387 },
+  { 0x1ee1d, G_UNICODE_NOT_PRESENT_OFFSET, 12862 },
+  { 0x1ee1e, G_UNICODE_NOT_PRESENT_OFFSET, 15390 },
+  { 0x1ee1f, G_UNICODE_NOT_PRESENT_OFFSET, 15393 },
+  { 0x1ee21, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
+  { 0x1ee22, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0x1ee24, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
+  { 0x1ee27, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0x1ee29, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0x1ee2a, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
+  { 0x1ee2b, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
+  { 0x1ee2c, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
+  { 0x1ee2d, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0x1ee2e, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0x1ee2f, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0x1ee30, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
+  { 0x1ee31, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0x1ee32, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0x1ee34, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0x1ee35, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
+  { 0x1ee36, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
+  { 0x1ee37, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0x1ee39, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0x1ee3b, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0x1ee42, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0x1ee47, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0x1ee49, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0x1ee4b, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
+  { 0x1ee4d, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0x1ee4e, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0x1ee4f, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0x1ee51, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0x1ee52, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0x1ee54, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0x1ee57, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0x1ee59, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0x1ee5b, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0x1ee5d, G_UNICODE_NOT_PRESENT_OFFSET, 12862 },
+  { 0x1ee5f, G_UNICODE_NOT_PRESENT_OFFSET, 15393 },
+  { 0x1ee61, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
+  { 0x1ee62, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0x1ee64, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
+  { 0x1ee67, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0x1ee68, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
+  { 0x1ee69, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0x1ee6a, G_UNICODE_NOT_PRESENT_OFFSET, 14837 },
+  { 0x1ee6c, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
+  { 0x1ee6d, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0x1ee6e, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0x1ee6f, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0x1ee70, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
+  { 0x1ee71, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0x1ee72, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0x1ee74, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0x1ee75, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
+  { 0x1ee76, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
+  { 0x1ee77, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0x1ee79, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0x1ee7a, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
+  { 0x1ee7b, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0x1ee7c, G_UNICODE_NOT_PRESENT_OFFSET, 15387 },
+  { 0x1ee7e, G_UNICODE_NOT_PRESENT_OFFSET, 15390 },
+  { 0x1ee80, G_UNICODE_NOT_PRESENT_OFFSET, 14771 },
+  { 0x1ee81, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
+  { 0x1ee82, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0x1ee83, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
+  { 0x1ee84, G_UNICODE_NOT_PRESENT_OFFSET, 14849 },
+  { 0x1ee85, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
+  { 0x1ee86, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
+  { 0x1ee87, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0x1ee88, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
+  { 0x1ee89, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0x1ee8b, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
+  { 0x1ee8c, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
+  { 0x1ee8d, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0x1ee8e, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0x1ee8f, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0x1ee90, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
+  { 0x1ee91, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0x1ee92, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0x1ee93, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
+  { 0x1ee94, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0x1ee95, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
+  { 0x1ee96, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
+  { 0x1ee97, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0x1ee98, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
+  { 0x1ee99, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0x1ee9a, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
+  { 0x1ee9b, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0x1eea1, G_UNICODE_NOT_PRESENT_OFFSET, 14774 },
+  { 0x1eea2, G_UNICODE_NOT_PRESENT_OFFSET, 14786 },
+  { 0x1eea3, G_UNICODE_NOT_PRESENT_OFFSET, 14795 },
+  { 0x1eea5, G_UNICODE_NOT_PRESENT_OFFSET, 14852 },
+  { 0x1eea6, G_UNICODE_NOT_PRESENT_OFFSET, 14804 },
+  { 0x1eea7, G_UNICODE_NOT_PRESENT_OFFSET, 14789 },
+  { 0x1eea8, G_UNICODE_NOT_PRESENT_OFFSET, 14819 },
+  { 0x1eea9, G_UNICODE_NOT_PRESENT_OFFSET, 14855 },
+  { 0x1eeab, G_UNICODE_NOT_PRESENT_OFFSET, 14840 },
+  { 0x1eeac, G_UNICODE_NOT_PRESENT_OFFSET, 14843 },
+  { 0x1eead, G_UNICODE_NOT_PRESENT_OFFSET, 14846 },
+  { 0x1eeae, G_UNICODE_NOT_PRESENT_OFFSET, 14807 },
+  { 0x1eeaf, G_UNICODE_NOT_PRESENT_OFFSET, 14825 },
+  { 0x1eeb0, G_UNICODE_NOT_PRESENT_OFFSET, 14831 },
+  { 0x1eeb1, G_UNICODE_NOT_PRESENT_OFFSET, 14813 },
+  { 0x1eeb2, G_UNICODE_NOT_PRESENT_OFFSET, 14834 },
+  { 0x1eeb3, G_UNICODE_NOT_PRESENT_OFFSET, 14801 },
+  { 0x1eeb4, G_UNICODE_NOT_PRESENT_OFFSET, 14810 },
+  { 0x1eeb5, G_UNICODE_NOT_PRESENT_OFFSET, 14780 },
+  { 0x1eeb6, G_UNICODE_NOT_PRESENT_OFFSET, 14783 },
+  { 0x1eeb7, G_UNICODE_NOT_PRESENT_OFFSET, 14792 },
+  { 0x1eeb8, G_UNICODE_NOT_PRESENT_OFFSET, 14798 },
+  { 0x1eeb9, G_UNICODE_NOT_PRESENT_OFFSET, 14816 },
+  { 0x1eeba, G_UNICODE_NOT_PRESENT_OFFSET, 14822 },
+  { 0x1eebb, G_UNICODE_NOT_PRESENT_OFFSET, 14828 },
+  { 0x1f100, G_UNICODE_NOT_PRESENT_OFFSET, 15396 },
+  { 0x1f101, G_UNICODE_NOT_PRESENT_OFFSET, 15399 },
+  { 0x1f102, G_UNICODE_NOT_PRESENT_OFFSET, 15402 },
+  { 0x1f103, G_UNICODE_NOT_PRESENT_OFFSET, 15405 },
+  { 0x1f104, G_UNICODE_NOT_PRESENT_OFFSET, 15408 },
+  { 0x1f105, G_UNICODE_NOT_PRESENT_OFFSET, 15411 },
+  { 0x1f106, G_UNICODE_NOT_PRESENT_OFFSET, 15414 },
+  { 0x1f107, G_UNICODE_NOT_PRESENT_OFFSET, 15417 },
+  { 0x1f108, G_UNICODE_NOT_PRESENT_OFFSET, 15420 },
+  { 0x1f109, G_UNICODE_NOT_PRESENT_OFFSET, 15423 },
+  { 0x1f10a, G_UNICODE_NOT_PRESENT_OFFSET, 15426 },
+  { 0x1f110, G_UNICODE_NOT_PRESENT_OFFSET, 15429 },
+  { 0x1f111, G_UNICODE_NOT_PRESENT_OFFSET, 15433 },
+  { 0x1f112, G_UNICODE_NOT_PRESENT_OFFSET, 15437 },
+  { 0x1f113, G_UNICODE_NOT_PRESENT_OFFSET, 15441 },
+  { 0x1f114, G_UNICODE_NOT_PRESENT_OFFSET, 15445 },
+  { 0x1f115, G_UNICODE_NOT_PRESENT_OFFSET, 15449 },
+  { 0x1f116, G_UNICODE_NOT_PRESENT_OFFSET, 15453 },
+  { 0x1f117, G_UNICODE_NOT_PRESENT_OFFSET, 15457 },
+  { 0x1f118, G_UNICODE_NOT_PRESENT_OFFSET, 15461 },
+  { 0x1f119, G_UNICODE_NOT_PRESENT_OFFSET, 15465 },
+  { 0x1f11a, G_UNICODE_NOT_PRESENT_OFFSET, 15469 },
+  { 0x1f11b, G_UNICODE_NOT_PRESENT_OFFSET, 15473 },
+  { 0x1f11c, G_UNICODE_NOT_PRESENT_OFFSET, 15477 },
+  { 0x1f11d, G_UNICODE_NOT_PRESENT_OFFSET, 15481 },
+  { 0x1f11e, G_UNICODE_NOT_PRESENT_OFFSET, 15485 },
+  { 0x1f11f, G_UNICODE_NOT_PRESENT_OFFSET, 15489 },
+  { 0x1f120, G_UNICODE_NOT_PRESENT_OFFSET, 15493 },
+  { 0x1f121, G_UNICODE_NOT_PRESENT_OFFSET, 15497 },
+  { 0x1f122, G_UNICODE_NOT_PRESENT_OFFSET, 15501 },
+  { 0x1f123, G_UNICODE_NOT_PRESENT_OFFSET, 15505 },
+  { 0x1f124, G_UNICODE_NOT_PRESENT_OFFSET, 15509 },
+  { 0x1f125, G_UNICODE_NOT_PRESENT_OFFSET, 15513 },
+  { 0x1f126, G_UNICODE_NOT_PRESENT_OFFSET, 15517 },
+  { 0x1f127, G_UNICODE_NOT_PRESENT_OFFSET, 15521 },
+  { 0x1f128, G_UNICODE_NOT_PRESENT_OFFSET, 15525 },
+  { 0x1f129, G_UNICODE_NOT_PRESENT_OFFSET, 15529 },
+  { 0x1f12a, G_UNICODE_NOT_PRESENT_OFFSET, 15533 },
   { 0x1f12b, G_UNICODE_NOT_PRESENT_OFFSET, 5292 },
   { 0x1f12c, G_UNICODE_NOT_PRESENT_OFFSET, 2346 },
-  { 0x1f12d, G_UNICODE_NOT_PRESENT_OFFSET, 15529 },
-  { 0x1f12e, G_UNICODE_NOT_PRESENT_OFFSET, 15532 },
+  { 0x1f12d, G_UNICODE_NOT_PRESENT_OFFSET, 15541 },
+  { 0x1f12e, G_UNICODE_NOT_PRESENT_OFFSET, 15544 },
   { 0x1f130, G_UNICODE_NOT_PRESENT_OFFSET, 2309 },
   { 0x1f131, G_UNICODE_NOT_PRESENT_OFFSET, 2314 },
   { 0x1f132, G_UNICODE_NOT_PRESENT_OFFSET, 5292 },
@@ -7502,616 +7555,626 @@ static const decomposition decomp_table[] =
   { 0x1f147, G_UNICODE_NOT_PRESENT_OFFSET, 5487 },
   { 0x1f148, G_UNICODE_NOT_PRESENT_OFFSET, 6135 },
   { 0x1f149, G_UNICODE_NOT_PRESENT_OFFSET, 5331 },
-  { 0x1f14a, G_UNICODE_NOT_PRESENT_OFFSET, 15535 },
+  { 0x1f14a, G_UNICODE_NOT_PRESENT_OFFSET, 15547 },
   { 0x1f14b, G_UNICODE_NOT_PRESENT_OFFSET, 10563 },
-  { 0x1f14c, G_UNICODE_NOT_PRESENT_OFFSET, 15538 },
-  { 0x1f14d, G_UNICODE_NOT_PRESENT_OFFSET, 15541 },
-  { 0x1f14e, G_UNICODE_NOT_PRESENT_OFFSET, 15544 },
-  { 0x1f14f, G_UNICODE_NOT_PRESENT_OFFSET, 15548 },
-  { 0x1f16a, G_UNICODE_NOT_PRESENT_OFFSET, 15551 },
-  { 0x1f16b, G_UNICODE_NOT_PRESENT_OFFSET, 15554 },
-  { 0x1f16c, G_UNICODE_NOT_PRESENT_OFFSET, 15557 },
-  { 0x1f190, G_UNICODE_NOT_PRESENT_OFFSET, 15560 },
-  { 0x1f200, G_UNICODE_NOT_PRESENT_OFFSET, 15563 },
-  { 0x1f201, G_UNICODE_NOT_PRESENT_OFFSET, 15570 },
+  { 0x1f14c, G_UNICODE_NOT_PRESENT_OFFSET, 15550 },
+  { 0x1f14d, G_UNICODE_NOT_PRESENT_OFFSET, 15553 },
+  { 0x1f14e, G_UNICODE_NOT_PRESENT_OFFSET, 15556 },
+  { 0x1f14f, G_UNICODE_NOT_PRESENT_OFFSET, 15560 },
+  { 0x1f16a, G_UNICODE_NOT_PRESENT_OFFSET, 15563 },
+  { 0x1f16b, G_UNICODE_NOT_PRESENT_OFFSET, 15566 },
+  { 0x1f16c, G_UNICODE_NOT_PRESENT_OFFSET, 15569 },
+  { 0x1f190, G_UNICODE_NOT_PRESENT_OFFSET, 15572 },
+  { 0x1f200, G_UNICODE_NOT_PRESENT_OFFSET, 15575 },
+  { 0x1f201, G_UNICODE_NOT_PRESENT_OFFSET, 15582 },
   { 0x1f202, G_UNICODE_NOT_PRESENT_OFFSET, 8848 },
   { 0x1f210, G_UNICODE_NOT_PRESENT_OFFSET, 6433 },
-  { 0x1f211, G_UNICODE_NOT_PRESENT_OFFSET, 15577 },
-  { 0x1f212, G_UNICODE_NOT_PRESENT_OFFSET, 15581 },
+  { 0x1f211, G_UNICODE_NOT_PRESENT_OFFSET, 15589 },
+  { 0x1f212, G_UNICODE_NOT_PRESENT_OFFSET, 15593 },
   { 0x1f213, G_UNICODE_NOT_PRESENT_OFFSET, 7346 },
   { 0x1f214, G_UNICODE_NOT_PRESENT_OFFSET, 6205 },
-  { 0x1f215, G_UNICODE_NOT_PRESENT_OFFSET, 15585 },
-  { 0x1f216, G_UNICODE_NOT_PRESENT_OFFSET, 15589 },
+  { 0x1f215, G_UNICODE_NOT_PRESENT_OFFSET, 15597 },
+  { 0x1f216, G_UNICODE_NOT_PRESENT_OFFSET, 15601 },
   { 0x1f217, G_UNICODE_NOT_PRESENT_OFFSET, 7887 },
-  { 0x1f218, G_UNICODE_NOT_PRESENT_OFFSET, 15593 },
-  { 0x1f219, G_UNICODE_NOT_PRESENT_OFFSET, 15597 },
-  { 0x1f21a, G_UNICODE_NOT_PRESENT_OFFSET, 15601 },
-  { 0x1f21b, G_UNICODE_NOT_PRESENT_OFFSET, 11626 },
-  { 0x1f21c, G_UNICODE_NOT_PRESENT_OFFSET, 15605 },
-  { 0x1f21d, G_UNICODE_NOT_PRESENT_OFFSET, 15609 },
-  { 0x1f21e, G_UNICODE_NOT_PRESENT_OFFSET, 15613 },
-  { 0x1f21f, G_UNICODE_NOT_PRESENT_OFFSET, 15617 },
-  { 0x1f220, G_UNICODE_NOT_PRESENT_OFFSET, 15621 },
-  { 0x1f221, G_UNICODE_NOT_PRESENT_OFFSET, 15625 },
+  { 0x1f218, G_UNICODE_NOT_PRESENT_OFFSET, 15605 },
+  { 0x1f219, G_UNICODE_NOT_PRESENT_OFFSET, 15609 },
+  { 0x1f21a, G_UNICODE_NOT_PRESENT_OFFSET, 15613 },
+  { 0x1f21b, G_UNICODE_NOT_PRESENT_OFFSET, 11629 },
+  { 0x1f21c, G_UNICODE_NOT_PRESENT_OFFSET, 15617 },
+  { 0x1f21d, G_UNICODE_NOT_PRESENT_OFFSET, 15621 },
+  { 0x1f21e, G_UNICODE_NOT_PRESENT_OFFSET, 15625 },
+  { 0x1f21f, G_UNICODE_NOT_PRESENT_OFFSET, 15629 },
+  { 0x1f220, G_UNICODE_NOT_PRESENT_OFFSET, 15633 },
+  { 0x1f221, G_UNICODE_NOT_PRESENT_OFFSET, 15637 },
   { 0x1f222, G_UNICODE_NOT_PRESENT_OFFSET, 6577 },
-  { 0x1f223, G_UNICODE_NOT_PRESENT_OFFSET, 15629 },
-  { 0x1f224, G_UNICODE_NOT_PRESENT_OFFSET, 15633 },
-  { 0x1f225, G_UNICODE_NOT_PRESENT_OFFSET, 15637 },
-  { 0x1f226, G_UNICODE_NOT_PRESENT_OFFSET, 15641 },
-  { 0x1f227, G_UNICODE_NOT_PRESENT_OFFSET, 15645 },
-  { 0x1f228, G_UNICODE_NOT_PRESENT_OFFSET, 15649 },
+  { 0x1f223, G_UNICODE_NOT_PRESENT_OFFSET, 15641 },
+  { 0x1f224, G_UNICODE_NOT_PRESENT_OFFSET, 15645 },
+  { 0x1f225, G_UNICODE_NOT_PRESENT_OFFSET, 15649 },
+  { 0x1f226, G_UNICODE_NOT_PRESENT_OFFSET, 15653 },
+  { 0x1f227, G_UNICODE_NOT_PRESENT_OFFSET, 15657 },
+  { 0x1f228, G_UNICODE_NOT_PRESENT_OFFSET, 15661 },
   { 0x1f229, G_UNICODE_NOT_PRESENT_OFFSET, 6181 },
   { 0x1f22a, G_UNICODE_NOT_PRESENT_OFFSET, 7855 },
-  { 0x1f22b, G_UNICODE_NOT_PRESENT_OFFSET, 15653 },
+  { 0x1f22b, G_UNICODE_NOT_PRESENT_OFFSET, 15665 },
   { 0x1f22c, G_UNICODE_NOT_PRESENT_OFFSET, 8646 },
   { 0x1f22d, G_UNICODE_NOT_PRESENT_OFFSET, 7867 },
   { 0x1f22e, G_UNICODE_NOT_PRESENT_OFFSET, 8650 },
-  { 0x1f22f, G_UNICODE_NOT_PRESENT_OFFSET, 15657 },
+  { 0x1f22f, G_UNICODE_NOT_PRESENT_OFFSET, 15669 },
   { 0x1f230, G_UNICODE_NOT_PRESENT_OFFSET, 6801 },
-  { 0x1f231, G_UNICODE_NOT_PRESENT_OFFSET, 15661 },
-  { 0x1f232, G_UNICODE_NOT_PRESENT_OFFSET, 15665 },
-  { 0x1f233, G_UNICODE_NOT_PRESENT_OFFSET, 15669 },
-  { 0x1f234, G_UNICODE_NOT_PRESENT_OFFSET, 15673 },
-  { 0x1f235, G_UNICODE_NOT_PRESENT_OFFSET, 15677 },
+  { 0x1f231, G_UNICODE_NOT_PRESENT_OFFSET, 15673 },
+  { 0x1f232, G_UNICODE_NOT_PRESENT_OFFSET, 15677 },
+  { 0x1f233, G_UNICODE_NOT_PRESENT_OFFSET, 15681 },
+  { 0x1f234, G_UNICODE_NOT_PRESENT_OFFSET, 15685 },
+  { 0x1f235, G_UNICODE_NOT_PRESENT_OFFSET, 15689 },
   { 0x1f236, G_UNICODE_NOT_PRESENT_OFFSET, 8578 },
   { 0x1f237, G_UNICODE_NOT_PRESENT_OFFSET, 6473 },
-  { 0x1f238, G_UNICODE_NOT_PRESENT_OFFSET, 15681 },
-  { 0x1f239, G_UNICODE_NOT_PRESENT_OFFSET, 15685 },
-  { 0x1f23a, G_UNICODE_NOT_PRESENT_OFFSET, 15689 },
-  { 0x1f23b, G_UNICODE_NOT_PRESENT_OFFSET, 15693 },
-  { 0x1f240, G_UNICODE_NOT_PRESENT_OFFSET, 15697 },
-  { 0x1f241, G_UNICODE_NOT_PRESENT_OFFSET, 15707 },
-  { 0x1f242, G_UNICODE_NOT_PRESENT_OFFSET, 15717 },
-  { 0x1f243, G_UNICODE_NOT_PRESENT_OFFSET, 15727 },
-  { 0x1f244, G_UNICODE_NOT_PRESENT_OFFSET, 15737 },
-  { 0x1f245, G_UNICODE_NOT_PRESENT_OFFSET, 15747 },
-  { 0x1f246, G_UNICODE_NOT_PRESENT_OFFSET, 15757 },
-  { 0x1f247, G_UNICODE_NOT_PRESENT_OFFSET, 15767 },
-  { 0x1f248, G_UNICODE_NOT_PRESENT_OFFSET, 15777 },
-  { 0x1f250, G_UNICODE_NOT_PRESENT_OFFSET, 15787 },
-  { 0x1f251, G_UNICODE_NOT_PRESENT_OFFSET, 15791 },
-  { 0x2f800, 15795, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f801, 15799, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f802, 15803, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f803, 15807, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f804, 15812, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f805, 11998, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f806, 15816, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f807, 15820, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f808, 15824, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f809, 15828, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f80a, 12002, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f80b, 15832, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f80c, 15836, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f80d, 15840, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f80e, 12006, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f80f, 15845, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f810, 15849, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f811, 15853, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f812, 15857, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f813, 15862, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f814, 15866, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f815, 15613, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f816, 15870, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f817, 15875, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f818, 15879, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f819, 15883, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f81a, 15887, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f81b, 12227, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f81c, 15891, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x1f238, G_UNICODE_NOT_PRESENT_OFFSET, 15693 },
+  { 0x1f239, G_UNICODE_NOT_PRESENT_OFFSET, 15697 },
+  { 0x1f23a, G_UNICODE_NOT_PRESENT_OFFSET, 15701 },
+  { 0x1f23b, G_UNICODE_NOT_PRESENT_OFFSET, 15705 },
+  { 0x1f240, G_UNICODE_NOT_PRESENT_OFFSET, 15709 },
+  { 0x1f241, G_UNICODE_NOT_PRESENT_OFFSET, 15719 },
+  { 0x1f242, G_UNICODE_NOT_PRESENT_OFFSET, 15729 },
+  { 0x1f243, G_UNICODE_NOT_PRESENT_OFFSET, 15739 },
+  { 0x1f244, G_UNICODE_NOT_PRESENT_OFFSET, 15749 },
+  { 0x1f245, G_UNICODE_NOT_PRESENT_OFFSET, 15759 },
+  { 0x1f246, G_UNICODE_NOT_PRESENT_OFFSET, 15769 },
+  { 0x1f247, G_UNICODE_NOT_PRESENT_OFFSET, 15779 },
+  { 0x1f248, G_UNICODE_NOT_PRESENT_OFFSET, 15789 },
+  { 0x1f250, G_UNICODE_NOT_PRESENT_OFFSET, 15799 },
+  { 0x1f251, G_UNICODE_NOT_PRESENT_OFFSET, 15803 },
+  { 0x1fbf0, G_UNICODE_NOT_PRESENT_OFFSET, 5253 },
+  { 0x1fbf1, G_UNICODE_NOT_PRESENT_OFFSET, 27 },
+  { 0x1fbf2, G_UNICODE_NOT_PRESENT_OFFSET, 12 },
+  { 0x1fbf3, G_UNICODE_NOT_PRESENT_OFFSET, 14 },
+  { 0x1fbf4, G_UNICODE_NOT_PRESENT_OFFSET, 5255 },
+  { 0x1fbf5, G_UNICODE_NOT_PRESENT_OFFSET, 5257 },
+  { 0x1fbf6, G_UNICODE_NOT_PRESENT_OFFSET, 5259 },
+  { 0x1fbf7, G_UNICODE_NOT_PRESENT_OFFSET, 5261 },
+  { 0x1fbf8, G_UNICODE_NOT_PRESENT_OFFSET, 5263 },
+  { 0x1fbf9, G_UNICODE_NOT_PRESENT_OFFSET, 5265 },
+  { 0x2f800, 15807, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f801, 15811, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f802, 15815, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f803, 15819, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f804, 15824, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f805, 12001, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f806, 15828, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f807, 15832, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f808, 15836, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f809, 15840, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f80a, 12005, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f80b, 15844, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f80c, 15848, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f80d, 15852, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f80e, 12009, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f80f, 15857, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f810, 15861, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f811, 15865, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f812, 15869, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f813, 15874, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f814, 15878, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f815, 15625, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f816, 15882, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f817, 15887, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f818, 15891, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f819, 15895, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f81a, 15899, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f81b, 12230, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f81c, 15903, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x2f81d, 6245, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f81e, 15896, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f81f, 15900, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f820, 15904, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f821, 15908, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f822, 15685, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f823, 15912, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f824, 15916, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f825, 12247, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f826, 12010, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f827, 12014, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f828, 12251, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f829, 15920, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f82a, 15924, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f82b, 11282, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f82c, 15928, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f82d, 12018, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f82e, 15932, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f82f, 15936, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f830, 15940, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f831, 15944, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f832, 15944, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f833, 15944, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f834, 15948, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f835, 15953, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f836, 15957, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f837, 15961, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f838, 15965, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f839, 15970, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f83a, 15974, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f83b, 15978, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f83c, 15982, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f83d, 15986, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f83e, 15990, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f83f, 15994, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f840, 15998, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f841, 16002, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f842, 16006, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f843, 16010, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f844, 16014, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f845, 16018, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f846, 16018, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f847, 12259, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f848, 16022, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f849, 16026, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f84a, 16030, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f84b, 16034, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f84c, 12026, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f84d, 16038, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f84e, 16042, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f84f, 16046, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f850, 11866, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f851, 16050, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f852, 16054, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f853, 16058, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f854, 16062, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f855, 16066, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f856, 16070, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f857, 16074, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f858, 16078, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f859, 16082, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f85a, 16087, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f85b, 16091, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f85c, 16095, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f85d, 15585, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f85e, 16099, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f85f, 16103, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f860, 16107, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f861, 16112, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f862, 16117, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f863, 16121, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f864, 16125, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f865, 16129, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f866, 16133, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f867, 16137, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f868, 16141, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f869, 16145, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f86a, 16149, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f86b, 16149, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f86c, 16153, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f86d, 16158, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f86e, 16162, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f86f, 11266, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f870, 16166, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f871, 16170, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f872, 16175, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f873, 16179, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f874, 16183, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f81e, 15908, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f81f, 15912, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f820, 15916, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f821, 15920, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f822, 15697, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f823, 15924, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f824, 15928, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f825, 12250, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f826, 12013, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f827, 12017, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f828, 12254, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f829, 15932, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f82a, 15936, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f82b, 11285, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f82c, 15940, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f82d, 12021, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f82e, 15944, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f82f, 15948, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f830, 15952, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f831, 15956, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f832, 15956, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f833, 15956, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f834, 15960, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f835, 15965, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f836, 15969, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f837, 15973, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f838, 15977, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f839, 15982, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f83a, 15986, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f83b, 15990, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f83c, 15994, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f83d, 15998, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f83e, 16002, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f83f, 16006, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f840, 16010, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f841, 16014, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f842, 16018, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f843, 16022, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f844, 16026, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f845, 16030, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f846, 16030, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f847, 12262, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f848, 16034, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f849, 16038, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f84a, 16042, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f84b, 16046, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f84c, 12029, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f84d, 16050, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f84e, 16054, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f84f, 16058, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f850, 11869, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f851, 16062, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f852, 16066, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f853, 16070, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f854, 16074, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f855, 16078, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f856, 16082, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f857, 16086, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f858, 16090, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f859, 16094, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f85a, 16099, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f85b, 16103, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f85c, 16107, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f85d, 15597, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f85e, 16111, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f85f, 16115, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f860, 16119, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f861, 16124, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f862, 16129, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f863, 16133, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f864, 16137, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f865, 16141, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f866, 16145, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f867, 16149, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f868, 16153, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f869, 16157, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f86a, 16161, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f86b, 16161, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f86c, 16165, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f86d, 16170, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f86e, 16174, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f86f, 11269, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f870, 16178, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f871, 16182, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f872, 16187, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f873, 16191, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f874, 16195, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x2f875, 6349, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f876, 16187, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f877, 16191, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f876, 16199, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f877, 16203, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x2f878, 6357, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f879, 16195, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f87a, 16199, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f87b, 16203, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f87c, 16208, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f87d, 16212, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f87e, 16217, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f87f, 16221, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f880, 16225, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f881, 16229, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f882, 16233, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f883, 16237, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f884, 16241, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f885, 16245, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f886, 16249, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f887, 16253, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f888, 16257, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f889, 16261, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f88a, 16266, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f88b, 16270, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f88c, 16274, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f88d, 16278, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f88e, 11058, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f88f, 16282, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f879, 16207, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f87a, 16211, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f87b, 16215, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f87c, 16220, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f87d, 16224, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f87e, 16229, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f87f, 16233, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f880, 16237, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f881, 16241, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f882, 16245, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f883, 16249, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f884, 16253, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f885, 16257, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f886, 16261, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f887, 16265, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f888, 16269, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f889, 16273, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f88a, 16278, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f88b, 16282, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f88c, 16286, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f88d, 16290, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f88e, 11061, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f88f, 16294, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x2f890, 6397, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f891, 16287, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f892, 16287, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f893, 16292, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f894, 16296, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f895, 16296, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f896, 16300, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f897, 16304, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f898, 16309, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f899, 16314, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f89a, 16318, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f89b, 16322, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f89c, 16326, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f89d, 16330, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f89e, 16334, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f89f, 16338, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a0, 16342, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a1, 16346, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a2, 16350, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a3, 12046, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a4, 16354, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a5, 16359, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a6, 16363, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a7, 16367, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a8, 12307, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8a9, 16367, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8aa, 16371, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ab, 12054, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ac, 16375, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ad, 16379, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ae, 16383, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8af, 16387, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b0, 12058, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b1, 10950, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b2, 16391, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b3, 16395, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b4, 16399, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b5, 16403, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b6, 16407, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b7, 16411, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b8, 16415, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8b9, 16420, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ba, 16424, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8bb, 16428, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8bc, 16432, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8bd, 16436, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8be, 16440, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8bf, 16445, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c0, 16449, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c1, 16453, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c2, 16457, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c3, 16461, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c4, 16465, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c5, 16469, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c6, 16473, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c7, 16477, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c8, 12062, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8c9, 16481, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ca, 16485, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8cb, 16490, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8cc, 16494, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8cd, 16498, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ce, 16502, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8cf, 12070, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d0, 16506, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d1, 16510, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d2, 16514, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d3, 16518, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d4, 16522, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d5, 16526, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d6, 16530, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d7, 16534, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d8, 11062, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8d9, 12339, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8da, 16538, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8db, 16542, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8dc, 16546, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8dd, 16550, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8de, 16555, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8df, 16559, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e0, 16563, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e1, 16567, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e2, 12074, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e3, 16571, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e4, 16576, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e5, 16580, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e6, 16584, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e7, 12510, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e8, 16588, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8e9, 16592, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ea, 16596, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8eb, 16600, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ec, 16604, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ed, 16609, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ee, 16613, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ef, 16617, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f0, 16621, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f1, 16626, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f2, 16630, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f3, 16634, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f4, 16638, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f5, 11334, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f6, 16642, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f7, 16646, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f8, 16651, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8f9, 16656, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8fa, 16661, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8fb, 16665, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8fc, 16670, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8fd, 16674, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8fe, 16678, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f8ff, 16682, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f900, 16686, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f901, 12078, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f902, 11666, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f903, 16690, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f904, 16694, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f905, 16698, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f906, 16702, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f907, 16707, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f908, 16711, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f909, 16715, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f90a, 16719, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f90b, 12351, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f90c, 16723, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f90d, 16727, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f90e, 16732, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f90f, 16736, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f910, 16740, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f911, 16745, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f912, 16750, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f913, 16754, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f914, 12355, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f915, 16758, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f916, 16762, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f917, 16766, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f918, 16770, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f919, 16774, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f91a, 16778, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f91b, 16782, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f91c, 16787, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f91d, 16791, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f91e, 16796, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f91f, 16800, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f920, 16805, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f921, 12363, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f922, 16809, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f923, 16813, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f924, 16818, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f925, 16822, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f926, 16826, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f927, 16831, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f928, 16836, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f929, 16840, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f92a, 16844, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f92b, 16848, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f92c, 16852, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f92d, 16852, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f92e, 16856, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f92f, 16860, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f930, 12371, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f931, 16864, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f932, 16868, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f933, 16872, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f934, 16876, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f935, 16880, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f936, 16885, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f937, 16889, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f938, 11278, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f939, 16894, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f93a, 16899, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f93b, 16903, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f93c, 16908, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f93d, 16913, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f93e, 16918, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f93f, 16922, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f940, 12395, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f941, 16926, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f942, 16931, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f943, 16936, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f944, 16941, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f945, 16946, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f946, 16950, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f947, 16950, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f948, 12399, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f949, 12518, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f94a, 16954, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f94b, 16958, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f94c, 16962, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f94d, 16966, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f94e, 16971, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f94f, 11130, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f950, 12407, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f951, 16975, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f952, 16979, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f953, 12118, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f954, 16984, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f955, 16989, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f956, 11946, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f957, 16994, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f958, 16998, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f959, 12130, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f95a, 17002, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f95b, 17006, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f95c, 17010, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f95d, 17015, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f95e, 17015, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f95f, 17020, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f960, 17024, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f961, 17028, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f962, 17033, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f963, 17037, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f964, 17041, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f965, 17045, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f966, 17050, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f967, 17054, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f968, 17058, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f969, 17062, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f96a, 17066, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f96b, 17070, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f96c, 17075, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f96d, 17079, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f96e, 17083, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f96f, 17087, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f970, 17091, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f971, 17095, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f972, 17099, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f973, 17104, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f974, 17109, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f975, 17113, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f976, 17118, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f977, 17122, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f978, 17127, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f979, 17131, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f97a, 12154, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f97b, 17135, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f97c, 17140, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f97d, 17145, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f97e, 17149, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f97f, 17154, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f980, 17158, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f981, 17163, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f982, 17167, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f983, 17171, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f984, 17175, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f985, 17179, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f986, 17183, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f987, 17187, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f988, 17192, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f989, 17197, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f98a, 17202, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f98b, 16292, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f98c, 17207, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f98d, 17211, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f98e, 17215, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f98f, 17219, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f990, 17223, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f991, 17227, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f992, 17231, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f993, 17235, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f994, 17239, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f995, 17243, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f996, 17247, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f997, 17251, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f998, 11346, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f999, 17256, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f99a, 17260, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f99b, 17264, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f99c, 17268, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f99d, 17272, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f99e, 17276, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f99f, 12166, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a0, 17280, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a1, 17284, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a2, 17288, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a3, 17292, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a4, 17296, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a5, 17301, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a6, 17306, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a7, 17311, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a8, 17315, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9a9, 17319, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9aa, 17323, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ab, 17327, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ac, 17332, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ad, 17336, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ae, 17341, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9af, 17345, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b0, 17349, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b1, 17354, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b2, 17359, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b3, 17363, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b4, 11110, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b5, 17367, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b6, 17371, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b7, 17375, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b8, 17379, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9b9, 17383, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ba, 17387, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9bb, 12435, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9bc, 17391, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9bd, 17395, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9be, 17399, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9bf, 17403, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9c0, 17407, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9c1, 17411, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9c2, 17415, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9c3, 17419, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f891, 16299, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f892, 16299, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f893, 16304, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f894, 16308, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f895, 16308, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f896, 16312, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f897, 16316, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f898, 16321, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f899, 16326, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f89a, 16330, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f89b, 16334, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f89c, 16338, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f89d, 16342, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f89e, 16346, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f89f, 16350, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a0, 16354, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a1, 16358, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a2, 16362, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a3, 12049, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a4, 16366, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a5, 16371, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a6, 16375, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a7, 16379, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a8, 12310, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8a9, 16379, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8aa, 16383, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ab, 12057, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ac, 16387, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ad, 16391, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ae, 16395, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8af, 16399, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b0, 12061, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b1, 10953, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b2, 16403, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b3, 16407, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b4, 16411, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b5, 16415, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b6, 16419, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b7, 16423, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b8, 16427, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8b9, 16432, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ba, 16436, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8bb, 16440, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8bc, 16444, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8bd, 16448, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8be, 16452, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8bf, 16457, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c0, 16461, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c1, 16465, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c2, 16469, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c3, 16473, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c4, 16477, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c5, 16481, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c6, 16485, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c7, 16489, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c8, 12065, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8c9, 16493, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ca, 16497, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8cb, 16502, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8cc, 16506, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8cd, 16510, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ce, 16514, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8cf, 12073, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d0, 16518, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d1, 16522, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d2, 16526, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d3, 16530, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d4, 16534, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d5, 16538, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d6, 16542, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d7, 16546, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d8, 11065, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8d9, 12342, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8da, 16550, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8db, 16554, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8dc, 16558, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8dd, 16562, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8de, 16567, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8df, 16571, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e0, 16575, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e1, 16579, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e2, 12077, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e3, 16583, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e4, 16588, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e5, 16592, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e6, 16596, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e7, 12513, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e8, 16600, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8e9, 16604, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ea, 16608, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8eb, 16612, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ec, 16616, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ed, 16621, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ee, 16625, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ef, 16629, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f0, 16633, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f1, 16638, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f2, 16642, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f3, 16646, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f4, 16650, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f5, 11337, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f6, 16654, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f7, 16658, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f8, 16663, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8f9, 16668, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8fa, 16673, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8fb, 16677, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8fc, 16682, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8fd, 16686, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8fe, 16690, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f8ff, 16694, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f900, 16698, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f901, 12081, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f902, 11669, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f903, 16702, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f904, 16706, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f905, 16710, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f906, 16714, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f907, 16719, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f908, 16723, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f909, 16727, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f90a, 16731, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f90b, 12354, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f90c, 16735, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f90d, 16739, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f90e, 16744, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f90f, 16748, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f910, 16752, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f911, 16757, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f912, 16762, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f913, 16766, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f914, 12358, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f915, 16770, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f916, 16774, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f917, 16778, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f918, 16782, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f919, 16786, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f91a, 16790, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f91b, 16794, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f91c, 16799, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f91d, 16803, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f91e, 16808, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f91f, 16812, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f920, 16817, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f921, 12366, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f922, 16821, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f923, 16825, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f924, 16830, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f925, 16834, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f926, 16838, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f927, 16843, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f928, 16848, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f929, 16852, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f92a, 16856, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f92b, 16860, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f92c, 16864, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f92d, 16864, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f92e, 16868, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f92f, 16872, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f930, 12374, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f931, 16876, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f932, 16880, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f933, 16884, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f934, 16888, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f935, 16892, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f936, 16897, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f937, 16901, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f938, 11281, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f939, 16906, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f93a, 16911, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f93b, 16915, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f93c, 16920, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f93d, 16925, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f93e, 16930, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f93f, 16934, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f940, 12398, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f941, 16938, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f942, 16943, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f943, 16948, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f944, 16953, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f945, 16958, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f946, 16962, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f947, 16962, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f948, 12402, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f949, 12521, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f94a, 16966, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f94b, 16970, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f94c, 16974, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f94d, 16978, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f94e, 16983, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f94f, 11133, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f950, 12410, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f951, 16987, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f952, 16991, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f953, 12121, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f954, 16996, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f955, 17001, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f956, 11949, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f957, 17006, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f958, 17010, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f959, 12133, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f95a, 17014, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f95b, 17018, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f95c, 17022, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f95d, 17027, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f95e, 17027, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f95f, 17032, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f960, 17036, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f961, 17040, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f962, 17045, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f963, 17049, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f964, 17053, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f965, 17057, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f966, 17062, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f967, 17066, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f968, 17070, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f969, 17074, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f96a, 17078, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f96b, 17082, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f96c, 17087, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f96d, 17091, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f96e, 17095, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f96f, 17099, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f970, 17103, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f971, 17107, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f972, 17111, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f973, 17116, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f974, 17121, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f975, 17125, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f976, 17130, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f977, 17134, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f978, 17139, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f979, 17143, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f97a, 12157, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f97b, 17147, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f97c, 17152, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f97d, 17157, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f97e, 17161, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f97f, 17166, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f980, 17170, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f981, 17175, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f982, 17179, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f983, 17183, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f984, 17187, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f985, 17191, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f986, 17195, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f987, 17199, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f988, 17204, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f989, 17209, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f98a, 17214, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f98b, 16304, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f98c, 17219, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f98d, 17223, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f98e, 17227, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f98f, 17231, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f990, 17235, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f991, 17239, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f992, 17243, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f993, 17247, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f994, 17251, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f995, 17255, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f996, 17259, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f997, 17263, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f998, 11349, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f999, 17268, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f99a, 17272, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f99b, 17276, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f99c, 17280, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f99d, 17284, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f99e, 17288, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f99f, 12169, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a0, 17292, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a1, 17296, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a2, 17300, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a3, 17304, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a4, 17308, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a5, 17313, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a6, 17318, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a7, 17323, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a8, 17327, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9a9, 17331, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9aa, 17335, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ab, 17339, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ac, 17344, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ad, 17348, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ae, 17353, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9af, 17357, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b0, 17361, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b1, 17366, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b2, 17371, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b3, 17375, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b4, 11113, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b5, 17379, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b6, 17383, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b7, 17387, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b8, 17391, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9b9, 17395, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ba, 17399, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9bb, 12438, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9bc, 17403, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9bd, 17407, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9be, 17411, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9bf, 17415, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9c0, 17419, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9c1, 17423, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9c2, 17427, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9c3, 17431, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x2f9c4, 6757, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9c5, 17423, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9c6, 17428, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9c7, 17432, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9c8, 17436, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9c9, 17440, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ca, 17444, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9cb, 17448, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9cc, 17453, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9cd, 17458, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ce, 17462, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9cf, 17466, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9d0, 12455, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9d1, 12459, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9c5, 17435, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9c6, 17440, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9c7, 17444, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9c8, 17448, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9c9, 17452, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ca, 17456, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9cb, 17460, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9cc, 17465, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9cd, 17470, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ce, 17474, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9cf, 17478, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9d0, 12458, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9d1, 12462, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x2f9d2, 6785, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9d3, 17470, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9d4, 17475, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9d5, 17479, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9d6, 17483, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9d7, 17487, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9d8, 17491, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9d9, 17496, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9da, 17501, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9db, 17505, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9dc, 17509, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9dd, 17513, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9de, 17518, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9df, 12463, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e0, 17522, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e1, 17527, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e2, 17532, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e3, 17536, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e4, 17540, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e5, 17544, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e6, 17549, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e7, 17553, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e8, 17557, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9e9, 17561, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ea, 17565, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9eb, 17569, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ec, 17573, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ed, 17577, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ee, 17582, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ef, 17586, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f0, 17590, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f1, 17594, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f2, 17599, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f3, 17603, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f4, 17607, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f5, 17611, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f6, 17615, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f7, 17620, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f8, 17625, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9f9, 17629, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9fa, 17633, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9fb, 17637, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9fc, 17642, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9fd, 17646, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9fe, 12487, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2f9ff, 12487, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa00, 17651, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa01, 17655, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa02, 17660, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa03, 17664, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa04, 17668, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa05, 17672, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa06, 17676, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa07, 17680, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa08, 17684, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa09, 17688, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa0a, 12491, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa0b, 17693, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa0c, 17697, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa0d, 17701, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa0e, 17705, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa0f, 17709, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa10, 17713, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa11, 17718, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa12, 17722, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa13, 17727, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa14, 17732, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9d3, 17482, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9d4, 17487, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9d5, 17491, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9d6, 17495, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9d7, 17499, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9d8, 17503, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9d9, 17508, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9da, 17513, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9db, 17517, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9dc, 17521, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9dd, 17525, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9de, 17530, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9df, 12466, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e0, 17534, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e1, 17539, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e2, 17544, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e3, 17548, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e4, 17552, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e5, 17556, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e6, 17561, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e7, 17565, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e8, 17569, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9e9, 17573, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ea, 17577, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9eb, 17581, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ec, 17585, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ed, 17589, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ee, 17594, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ef, 17598, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f0, 17602, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f1, 17606, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f2, 17611, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f3, 17615, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f4, 17619, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f5, 17623, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f6, 17627, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f7, 17632, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f8, 17637, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9f9, 17641, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9fa, 17645, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9fb, 17649, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9fc, 17654, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9fd, 17658, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9fe, 12490, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2f9ff, 12490, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa00, 17663, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa01, 17667, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa02, 17672, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa03, 17676, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa04, 17680, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa05, 17684, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa06, 17688, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa07, 17692, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa08, 17696, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa09, 17700, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa0a, 12494, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa0b, 17705, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa0c, 17709, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa0d, 17713, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa0e, 17717, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa0f, 17721, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa10, 17725, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa11, 17730, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa12, 17734, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa13, 17739, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa14, 17744, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x2fa15, 6977, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa16, 17737, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa16, 17749, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x2fa17, 6993, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa18, 17741, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa19, 17745, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa1a, 17749, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa1b, 17753, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa18, 17753, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa19, 17757, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa1a, 17761, G_UNICODE_NOT_PRESENT_OFFSET },
+  { 0x2fa1b, 17765, G_UNICODE_NOT_PRESENT_OFFSET },
   { 0x2fa1c, 7013, G_UNICODE_NOT_PRESENT_OFFSET },
-  { 0x2fa1d, 17757, G_UNICODE_NOT_PRESENT_OFFSET }
+  { 0x2fa1d, 17769, G_UNICODE_NOT_PRESENT_OFFSET }
 };
 
 static const gchar decomp_expansion_string[] = 
@@ -10253,1520 +10316,1522 @@ static const gchar decomp_expansion_string[] =
   "\xea\xac\xb7\0" /* offset 10903 */
   "\xc9\xab\0" /* offset 10907 */
   "\xea\xad\x92\0" /* offset 10910 */
-  "\xe8\xb1\x88\0" /* offset 10914 */
-  "\xe6\x9b\xb4\0" /* offset 10918 */
-  "\xe8\xb3\x88\0" /* offset 10922 */
-  "\xe6\xbb\x91\0" /* offset 10926 */
-  "\xe4\xb8\xb2\0" /* offset 10930 */
-  "\xe5\x8f\xa5\0" /* offset 10934 */
-  "\xe5\xa5\x91\0" /* offset 10938 */
-  "\xe5\x96\x87\0" /* offset 10942 */
-  "\xe5\xa5\x88\0" /* offset 10946 */
-  "\xe6\x87\xb6\0" /* offset 10950 */
-  "\xe7\x99\xa9\0" /* offset 10954 */
-  "\xe7\xbe\x85\0" /* offset 10958 */
-  "\xe8\x98\xbf\0" /* offset 10962 */
-  "\xe8\x9e\xba\0" /* offset 10966 */
-  "\xe8\xa3\xb8\0" /* offset 10970 */
-  "\xe9\x82\x8f\0" /* offset 10974 */
-  "\xe6\xa8\x82\0" /* offset 10978 */
-  "\xe6\xb4\x9b\0" /* offset 10982 */
-  "\xe7\x83\x99\0" /* offset 10986 */
-  "\xe7\x8f\x9e\0" /* offset 10990 */
-  "\xe8\x90\xbd\0" /* offset 10994 */
-  "\xe9\x85\xaa\0" /* offset 10998 */
-  "\xe9\xa7\xb1\0" /* offset 11002 */
-  "\xe4\xba\x82\0" /* offset 11006 */
-  "\xe5\x8d\xb5\0" /* offset 11010 */
-  "\xe6\xac\x84\0" /* offset 11014 */
-  "\xe7\x88\x9b\0" /* offset 11018 */
-  "\xe8\x98\xad\0" /* offset 11022 */
-  "\xe9\xb8\x9e\0" /* offset 11026 */
-  "\xe5\xb5\x90\0" /* offset 11030 */
-  "\xe6\xbf\xab\0" /* offset 11034 */
-  "\xe8\x97\x8d\0" /* offset 11038 */
-  "\xe8\xa5\xa4\0" /* offset 11042 */
-  "\xe6\x8b\x89\0" /* offset 11046 */
-  "\xe8\x87\x98\0" /* offset 11050 */
-  "\xe8\xa0\x9f\0" /* offset 11054 */
-  "\xe5\xbb\x8a\0" /* offset 11058 */
-  "\xe6\x9c\x97\0" /* offset 11062 */
-  "\xe6\xb5\xaa\0" /* offset 11066 */
-  "\xe7\x8b\xbc\0" /* offset 11070 */
-  "\xe9\x83\x8e\0" /* offset 11074 */
-  "\xe4\xbe\x86\0" /* offset 11078 */
-  "\xe5\x86\xb7\0" /* offset 11082 */
-  "\xe5\x8b\x9e\0" /* offset 11086 */
-  "\xe6\x93\x84\0" /* offset 11090 */
-  "\xe6\xab\x93\0" /* offset 11094 */
-  "\xe7\x88\x90\0" /* offset 11098 */
-  "\xe7\x9b\xa7\0" /* offset 11102 */
-  "\xe8\x98\x86\0" /* offset 11106 */
-  "\xe8\x99\x9c\0" /* offset 11110 */
-  "\xe8\xb7\xaf\0" /* offset 11114 */
-  "\xe9\x9c\xb2\0" /* offset 11118 */
-  "\xe9\xad\xaf\0" /* offset 11122 */
-  "\xe9\xb7\xba\0" /* offset 11126 */
-  "\xe7\xa2\x8c\0" /* offset 11130 */
-  "\xe7\xa5\xbf\0" /* offset 11134 */
-  "\xe7\xb6\xa0\0" /* offset 11138 */
-  "\xe8\x8f\x89\0" /* offset 11142 */
-  "\xe9\x8c\x84\0" /* offset 11146 */
-  "\xe8\xab\x96\0" /* offset 11150 */
-  "\xe5\xa3\x9f\0" /* offset 11154 */
-  "\xe5\xbc\x84\0" /* offset 11158 */
-  "\xe7\xb1\xa0\0" /* offset 11162 */
-  "\xe8\x81\xbe\0" /* offset 11166 */
-  "\xe7\x89\xa2\0" /* offset 11170 */
-  "\xe7\xa3\x8a\0" /* offset 11174 */
-  "\xe8\xb3\x82\0" /* offset 11178 */
-  "\xe9\x9b\xb7\0" /* offset 11182 */
-  "\xe5\xa3\x98\0" /* offset 11186 */
-  "\xe5\xb1\xa2\0" /* offset 11190 */
-  "\xe6\xa8\x93\0" /* offset 11194 */
-  "\xe6\xb7\x9a\0" /* offset 11198 */
-  "\xe6\xbc\x8f\0" /* offset 11202 */
-  "\xe7\xb4\xaf\0" /* offset 11206 */
-  "\xe7\xb8\xb7\0" /* offset 11210 */
-  "\xe9\x99\x8b\0" /* offset 11214 */
-  "\xe5\x8b\x92\0" /* offset 11218 */
-  "\xe8\x82\x8b\0" /* offset 11222 */
-  "\xe5\x87\x9c\0" /* offset 11226 */
-  "\xe5\x87\x8c\0" /* offset 11230 */
-  "\xe7\xa8\x9c\0" /* offset 11234 */
-  "\xe7\xb6\xbe\0" /* offset 11238 */
-  "\xe8\x8f\xb1\0" /* offset 11242 */
-  "\xe9\x99\xb5\0" /* offset 11246 */
-  "\xe8\xae\x80\0" /* offset 11250 */
-  "\xe6\x8b\x8f\0" /* offset 11254 */
-  "\xe8\xab\xbe\0" /* offset 11258 */
-  "\xe4\xb8\xb9\0" /* offset 11262 */
-  "\xe5\xaf\xa7\0" /* offset 11266 */
-  "\xe6\x80\x92\0" /* offset 11270 */
-  "\xe7\x8e\x87\0" /* offset 11274 */
-  "\xe7\x95\xb0\0" /* offset 11278 */
-  "\xe5\x8c\x97\0" /* offset 11282 */
-  "\xe7\xa3\xbb\0" /* offset 11286 */
-  "\xe4\xbe\xbf\0" /* offset 11290 */
-  "\xe5\xbe\xa9\0" /* offset 11294 */
-  "\xe4\xb8\x8d\0" /* offset 11298 */
-  "\xe6\xb3\x8c\0" /* offset 11302 */
-  "\xe6\x95\xb8\0" /* offset 11306 */
-  "\xe7\xb4\xa2\0" /* offset 11310 */
-  "\xe5\x8f\x83\0" /* offset 11314 */
-  "\xe5\xa1\x9e\0" /* offset 11318 */
-  "\xe7\x9c\x81\0" /* offset 11322 */
-  "\xe8\x91\x89\0" /* offset 11326 */
-  "\xe8\xaa\xaa\0" /* offset 11330 */
-  "\xe6\xae\xba\0" /* offset 11334 */
-  "\xe6\xb2\x88\0" /* offset 11338 */
-  "\xe6\x8b\xbe\0" /* offset 11342 */
-  "\xe8\x8b\xa5\0" /* offset 11346 */
-  "\xe6\x8e\xa0\0" /* offset 11350 */
-  "\xe7\x95\xa5\0" /* offset 11354 */
-  "\xe4\xba\xae\0" /* offset 11358 */
-  "\xe5\x85\xa9\0" /* offset 11362 */
-  "\xe5\x87\x89\0" /* offset 11366 */
-  "\xe6\xa2\x81\0" /* offset 11370 */
-  "\xe7\xb3\xa7\0" /* offset 11374 */
-  "\xe8\x89\xaf\0" /* offset 11378 */
-  "\xe8\xab\x92\0" /* offset 11382 */
-  "\xe9\x87\x8f\0" /* offset 11386 */
-  "\xe5\x8b\xb5\0" /* offset 11390 */
-  "\xe5\x91\x82\0" /* offset 11394 */
-  "\xe5\xbb\xac\0" /* offset 11398 */
-  "\xe6\x97\x85\0" /* offset 11402 */
-  "\xe6\xbf\xbe\0" /* offset 11406 */
-  "\xe7\xa4\xaa\0" /* offset 11410 */
-  "\xe9\x96\xad\0" /* offset 11414 */
-  "\xe9\xa9\xaa\0" /* offset 11418 */
-  "\xe9\xba\x97\0" /* offset 11422 */
-  "\xe9\xbb\x8e\0" /* offset 11426 */
-  "\xe6\x9b\x86\0" /* offset 11430 */
-  "\xe6\xad\xb7\0" /* offset 11434 */
-  "\xe8\xbd\xa2\0" /* offset 11438 */
-  "\xe5\xb9\xb4\0" /* offset 11442 */
-  "\xe6\x86\x90\0" /* offset 11446 */
-  "\xe6\x88\x80\0" /* offset 11450 */
-  "\xe6\x92\x9a\0" /* offset 11454 */
-  "\xe6\xbc\xa3\0" /* offset 11458 */
-  "\xe7\x85\x89\0" /* offset 11462 */
-  "\xe7\x92\x89\0" /* offset 11466 */
-  "\xe7\xa7\x8a\0" /* offset 11470 */
-  "\xe7\xb7\xb4\0" /* offset 11474 */
-  "\xe8\x81\xaf\0" /* offset 11478 */
-  "\xe8\xbc\xa6\0" /* offset 11482 */
-  "\xe8\x93\xae\0" /* offset 11486 */
-  "\xe9\x80\xa3\0" /* offset 11490 */
-  "\xe9\x8d\x8a\0" /* offset 11494 */
-  "\xe5\x88\x97\0" /* offset 11498 */
-  "\xe5\x8a\xa3\0" /* offset 11502 */
-  "\xe5\x92\xbd\0" /* offset 11506 */
-  "\xe7\x83\x88\0" /* offset 11510 */
-  "\xe8\xa3\x82\0" /* offset 11514 */
-  "\xe5\xbb\x89\0" /* offset 11518 */
-  "\xe5\xbf\xb5\0" /* offset 11522 */
-  "\xe6\x8d\xbb\0" /* offset 11526 */
-  "\xe6\xae\xae\0" /* offset 11530 */
-  "\xe7\xb0\xbe\0" /* offset 11534 */
-  "\xe7\x8d\xb5\0" /* offset 11538 */
-  "\xe4\xbb\xa4\0" /* offset 11542 */
-  "\xe5\x9b\xb9\0" /* offset 11546 */
-  "\xe5\xb6\xba\0" /* offset 11550 */
-  "\xe6\x80\x9c\0" /* offset 11554 */
-  "\xe7\x8e\xb2\0" /* offset 11558 */
-  "\xe7\x91\xa9\0" /* offset 11562 */
-  "\xe7\xbe\x9a\0" /* offset 11566 */
-  "\xe8\x81\x86\0" /* offset 11570 */
-  "\xe9\x88\xb4\0" /* offset 11574 */
-  "\xe9\x9b\xb6\0" /* offset 11578 */
-  "\xe9\x9d\x88\0" /* offset 11582 */
-  "\xe9\xa0\x98\0" /* offset 11586 */
-  "\xe4\xbe\x8b\0" /* offset 11590 */
-  "\xe7\xa6\xae\0" /* offset 11594 */
-  "\xe9\x86\xb4\0" /* offset 11598 */
-  "\xe9\x9a\xb8\0" /* offset 11602 */
-  "\xe6\x83\xa1\0" /* offset 11606 */
-  "\xe4\xba\x86\0" /* offset 11610 */
-  "\xe5\x83\x9a\0" /* offset 11614 */
-  "\xe5\xaf\xae\0" /* offset 11618 */
-  "\xe5\xb0\xbf\0" /* offset 11622 */
-  "\xe6\x96\x99\0" /* offset 11626 */
-  "\xe7\x87\x8e\0" /* offset 11630 */
-  "\xe7\x99\x82\0" /* offset 11634 */
-  "\xe8\x93\xbc\0" /* offset 11638 */
-  "\xe9\x81\xbc\0" /* offset 11642 */
-  "\xe6\x9a\x88\0" /* offset 11646 */
-  "\xe9\x98\xae\0" /* offset 11650 */
-  "\xe5\x8a\x89\0" /* offset 11654 */
-  "\xe6\x9d\xbb\0" /* offset 11658 */
-  "\xe6\x9f\xb3\0" /* offset 11662 */
-  "\xe6\xb5\x81\0" /* offset 11666 */
-  "\xe6\xba\x9c\0" /* offset 11670 */
-  "\xe7\x90\x89\0" /* offset 11674 */
-  "\xe7\x95\x99\0" /* offset 11678 */
-  "\xe7\xa1\xab\0" /* offset 11682 */
-  "\xe7\xb4\x90\0" /* offset 11686 */
-  "\xe9\xa1\x9e\0" /* offset 11690 */
-  "\xe6\x88\xae\0" /* offset 11694 */
-  "\xe9\x99\xb8\0" /* offset 11698 */
-  "\xe5\x80\xab\0" /* offset 11702 */
-  "\xe5\xb4\x99\0" /* offset 11706 */
-  "\xe6\xb7\xaa\0" /* offset 11710 */
-  "\xe8\xbc\xaa\0" /* offset 11714 */
-  "\xe5\xbe\x8b\0" /* offset 11718 */
-  "\xe6\x85\x84\0" /* offset 11722 */
-  "\xe6\xa0\x97\0" /* offset 11726 */
-  "\xe9\x9a\x86\0" /* offset 11730 */
-  "\xe5\x88\xa9\0" /* offset 11734 */
-  "\xe5\x90\x8f\0" /* offset 11738 */
-  "\xe5\xb1\xa5\0" /* offset 11742 */
-  "\xe6\x98\x93\0" /* offset 11746 */
-  "\xe6\x9d\x8e\0" /* offset 11750 */
-  "\xe6\xa2\xa8\0" /* offset 11754 */
-  "\xe6\xb3\xa5\0" /* offset 11758 */
-  "\xe7\x90\x86\0" /* offset 11762 */
-  "\xe7\x97\xa2\0" /* offset 11766 */
-  "\xe7\xbd\xb9\0" /* offset 11770 */
-  "\xe8\xa3\x8f\0" /* offset 11774 */
-  "\xe8\xa3\xa1\0" /* offset 11778 */
-  "\xe9\x9b\xa2\0" /* offset 11782 */
-  "\xe5\x8c\xbf\0" /* offset 11786 */
-  "\xe6\xba\xba\0" /* offset 11790 */
-  "\xe5\x90\x9d\0" /* offset 11794 */
-  "\xe7\x87\x90\0" /* offset 11798 */
-  "\xe7\x92\x98\0" /* offset 11802 */
-  "\xe8\x97\xba\0" /* offset 11806 */
-  "\xe9\x9a\xa3\0" /* offset 11810 */
-  "\xe9\xb1\x97\0" /* offset 11814 */
-  "\xe9\xba\x9f\0" /* offset 11818 */
-  "\xe6\x9e\x97\0" /* offset 11822 */
-  "\xe6\xb7\x8b\0" /* offset 11826 */
-  "\xe8\x87\xa8\0" /* offset 11830 */
-  "\xe7\xac\xa0\0" /* offset 11834 */
-  "\xe7\xb2\x92\0" /* offset 11838 */
-  "\xe7\x8b\x80\0" /* offset 11842 */
-  "\xe7\x82\x99\0" /* offset 11846 */
-  "\xe8\xad\x98\0" /* offset 11850 */
-  "\xe4\xbb\x80\0" /* offset 11854 */
-  "\xe8\x8c\xb6\0" /* offset 11858 */
-  "\xe5\x88\xba\0" /* offset 11862 */
-  "\xe5\x88\x87\0" /* offset 11866 */
-  "\xe5\xba\xa6\0" /* offset 11870 */
-  "\xe6\x8b\x93\0" /* offset 11874 */
-  "\xe7\xb3\x96\0" /* offset 11878 */
-  "\xe5\xae\x85\0" /* offset 11882 */
-  "\xe6\xb4\x9e\0" /* offset 11886 */
-  "\xe6\x9a\xb4\0" /* offset 11890 */
-  "\xe8\xbc\xbb\0" /* offset 11894 */
-  "\xe9\x99\x8d\0" /* offset 11898 */
-  "\xe5\xbb\x93\0" /* offset 11902 */
-  "\xe5\x85\x80\0" /* offset 11906 */
-  "\xe5\x97\x80\0" /* offset 11910 */
-  "\xe5\xa1\x9a\0" /* offset 11914 */
-  "\xe6\x99\xb4\0" /* offset 11918 */
-  "\xe5\x87\x9e\0" /* offset 11922 */
-  "\xe7\x8c\xaa\0" /* offset 11926 */
-  "\xe7\x9b\x8a\0" /* offset 11930 */
-  "\xe7\xa4\xbc\0" /* offset 11934 */
-  "\xe7\xa5\x9e\0" /* offset 11938 */
-  "\xe7\xa5\xa5\0" /* offset 11942 */
-  "\xe7\xa6\x8f\0" /* offset 11946 */
-  "\xe9\x9d\x96\0" /* offset 11950 */
-  "\xe7\xb2\xbe\0" /* offset 11954 */
-  "\xe8\x98\x92\0" /* offset 11958 */
-  "\xe8\xab\xb8\0" /* offset 11962 */
-  "\xe9\x80\xb8\0" /* offset 11966 */
-  "\xe9\x83\xbd\0" /* offset 11970 */
-  "\xe9\xa3\xaf\0" /* offset 11974 */
-  "\xe9\xa3\xbc\0" /* offset 11978 */
-  "\xe9\xa4\xa8\0" /* offset 11982 */
-  "\xe9\xb6\xb4\0" /* offset 11986 */
-  "\xe9\x83\x9e\0" /* offset 11990 */
-  "\xe9\x9a\xb7\0" /* offset 11994 */
-  "\xe4\xbe\xae\0" /* offset 11998 */
-  "\xe5\x83\xa7\0" /* offset 12002 */
-  "\xe5\x85\x8d\0" /* offset 12006 */
-  "\xe5\x8b\x89\0" /* offset 12010 */
-  "\xe5\x8b\xa4\0" /* offset 12014 */
-  "\xe5\x8d\x91\0" /* offset 12018 */
-  "\xe5\x96\x9d\0" /* offset 12022 */
-  "\xe5\x98\x86\0" /* offset 12026 */
-  "\xe5\x99\xa8\0" /* offset 12030 */
-  "\xe5\xa1\x80\0" /* offset 12034 */
-  "\xe5\xa2\xa8\0" /* offset 12038 */
-  "\xe5\xb1\xa4\0" /* offset 12042 */
-  "\xe6\x82\x94\0" /* offset 12046 */
-  "\xe6\x85\xa8\0" /* offset 12050 */
-  "\xe6\x86\x8e\0" /* offset 12054 */
-  "\xe6\x87\xb2\0" /* offset 12058 */
-  "\xe6\x95\x8f\0" /* offset 12062 */
-  "\xe6\x97\xa2\0" /* offset 12066 */
-  "\xe6\x9a\x91\0" /* offset 12070 */
-  "\xe6\xa2\x85\0" /* offset 12074 */
-  "\xe6\xb5\xb7\0" /* offset 12078 */
-  "\xe6\xb8\x9a\0" /* offset 12082 */
-  "\xe6\xbc\xa2\0" /* offset 12086 */
-  "\xe7\x85\xae\0" /* offset 12090 */
-  "\xe7\x88\xab\0" /* offset 12094 */
-  "\xe7\x90\xa2\0" /* offset 12098 */
-  "\xe7\xa2\x91\0" /* offset 12102 */
-  "\xe7\xa5\x89\0" /* offset 12106 */
-  "\xe7\xa5\x88\0" /* offset 12110 */
-  "\xe7\xa5\x90\0" /* offset 12114 */
-  "\xe7\xa5\x96\0" /* offset 12118 */
-  "\xe7\xa6\x8d\0" /* offset 12122 */
-  "\xe7\xa6\x8e\0" /* offset 12126 */
-  "\xe7\xa9\x80\0" /* offset 12130 */
-  "\xe7\xaa\x81\0" /* offset 12134 */
-  "\xe7\xaf\x80\0" /* offset 12138 */
-  "\xe7\xb8\x89\0" /* offset 12142 */
-  "\xe7\xb9\x81\0" /* offset 12146 */
-  "\xe7\xbd\xb2\0" /* offset 12150 */
-  "\xe8\x80\x85\0" /* offset 12154 */
-  "\xe8\x87\xad\0" /* offset 12158 */
-  "\xe8\x89\xb9\0" /* offset 12162 */
-  "\xe8\x91\x97\0" /* offset 12166 */
-  "\xe8\xa4\x90\0" /* offset 12170 */
-  "\xe8\xa6\x96\0" /* offset 12174 */
-  "\xe8\xac\x81\0" /* offset 12178 */
-  "\xe8\xac\xb9\0" /* offset 12182 */
-  "\xe8\xb3\x93\0" /* offset 12186 */
-  "\xe8\xb4\x88\0" /* offset 12190 */
-  "\xe8\xbe\xb6\0" /* offset 12194 */
-  "\xe9\x9b\xa3\0" /* offset 12198 */
-  "\xe9\x9f\xbf\0" /* offset 12202 */
-  "\xe9\xa0\xbb\0" /* offset 12206 */
-  "\xe6\x81\xb5\0" /* offset 12210 */
-  "\xf0\xa4\x8b\xae\0" /* offset 12214 */
-  "\xe8\x88\x98\0" /* offset 12219 */
-  "\xe4\xb8\xa6\0" /* offset 12223 */
-  "\xe5\x86\xb5\0" /* offset 12227 */
-  "\xe5\x85\xa8\0" /* offset 12231 */
-  "\xe4\xbe\x80\0" /* offset 12235 */
-  "\xe5\x85\x85\0" /* offset 12239 */
-  "\xe5\x86\x80\0" /* offset 12243 */
-  "\xe5\x8b\x87\0" /* offset 12247 */
-  "\xe5\x8b\xba\0" /* offset 12251 */
-  "\xe5\x95\x95\0" /* offset 12255 */
-  "\xe5\x96\x99\0" /* offset 12259 */
-  "\xe5\x97\xa2\0" /* offset 12263 */
-  "\xe5\xa2\xb3\0" /* offset 12267 */
-  "\xe5\xa5\x84\0" /* offset 12271 */
-  "\xe5\xa5\x94\0" /* offset 12275 */
-  "\xe5\xa9\xa2\0" /* offset 12279 */
-  "\xe5\xac\xa8\0" /* offset 12283 */
-  "\xe5\xbb\x92\0" /* offset 12287 */
-  "\xe5\xbb\x99\0" /* offset 12291 */
-  "\xe5\xbd\xa9\0" /* offset 12295 */
-  "\xe5\xbe\xad\0" /* offset 12299 */
-  "\xe6\x83\x98\0" /* offset 12303 */
-  "\xe6\x85\x8e\0" /* offset 12307 */
-  "\xe6\x84\x88\0" /* offset 12311 */
-  "\xe6\x85\xa0\0" /* offset 12315 */
-  "\xe6\x88\xb4\0" /* offset 12319 */
-  "\xe6\x8f\x84\0" /* offset 12323 */
-  "\xe6\x90\x9c\0" /* offset 12327 */
-  "\xe6\x91\x92\0" /* offset 12331 */
-  "\xe6\x95\x96\0" /* offset 12335 */
-  "\xe6\x9c\x9b\0" /* offset 12339 */
-  "\xe6\x9d\x96\0" /* offset 12343 */
-  "\xe6\xbb\x9b\0" /* offset 12347 */
-  "\xe6\xbb\x8b\0" /* offset 12351 */
-  "\xe7\x80\x9e\0" /* offset 12355 */
-  "\xe7\x9e\xa7\0" /* offset 12359 */
-  "\xe7\x88\xb5\0" /* offset 12363 */
-  "\xe7\x8a\xaf\0" /* offset 12367 */
-  "\xe7\x91\xb1\0" /* offset 12371 */
-  "\xe7\x94\x86\0" /* offset 12375 */
-  "\xe7\x94\xbb\0" /* offset 12379 */
-  "\xe7\x98\x9d\0" /* offset 12383 */
-  "\xe7\x98\x9f\0" /* offset 12387 */
-  "\xe7\x9b\x9b\0" /* offset 12391 */
-  "\xe7\x9b\xb4\0" /* offset 12395 */
-  "\xe7\x9d\x8a\0" /* offset 12399 */
-  "\xe7\x9d\x80\0" /* offset 12403 */
-  "\xe7\xa3\x8c\0" /* offset 12407 */
-  "\xe7\xaa\xb1\0" /* offset 12411 */
-  "\xe7\xb1\xbb\0" /* offset 12415 */
-  "\xe7\xb5\x9b\0" /* offset 12419 */
-  "\xe7\xbc\xbe\0" /* offset 12423 */
-  "\xe8\x8d\x92\0" /* offset 12427 */
-  "\xe8\x8f\xaf\0" /* offset 12431 */
-  "\xe8\x9d\xb9\0" /* offset 12435 */
-  "\xe8\xa5\x81\0" /* offset 12439 */
-  "\xe8\xa6\x86\0" /* offset 12443 */
-  "\xe8\xaa\xbf\0" /* offset 12447 */
-  "\xe8\xab\x8b\0" /* offset 12451 */
-  "\xe8\xab\xad\0" /* offset 12455 */
-  "\xe8\xae\x8a\0" /* offset 12459 */
-  "\xe8\xbc\xb8\0" /* offset 12463 */
-  "\xe9\x81\xb2\0" /* offset 12467 */
-  "\xe9\x86\x99\0" /* offset 12471 */
-  "\xe9\x89\xb6\0" /* offset 12475 */
-  "\xe9\x99\xbc\0" /* offset 12479 */
-  "\xe9\x9f\x9b\0" /* offset 12483 */
-  "\xe9\xa0\x8b\0" /* offset 12487 */
-  "\xe9\xac\x92\0" /* offset 12491 */
-  "\xf0\xa2\xa1\x8a\0" /* offset 12495 */
-  "\xf0\xa2\xa1\x84\0" /* offset 12500 */
-  "\xf0\xa3\x8f\x95\0" /* offset 12505 */
-  "\xe3\xae\x9d\0" /* offset 12510 */
-  "\xe4\x80\x98\0" /* offset 12514 */
-  "\xe4\x80\xb9\0" /* offset 12518 */
-  "\xf0\xa5\x89\x89\0" /* offset 12522 */
-  "\xf0\xa5\xb3\x90\0" /* offset 12527 */
-  "\xf0\xa7\xbb\x93\0" /* offset 12532 */
-  "\xe9\xbd\x83\0" /* offset 12537 */
-  "\xe9\xbe\x8e\0" /* offset 12541 */
-  "\x66\x66\0" /* offset 12545 */
-  "\x66\x69\0" /* offset 12548 */
-  "\x66\x6c\0" /* offset 12551 */
-  "\x66\x66\x69\0" /* offset 12554 */
-  "\x66\x66\x6c\0" /* offset 12558 */
-  "\x73\x74\0" /* offset 12562 */
-  "\xd5\xb4\xd5\xb6\0" /* offset 12565 */
-  "\xd5\xb4\xd5\xa5\0" /* offset 12570 */
-  "\xd5\xb4\xd5\xab\0" /* offset 12575 */
-  "\xd5\xbe\xd5\xb6\0" /* offset 12580 */
-  "\xd5\xb4\xd5\xad\0" /* offset 12585 */
-  "\xd7\x99\xd6\xb4\0" /* offset 12590 */
-  "\xd7\xb2\xd6\xb7\0" /* offset 12595 */
-  "\xd7\xa2\0" /* offset 12600 */
-  "\xd7\x94\0" /* offset 12603 */
-  "\xd7\x9b\0" /* offset 12606 */
-  "\xd7\x9c\0" /* offset 12609 */
-  "\xd7\x9d\0" /* offset 12612 */
-  "\xd7\xa8\0" /* offset 12615 */
-  "\xd7\xaa\0" /* offset 12618 */
-  "\xd7\xa9\xd7\x81\0" /* offset 12621 */
-  "\xd7\xa9\xd7\x82\0" /* offset 12626 */
-  "\xd7\xa9\xd6\xbc\xd7\x81\0" /* offset 12631 */
-  "\xd7\xa9\xd6\xbc\xd7\x82\0" /* offset 12638 */
-  "\xd7\x90\xd6\xb7\0" /* offset 12645 */
-  "\xd7\x90\xd6\xb8\0" /* offset 12650 */
-  "\xd7\x90\xd6\xbc\0" /* offset 12655 */
-  "\xd7\x91\xd6\xbc\0" /* offset 12660 */
-  "\xd7\x92\xd6\xbc\0" /* offset 12665 */
-  "\xd7\x93\xd6\xbc\0" /* offset 12670 */
-  "\xd7\x94\xd6\xbc\0" /* offset 12675 */
-  "\xd7\x95\xd6\xbc\0" /* offset 12680 */
-  "\xd7\x96\xd6\xbc\0" /* offset 12685 */
-  "\xd7\x98\xd6\xbc\0" /* offset 12690 */
-  "\xd7\x99\xd6\xbc\0" /* offset 12695 */
-  "\xd7\x9a\xd6\xbc\0" /* offset 12700 */
-  "\xd7\x9b\xd6\xbc\0" /* offset 12705 */
-  "\xd7\x9c\xd6\xbc\0" /* offset 12710 */
-  "\xd7\x9e\xd6\xbc\0" /* offset 12715 */
-  "\xd7\xa0\xd6\xbc\0" /* offset 12720 */
-  "\xd7\xa1\xd6\xbc\0" /* offset 12725 */
-  "\xd7\xa3\xd6\xbc\0" /* offset 12730 */
-  "\xd7\xa4\xd6\xbc\0" /* offset 12735 */
-  "\xd7\xa6\xd6\xbc\0" /* offset 12740 */
-  "\xd7\xa7\xd6\xbc\0" /* offset 12745 */
-  "\xd7\xa8\xd6\xbc\0" /* offset 12750 */
-  "\xd7\xa9\xd6\xbc\0" /* offset 12755 */
-  "\xd7\xaa\xd6\xbc\0" /* offset 12760 */
-  "\xd7\x95\xd6\xb9\0" /* offset 12765 */
-  "\xd7\x91\xd6\xbf\0" /* offset 12770 */
-  "\xd7\x9b\xd6\xbf\0" /* offset 12775 */
-  "\xd7\xa4\xd6\xbf\0" /* offset 12780 */
-  "\xd7\x90\xd7\x9c\0" /* offset 12785 */
-  "\xd9\xb1\0" /* offset 12790 */
-  "\xd9\xbb\0" /* offset 12793 */
-  "\xd9\xbe\0" /* offset 12796 */
-  "\xda\x80\0" /* offset 12799 */
-  "\xd9\xba\0" /* offset 12802 */
-  "\xd9\xbf\0" /* offset 12805 */
-  "\xd9\xb9\0" /* offset 12808 */
-  "\xda\xa4\0" /* offset 12811 */
-  "\xda\xa6\0" /* offset 12814 */
-  "\xda\x84\0" /* offset 12817 */
-  "\xda\x83\0" /* offset 12820 */
-  "\xda\x86\0" /* offset 12823 */
-  "\xda\x87\0" /* offset 12826 */
-  "\xda\x8d\0" /* offset 12829 */
-  "\xda\x8c\0" /* offset 12832 */
-  "\xda\x8e\0" /* offset 12835 */
-  "\xda\x88\0" /* offset 12838 */
-  "\xda\x98\0" /* offset 12841 */
-  "\xda\x91\0" /* offset 12844 */
-  "\xda\xa9\0" /* offset 12847 */
-  "\xda\xaf\0" /* offset 12850 */
-  "\xda\xb3\0" /* offset 12853 */
-  "\xda\xb1\0" /* offset 12856 */
-  "\xda\xba\0" /* offset 12859 */
-  "\xda\xbb\0" /* offset 12862 */
-  "\xdb\x81\0" /* offset 12865 */
-  "\xda\xbe\0" /* offset 12868 */
-  "\xdb\x92\0" /* offset 12871 */
-  "\xda\xad\0" /* offset 12874 */
-  "\xdb\x87\0" /* offset 12877 */
-  "\xdb\x86\0" /* offset 12880 */
-  "\xdb\x88\0" /* offset 12883 */
-  "\xdb\x8b\0" /* offset 12886 */
-  "\xdb\x85\0" /* offset 12889 */
-  "\xdb\x89\0" /* offset 12892 */
-  "\xdb\x90\0" /* offset 12895 */
-  "\xd9\x89\0" /* offset 12898 */
-  "\xd9\x8a\xd9\x94\xd8\xa7\0" /* offset 12901 */
-  "\xd9\x8a\xd9\x94\xdb\x95\0" /* offset 12908 */
-  "\xd9\x8a\xd9\x94\xd9\x88\0" /* offset 12915 */
-  "\xd9\x8a\xd9\x94\xdb\x87\0" /* offset 12922 */
-  "\xd9\x8a\xd9\x94\xdb\x86\0" /* offset 12929 */
-  "\xd9\x8a\xd9\x94\xdb\x88\0" /* offset 12936 */
-  "\xd9\x8a\xd9\x94\xdb\x90\0" /* offset 12943 */
-  "\xd9\x8a\xd9\x94\xd9\x89\0" /* offset 12950 */
-  "\xdb\x8c\0" /* offset 12957 */
-  "\xd9\x8a\xd9\x94\xd8\xac\0" /* offset 12960 */
-  "\xd9\x8a\xd9\x94\xd8\xad\0" /* offset 12967 */
-  "\xd9\x8a\xd9\x94\xd9\x85\0" /* offset 12974 */
-  "\xd9\x8a\xd9\x94\xd9\x8a\0" /* offset 12981 */
-  "\xd8\xa8\xd8\xac\0" /* offset 12988 */
-  "\xd8\xa8\xd8\xad\0" /* offset 12993 */
-  "\xd8\xa8\xd8\xae\0" /* offset 12998 */
-  "\xd8\xa8\xd9\x85\0" /* offset 13003 */
-  "\xd8\xa8\xd9\x89\0" /* offset 13008 */
-  "\xd8\xa8\xd9\x8a\0" /* offset 13013 */
-  "\xd8\xaa\xd8\xac\0" /* offset 13018 */
-  "\xd8\xaa\xd8\xad\0" /* offset 13023 */
-  "\xd8\xaa\xd8\xae\0" /* offset 13028 */
-  "\xd8\xaa\xd9\x85\0" /* offset 13033 */
-  "\xd8\xaa\xd9\x89\0" /* offset 13038 */
-  "\xd8\xaa\xd9\x8a\0" /* offset 13043 */
-  "\xd8\xab\xd8\xac\0" /* offset 13048 */
-  "\xd8\xab\xd9\x85\0" /* offset 13053 */
-  "\xd8\xab\xd9\x89\0" /* offset 13058 */
-  "\xd8\xab\xd9\x8a\0" /* offset 13063 */
-  "\xd8\xac\xd8\xad\0" /* offset 13068 */
-  "\xd8\xac\xd9\x85\0" /* offset 13073 */
-  "\xd8\xad\xd8\xac\0" /* offset 13078 */
-  "\xd8\xad\xd9\x85\0" /* offset 13083 */
-  "\xd8\xae\xd8\xac\0" /* offset 13088 */
-  "\xd8\xae\xd8\xad\0" /* offset 13093 */
-  "\xd8\xae\xd9\x85\0" /* offset 13098 */
-  "\xd8\xb3\xd8\xac\0" /* offset 13103 */
-  "\xd8\xb3\xd8\xad\0" /* offset 13108 */
-  "\xd8\xb3\xd8\xae\0" /* offset 13113 */
-  "\xd8\xb3\xd9\x85\0" /* offset 13118 */
-  "\xd8\xb5\xd8\xad\0" /* offset 13123 */
-  "\xd8\xb5\xd9\x85\0" /* offset 13128 */
-  "\xd8\xb6\xd8\xac\0" /* offset 13133 */
-  "\xd8\xb6\xd8\xad\0" /* offset 13138 */
-  "\xd8\xb6\xd8\xae\0" /* offset 13143 */
-  "\xd8\xb6\xd9\x85\0" /* offset 13148 */
-  "\xd8\xb7\xd8\xad\0" /* offset 13153 */
-  "\xd8\xb7\xd9\x85\0" /* offset 13158 */
-  "\xd8\xb8\xd9\x85\0" /* offset 13163 */
-  "\xd8\xb9\xd8\xac\0" /* offset 13168 */
-  "\xd8\xb9\xd9\x85\0" /* offset 13173 */
-  "\xd8\xba\xd8\xac\0" /* offset 13178 */
-  "\xd8\xba\xd9\x85\0" /* offset 13183 */
-  "\xd9\x81\xd8\xac\0" /* offset 13188 */
-  "\xd9\x81\xd8\xad\0" /* offset 13193 */
-  "\xd9\x81\xd8\xae\0" /* offset 13198 */
-  "\xd9\x81\xd9\x85\0" /* offset 13203 */
-  "\xd9\x81\xd9\x89\0" /* offset 13208 */
-  "\xd9\x81\xd9\x8a\0" /* offset 13213 */
-  "\xd9\x82\xd8\xad\0" /* offset 13218 */
-  "\xd9\x82\xd9\x85\0" /* offset 13223 */
-  "\xd9\x82\xd9\x89\0" /* offset 13228 */
-  "\xd9\x82\xd9\x8a\0" /* offset 13233 */
-  "\xd9\x83\xd8\xa7\0" /* offset 13238 */
-  "\xd9\x83\xd8\xac\0" /* offset 13243 */
-  "\xd9\x83\xd8\xad\0" /* offset 13248 */
-  "\xd9\x83\xd8\xae\0" /* offset 13253 */
-  "\xd9\x83\xd9\x84\0" /* offset 13258 */
-  "\xd9\x83\xd9\x85\0" /* offset 13263 */
-  "\xd9\x83\xd9\x89\0" /* offset 13268 */
-  "\xd9\x83\xd9\x8a\0" /* offset 13273 */
-  "\xd9\x84\xd8\xac\0" /* offset 13278 */
-  "\xd9\x84\xd8\xad\0" /* offset 13283 */
-  "\xd9\x84\xd8\xae\0" /* offset 13288 */
-  "\xd9\x84\xd9\x85\0" /* offset 13293 */
-  "\xd9\x84\xd9\x89\0" /* offset 13298 */
-  "\xd9\x84\xd9\x8a\0" /* offset 13303 */
-  "\xd9\x85\xd8\xac\0" /* offset 13308 */
-  "\xd9\x85\xd8\xad\0" /* offset 13313 */
-  "\xd9\x85\xd8\xae\0" /* offset 13318 */
-  "\xd9\x85\xd9\x85\0" /* offset 13323 */
-  "\xd9\x85\xd9\x89\0" /* offset 13328 */
-  "\xd9\x85\xd9\x8a\0" /* offset 13333 */
-  "\xd9\x86\xd8\xac\0" /* offset 13338 */
-  "\xd9\x86\xd8\xad\0" /* offset 13343 */
-  "\xd9\x86\xd8\xae\0" /* offset 13348 */
-  "\xd9\x86\xd9\x85\0" /* offset 13353 */
-  "\xd9\x86\xd9\x89\0" /* offset 13358 */
-  "\xd9\x86\xd9\x8a\0" /* offset 13363 */
-  "\xd9\x87\xd8\xac\0" /* offset 13368 */
-  "\xd9\x87\xd9\x85\0" /* offset 13373 */
-  "\xd9\x87\xd9\x89\0" /* offset 13378 */
-  "\xd9\x87\xd9\x8a\0" /* offset 13383 */
-  "\xd9\x8a\xd8\xac\0" /* offset 13388 */
-  "\xd9\x8a\xd8\xad\0" /* offset 13393 */
-  "\xd9\x8a\xd8\xae\0" /* offset 13398 */
-  "\xd9\x8a\xd9\x85\0" /* offset 13403 */
-  "\xd9\x8a\xd9\x89\0" /* offset 13408 */
-  "\xd9\x8a\xd9\x8a\0" /* offset 13413 */
-  "\xd8\xb0\xd9\xb0\0" /* offset 13418 */
-  "\xd8\xb1\xd9\xb0\0" /* offset 13423 */
-  "\xd9\x89\xd9\xb0\0" /* offset 13428 */
-  "\x20\xd9\x8c\xd9\x91\0" /* offset 13433 */
-  "\x20\xd9\x8d\xd9\x91\0" /* offset 13439 */
-  "\x20\xd9\x8e\xd9\x91\0" /* offset 13445 */
-  "\x20\xd9\x8f\xd9\x91\0" /* offset 13451 */
-  "\x20\xd9\x90\xd9\x91\0" /* offset 13457 */
-  "\x20\xd9\x91\xd9\xb0\0" /* offset 13463 */
-  "\xd9\x8a\xd9\x94\xd8\xb1\0" /* offset 13469 */
-  "\xd9\x8a\xd9\x94\xd8\xb2\0" /* offset 13476 */
-  "\xd9\x8a\xd9\x94\xd9\x86\0" /* offset 13483 */
-  "\xd8\xa8\xd8\xb1\0" /* offset 13490 */
-  "\xd8\xa8\xd8\xb2\0" /* offset 13495 */
-  "\xd8\xa8\xd9\x86\0" /* offset 13500 */
-  "\xd8\xaa\xd8\xb1\0" /* offset 13505 */
-  "\xd8\xaa\xd8\xb2\0" /* offset 13510 */
-  "\xd8\xaa\xd9\x86\0" /* offset 13515 */
-  "\xd8\xab\xd8\xb1\0" /* offset 13520 */
-  "\xd8\xab\xd8\xb2\0" /* offset 13525 */
-  "\xd8\xab\xd9\x86\0" /* offset 13530 */
-  "\xd9\x85\xd8\xa7\0" /* offset 13535 */
-  "\xd9\x86\xd8\xb1\0" /* offset 13540 */
-  "\xd9\x86\xd8\xb2\0" /* offset 13545 */
-  "\xd9\x86\xd9\x86\0" /* offset 13550 */
-  "\xd9\x8a\xd8\xb1\0" /* offset 13555 */
-  "\xd9\x8a\xd8\xb2\0" /* offset 13560 */
-  "\xd9\x8a\xd9\x86\0" /* offset 13565 */
-  "\xd9\x8a\xd9\x94\xd8\xae\0" /* offset 13570 */
-  "\xd9\x8a\xd9\x94\xd9\x87\0" /* offset 13577 */
-  "\xd8\xa8\xd9\x87\0" /* offset 13584 */
-  "\xd8\xaa\xd9\x87\0" /* offset 13589 */
-  "\xd8\xb5\xd8\xae\0" /* offset 13594 */
-  "\xd9\x84\xd9\x87\0" /* offset 13599 */
-  "\xd9\x86\xd9\x87\0" /* offset 13604 */
-  "\xd9\x87\xd9\xb0\0" /* offset 13609 */
-  "\xd9\x8a\xd9\x87\0" /* offset 13614 */
-  "\xd8\xab\xd9\x87\0" /* offset 13619 */
-  "\xd8\xb3\xd9\x87\0" /* offset 13624 */
-  "\xd8\xb4\xd9\x85\0" /* offset 13629 */
-  "\xd8\xb4\xd9\x87\0" /* offset 13634 */
-  "\xd9\x80\xd9\x8e\xd9\x91\0" /* offset 13639 */
-  "\xd9\x80\xd9\x8f\xd9\x91\0" /* offset 13646 */
-  "\xd9\x80\xd9\x90\xd9\x91\0" /* offset 13653 */
-  "\xd8\xb7\xd9\x89\0" /* offset 13660 */
-  "\xd8\xb7\xd9\x8a\0" /* offset 13665 */
-  "\xd8\xb9\xd9\x89\0" /* offset 13670 */
-  "\xd8\xb9\xd9\x8a\0" /* offset 13675 */
-  "\xd8\xba\xd9\x89\0" /* offset 13680 */
-  "\xd8\xba\xd9\x8a\0" /* offset 13685 */
-  "\xd8\xb3\xd9\x89\0" /* offset 13690 */
-  "\xd8\xb3\xd9\x8a\0" /* offset 13695 */
-  "\xd8\xb4\xd9\x89\0" /* offset 13700 */
-  "\xd8\xb4\xd9\x8a\0" /* offset 13705 */
-  "\xd8\xad\xd9\x89\0" /* offset 13710 */
-  "\xd8\xad\xd9\x8a\0" /* offset 13715 */
-  "\xd8\xac\xd9\x89\0" /* offset 13720 */
-  "\xd8\xac\xd9\x8a\0" /* offset 13725 */
-  "\xd8\xae\xd9\x89\0" /* offset 13730 */
-  "\xd8\xae\xd9\x8a\0" /* offset 13735 */
-  "\xd8\xb5\xd9\x89\0" /* offset 13740 */
-  "\xd8\xb5\xd9\x8a\0" /* offset 13745 */
-  "\xd8\xb6\xd9\x89\0" /* offset 13750 */
-  "\xd8\xb6\xd9\x8a\0" /* offset 13755 */
-  "\xd8\xb4\xd8\xac\0" /* offset 13760 */
-  "\xd8\xb4\xd8\xad\0" /* offset 13765 */
-  "\xd8\xb4\xd8\xae\0" /* offset 13770 */
-  "\xd8\xb4\xd8\xb1\0" /* offset 13775 */
-  "\xd8\xb3\xd8\xb1\0" /* offset 13780 */
-  "\xd8\xb5\xd8\xb1\0" /* offset 13785 */
-  "\xd8\xb6\xd8\xb1\0" /* offset 13790 */
-  "\xd8\xa7\xd9\x8b\0" /* offset 13795 */
-  "\xd8\xaa\xd8\xac\xd9\x85\0" /* offset 13800 */
-  "\xd8\xaa\xd8\xad\xd8\xac\0" /* offset 13807 */
-  "\xd8\xaa\xd8\xad\xd9\x85\0" /* offset 13814 */
-  "\xd8\xaa\xd8\xae\xd9\x85\0" /* offset 13821 */
-  "\xd8\xaa\xd9\x85\xd8\xac\0" /* offset 13828 */
-  "\xd8\xaa\xd9\x85\xd8\xad\0" /* offset 13835 */
-  "\xd8\xaa\xd9\x85\xd8\xae\0" /* offset 13842 */
-  "\xd8\xac\xd9\x85\xd8\xad\0" /* offset 13849 */
-  "\xd8\xad\xd9\x85\xd9\x8a\0" /* offset 13856 */
-  "\xd8\xad\xd9\x85\xd9\x89\0" /* offset 13863 */
-  "\xd8\xb3\xd8\xad\xd8\xac\0" /* offset 13870 */
-  "\xd8\xb3\xd8\xac\xd8\xad\0" /* offset 13877 */
-  "\xd8\xb3\xd8\xac\xd9\x89\0" /* offset 13884 */
-  "\xd8\xb3\xd9\x85\xd8\xad\0" /* offset 13891 */
-  "\xd8\xb3\xd9\x85\xd8\xac\0" /* offset 13898 */
-  "\xd8\xb3\xd9\x85\xd9\x85\0" /* offset 13905 */
-  "\xd8\xb5\xd8\xad\xd8\xad\0" /* offset 13912 */
-  "\xd8\xb5\xd9\x85\xd9\x85\0" /* offset 13919 */
-  "\xd8\xb4\xd8\xad\xd9\x85\0" /* offset 13926 */
-  "\xd8\xb4\xd8\xac\xd9\x8a\0" /* offset 13933 */
-  "\xd8\xb4\xd9\x85\xd8\xae\0" /* offset 13940 */
-  "\xd8\xb4\xd9\x85\xd9\x85\0" /* offset 13947 */
-  "\xd8\xb6\xd8\xad\xd9\x89\0" /* offset 13954 */
-  "\xd8\xb6\xd8\xae\xd9\x85\0" /* offset 13961 */
-  "\xd8\xb7\xd9\x85\xd8\xad\0" /* offset 13968 */
-  "\xd8\xb7\xd9\x85\xd9\x85\0" /* offset 13975 */
-  "\xd8\xb7\xd9\x85\xd9\x8a\0" /* offset 13982 */
-  "\xd8\xb9\xd8\xac\xd9\x85\0" /* offset 13989 */
-  "\xd8\xb9\xd9\x85\xd9\x85\0" /* offset 13996 */
-  "\xd8\xb9\xd9\x85\xd9\x89\0" /* offset 14003 */
-  "\xd8\xba\xd9\x85\xd9\x85\0" /* offset 14010 */
-  "\xd8\xba\xd9\x85\xd9\x8a\0" /* offset 14017 */
-  "\xd8\xba\xd9\x85\xd9\x89\0" /* offset 14024 */
-  "\xd9\x81\xd8\xae\xd9\x85\0" /* offset 14031 */
-  "\xd9\x82\xd9\x85\xd8\xad\0" /* offset 14038 */
-  "\xd9\x82\xd9\x85\xd9\x85\0" /* offset 14045 */
-  "\xd9\x84\xd8\xad\xd9\x85\0" /* offset 14052 */
-  "\xd9\x84\xd8\xad\xd9\x8a\0" /* offset 14059 */
-  "\xd9\x84\xd8\xad\xd9\x89\0" /* offset 14066 */
-  "\xd9\x84\xd8\xac\xd8\xac\0" /* offset 14073 */
-  "\xd9\x84\xd8\xae\xd9\x85\0" /* offset 14080 */
-  "\xd9\x84\xd9\x85\xd8\xad\0" /* offset 14087 */
-  "\xd9\x85\xd8\xad\xd8\xac\0" /* offset 14094 */
-  "\xd9\x85\xd8\xad\xd9\x85\0" /* offset 14101 */
-  "\xd9\x85\xd8\xad\xd9\x8a\0" /* offset 14108 */
-  "\xd9\x85\xd8\xac\xd8\xad\0" /* offset 14115 */
-  "\xd9\x85\xd8\xac\xd9\x85\0" /* offset 14122 */
-  "\xd9\x85\xd8\xae\xd8\xac\0" /* offset 14129 */
-  "\xd9\x85\xd8\xae\xd9\x85\0" /* offset 14136 */
-  "\xd9\x85\xd8\xac\xd8\xae\0" /* offset 14143 */
-  "\xd9\x87\xd9\x85\xd8\xac\0" /* offset 14150 */
-  "\xd9\x87\xd9\x85\xd9\x85\0" /* offset 14157 */
-  "\xd9\x86\xd8\xad\xd9\x85\0" /* offset 14164 */
-  "\xd9\x86\xd8\xad\xd9\x89\0" /* offset 14171 */
-  "\xd9\x86\xd8\xac\xd9\x85\0" /* offset 14178 */
-  "\xd9\x86\xd8\xac\xd9\x89\0" /* offset 14185 */
-  "\xd9\x86\xd9\x85\xd9\x8a\0" /* offset 14192 */
-  "\xd9\x86\xd9\x85\xd9\x89\0" /* offset 14199 */
-  "\xd9\x8a\xd9\x85\xd9\x85\0" /* offset 14206 */
-  "\xd8\xa8\xd8\xae\xd9\x8a\0" /* offset 14213 */
-  "\xd8\xaa\xd8\xac\xd9\x8a\0" /* offset 14220 */
-  "\xd8\xaa\xd8\xac\xd9\x89\0" /* offset 14227 */
-  "\xd8\xaa\xd8\xae\xd9\x8a\0" /* offset 14234 */
-  "\xd8\xaa\xd8\xae\xd9\x89\0" /* offset 14241 */
-  "\xd8\xaa\xd9\x85\xd9\x8a\0" /* offset 14248 */
-  "\xd8\xaa\xd9\x85\xd9\x89\0" /* offset 14255 */
-  "\xd8\xac\xd9\x85\xd9\x8a\0" /* offset 14262 */
-  "\xd8\xac\xd8\xad\xd9\x89\0" /* offset 14269 */
-  "\xd8\xac\xd9\x85\xd9\x89\0" /* offset 14276 */
-  "\xd8\xb3\xd8\xae\xd9\x89\0" /* offset 14283 */
-  "\xd8\xb5\xd8\xad\xd9\x8a\0" /* offset 14290 */
-  "\xd8\xb4\xd8\xad\xd9\x8a\0" /* offset 14297 */
-  "\xd8\xb6\xd8\xad\xd9\x8a\0" /* offset 14304 */
-  "\xd9\x84\xd8\xac\xd9\x8a\0" /* offset 14311 */
-  "\xd9\x84\xd9\x85\xd9\x8a\0" /* offset 14318 */
-  "\xd9\x8a\xd8\xad\xd9\x8a\0" /* offset 14325 */
-  "\xd9\x8a\xd8\xac\xd9\x8a\0" /* offset 14332 */
-  "\xd9\x8a\xd9\x85\xd9\x8a\0" /* offset 14339 */
-  "\xd9\x85\xd9\x85\xd9\x8a\0" /* offset 14346 */
-  "\xd9\x82\xd9\x85\xd9\x8a\0" /* offset 14353 */
-  "\xd9\x86\xd8\xad\xd9\x8a\0" /* offset 14360 */
-  "\xd8\xb9\xd9\x85\xd9\x8a\0" /* offset 14367 */
-  "\xd9\x83\xd9\x85\xd9\x8a\0" /* offset 14374 */
-  "\xd9\x86\xd8\xac\xd8\xad\0" /* offset 14381 */
-  "\xd9\x85\xd8\xae\xd9\x8a\0" /* offset 14388 */
-  "\xd9\x84\xd8\xac\xd9\x85\0" /* offset 14395 */
-  "\xd9\x83\xd9\x85\xd9\x85\0" /* offset 14402 */
-  "\xd8\xac\xd8\xad\xd9\x8a\0" /* offset 14409 */
-  "\xd8\xad\xd8\xac\xd9\x8a\0" /* offset 14416 */
-  "\xd9\x85\xd8\xac\xd9\x8a\0" /* offset 14423 */
-  "\xd9\x81\xd9\x85\xd9\x8a\0" /* offset 14430 */
-  "\xd8\xa8\xd8\xad\xd9\x8a\0" /* offset 14437 */
-  "\xd8\xb3\xd8\xae\xd9\x8a\0" /* offset 14444 */
-  "\xd9\x86\xd8\xac\xd9\x8a\0" /* offset 14451 */
-  "\xd8\xb5\xd9\x84\xdb\x92\0" /* offset 14458 */
-  "\xd9\x82\xd9\x84\xdb\x92\0" /* offset 14465 */
-  "\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\0" /* offset 14472 */
-  "\xd8\xa7\xd9\x83\xd8\xa8\xd8\xb1\0" /* offset 14481 */
-  "\xd9\x85\xd8\xad\xd9\x85\xd8\xaf\0" /* offset 14490 */
-  "\xd8\xb5\xd9\x84\xd8\xb9\xd9\x85\0" /* offset 14499 */
-  "\xd8\xb1\xd8\xb3\xd9\x88\xd9\x84\0" /* offset 14508 */
-  "\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\0" /* offset 14517 */
-  "\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 14526 */
-  "\xd8\xb5\xd9\x84\xd9\x89\0" /* offset 14535 */
-  "\xd8\xb5\xd9\x84\xd9\x89\x20\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\x20\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\x20\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 14542 */
-  "\xd8\xac\xd9\x84\x20\xd8\xac\xd9\x84\xd8\xa7\xd9\x84\xd9\x87\0" /* offset 14576 */
-  "\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84\0" /* offset 14592 */
-  "\x2c\0" /* offset 14601 */
-  "\xe3\x80\x81\0" /* offset 14603 */
-  "\xe3\x80\x82\0" /* offset 14607 */
-  "\x3a\0" /* offset 14611 */
-  "\x21\0" /* offset 14613 */
-  "\x3f\0" /* offset 14615 */
-  "\xe3\x80\x96\0" /* offset 14617 */
-  "\xe3\x80\x97\0" /* offset 14621 */
-  "\xe2\x80\x94\0" /* offset 14625 */
-  "\xe2\x80\x93\0" /* offset 14629 */
-  "\x5f\0" /* offset 14633 */
-  "\x7b\0" /* offset 14635 */
-  "\x7d\0" /* offset 14637 */
-  "\xe3\x80\x94\0" /* offset 14639 */
-  "\xe3\x80\x95\0" /* offset 14643 */
-  "\xe3\x80\x90\0" /* offset 14647 */
-  "\xe3\x80\x91\0" /* offset 14651 */
-  "\xe3\x80\x8a\0" /* offset 14655 */
-  "\xe3\x80\x8b\0" /* offset 14659 */
-  "\xe3\x80\x8c\0" /* offset 14663 */
-  "\xe3\x80\x8d\0" /* offset 14667 */
-  "\xe3\x80\x8e\0" /* offset 14671 */
-  "\xe3\x80\x8f\0" /* offset 14675 */
-  "\x5b\0" /* offset 14679 */
-  "\x5d\0" /* offset 14681 */
-  "\x23\0" /* offset 14683 */
-  "\x26\0" /* offset 14685 */
-  "\x2a\0" /* offset 14687 */
-  "\x2d\0" /* offset 14689 */
-  "\x3c\0" /* offset 14691 */
-  "\x3e\0" /* offset 14693 */
-  "\x5c\0" /* offset 14695 */
-  "\x24\0" /* offset 14697 */
-  "\x25\0" /* offset 14699 */
-  "\x40\0" /* offset 14701 */
-  "\x20\xd9\x8b\0" /* offset 14703 */
-  "\xd9\x80\xd9\x8b\0" /* offset 14707 */
-  "\x20\xd9\x8c\0" /* offset 14712 */
-  "\x20\xd9\x8d\0" /* offset 14716 */
-  "\x20\xd9\x8e\0" /* offset 14720 */
-  "\xd9\x80\xd9\x8e\0" /* offset 14724 */
-  "\x20\xd9\x8f\0" /* offset 14729 */
-  "\xd9\x80\xd9\x8f\0" /* offset 14733 */
-  "\x20\xd9\x90\0" /* offset 14738 */
-  "\xd9\x80\xd9\x90\0" /* offset 14742 */
-  "\x20\xd9\x91\0" /* offset 14747 */
-  "\xd9\x80\xd9\x91\0" /* offset 14751 */
-  "\x20\xd9\x92\0" /* offset 14756 */
-  "\xd9\x80\xd9\x92\0" /* offset 14760 */
-  "\xd8\xa1\0" /* offset 14765 */
-  "\xd8\xa7\0" /* offset 14768 */
-  "\xd8\xa8\0" /* offset 14771 */
-  "\xd8\xa9\0" /* offset 14774 */
-  "\xd8\xaa\0" /* offset 14777 */
-  "\xd8\xab\0" /* offset 14780 */
-  "\xd8\xac\0" /* offset 14783 */
-  "\xd8\xad\0" /* offset 14786 */
-  "\xd8\xae\0" /* offset 14789 */
-  "\xd8\xaf\0" /* offset 14792 */
-  "\xd8\xb0\0" /* offset 14795 */
-  "\xd8\xb1\0" /* offset 14798 */
-  "\xd8\xb2\0" /* offset 14801 */
-  "\xd8\xb3\0" /* offset 14804 */
-  "\xd8\xb4\0" /* offset 14807 */
-  "\xd8\xb5\0" /* offset 14810 */
-  "\xd8\xb6\0" /* offset 14813 */
-  "\xd8\xb7\0" /* offset 14816 */
-  "\xd8\xb8\0" /* offset 14819 */
-  "\xd8\xb9\0" /* offset 14822 */
-  "\xd8\xba\0" /* offset 14825 */
-  "\xd9\x81\0" /* offset 14828 */
-  "\xd9\x82\0" /* offset 14831 */
-  "\xd9\x83\0" /* offset 14834 */
-  "\xd9\x84\0" /* offset 14837 */
-  "\xd9\x85\0" /* offset 14840 */
-  "\xd9\x86\0" /* offset 14843 */
-  "\xd9\x87\0" /* offset 14846 */
-  "\xd9\x88\0" /* offset 14849 */
-  "\xd9\x8a\0" /* offset 14852 */
-  "\xd9\x84\xd8\xa7\xd9\x93\0" /* offset 14855 */
-  "\xd9\x84\xd8\xa7\xd9\x94\0" /* offset 14862 */
-  "\xd9\x84\xd8\xa7\xd9\x95\0" /* offset 14869 */
-  "\xd9\x84\xd8\xa7\0" /* offset 14876 */
-  "\x22\0" /* offset 14881 */
-  "\x27\0" /* offset 14883 */
-  "\x2f\0" /* offset 14885 */
-  "\x5e\0" /* offset 14887 */
-  "\x7c\0" /* offset 14889 */
-  "\x7e\0" /* offset 14891 */
-  "\xe2\xa6\x85\0" /* offset 14893 */
-  "\xe2\xa6\x86\0" /* offset 14897 */
-  "\xe3\x83\xbb\0" /* offset 14901 */
-  "\xe3\x82\xa1\0" /* offset 14905 */
-  "\xe3\x82\xa3\0" /* offset 14909 */
-  "\xe3\x82\xa5\0" /* offset 14913 */
-  "\xe3\x82\xa7\0" /* offset 14917 */
-  "\xe3\x82\xa9\0" /* offset 14921 */
-  "\xe3\x83\xa3\0" /* offset 14925 */
-  "\xe3\x83\xa5\0" /* offset 14929 */
-  "\xe3\x83\xa7\0" /* offset 14933 */
-  "\xe3\x83\x83\0" /* offset 14937 */
-  "\xe3\x83\xbc\0" /* offset 14941 */
-  "\xe3\x83\xb3\0" /* offset 14945 */
-  "\xe3\x82\x99\0" /* offset 14949 */
-  "\xe3\x82\x9a\0" /* offset 14953 */
-  "\xc2\xa2\0" /* offset 14957 */
-  "\xc2\xa3\0" /* offset 14960 */
-  "\xc2\xac\0" /* offset 14963 */
-  "\xc2\xa6\0" /* offset 14966 */
-  "\xc2\xa5\0" /* offset 14969 */
-  "\xe2\x82\xa9\0" /* offset 14972 */
-  "\xe2\x94\x82\0" /* offset 14976 */
-  "\xe2\x86\x90\0" /* offset 14980 */
-  "\xe2\x86\x91\0" /* offset 14984 */
-  "\xe2\x86\x92\0" /* offset 14988 */
-  "\xe2\x86\x93\0" /* offset 14992 */
-  "\xe2\x96\xa0\0" /* offset 14996 */
-  "\xe2\x97\x8b\0" /* offset 15000 */
-  "\xf0\x91\x82\x99\xf0\x91\x82\xba\0" /* offset 15004 */
-  "\xf0\x91\x82\x9b\xf0\x91\x82\xba\0" /* offset 15013 */
-  "\xf0\x91\x82\xa5\xf0\x91\x82\xba\0" /* offset 15022 */
-  "\xf0\x91\x84\xb1\xf0\x91\x84\xa7\0" /* offset 15031 */
-  "\xf0\x91\x84\xb2\xf0\x91\x84\xa7\0" /* offset 15040 */
-  "\xf0\x91\x8d\x87\xf0\x91\x8c\xbe\0" /* offset 15049 */
-  "\xf0\x91\x8d\x87\xf0\x91\x8d\x97\0" /* offset 15058 */
-  "\xf0\x91\x92\xb9\xf0\x91\x92\xba\0" /* offset 15067 */
-  "\xf0\x91\x92\xb9\xf0\x91\x92\xb0\0" /* offset 15076 */
-  "\xf0\x91\x92\xb9\xf0\x91\x92\xbd\0" /* offset 15085 */
-  "\xf0\x91\x96\xb8\xf0\x91\x96\xaf\0" /* offset 15094 */
-  "\xf0\x91\x96\xb9\xf0\x91\x96\xaf\0" /* offset 15103 */
-  "\xf0\x9d\x85\x97\xf0\x9d\x85\xa5\0" /* offset 15112 */
-  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\0" /* offset 15121 */
-  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 15130 */
-  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 15143 */
-  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb0\0" /* offset 15156 */
-  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb1\0" /* offset 15169 */
-  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb2\0" /* offset 15182 */
-  "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\0" /* offset 15195 */
-  "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\0" /* offset 15204 */
-  "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 15213 */
-  "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 15226 */
-  "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 15239 */
-  "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 15252 */
-  "\xc4\xb1\0" /* offset 15265 */
-  "\xc8\xb7\0" /* offset 15268 */
-  "\xce\x91\0" /* offset 15271 */
-  "\xce\x92\0" /* offset 15274 */
-  "\xce\x94\0" /* offset 15277 */
-  "\xce\x95\0" /* offset 15280 */
-  "\xce\x96\0" /* offset 15283 */
-  "\xce\x97\0" /* offset 15286 */
-  "\xce\x99\0" /* offset 15289 */
-  "\xce\x9a\0" /* offset 15292 */
-  "\xce\x9b\0" /* offset 15295 */
-  "\xce\x9c\0" /* offset 15298 */
-  "\xce\x9d\0" /* offset 15301 */
-  "\xce\x9e\0" /* offset 15304 */
-  "\xce\x9f\0" /* offset 15307 */
-  "\xce\xa1\0" /* offset 15310 */
-  "\xce\xa4\0" /* offset 15313 */
-  "\xce\xa6\0" /* offset 15316 */
-  "\xce\xa7\0" /* offset 15319 */
-  "\xce\xa8\0" /* offset 15322 */
-  "\xe2\x88\x87\0" /* offset 15325 */
-  "\xce\xb1\0" /* offset 15329 */
-  "\xce\xb6\0" /* offset 15332 */
-  "\xce\xb7\0" /* offset 15335 */
-  "\xce\xbb\0" /* offset 15338 */
-  "\xce\xbd\0" /* offset 15341 */
-  "\xce\xbe\0" /* offset 15344 */
-  "\xce\xbf\0" /* offset 15347 */
-  "\xcf\x83\0" /* offset 15350 */
-  "\xcf\x84\0" /* offset 15353 */
-  "\xcf\x85\0" /* offset 15356 */
-  "\xcf\x88\0" /* offset 15359 */
-  "\xcf\x89\0" /* offset 15362 */
-  "\xe2\x88\x82\0" /* offset 15365 */
-  "\xcf\x9c\0" /* offset 15369 */
-  "\xcf\x9d\0" /* offset 15372 */
-  "\xd9\xae\0" /* offset 15375 */
-  "\xda\xa1\0" /* offset 15378 */
-  "\xd9\xaf\0" /* offset 15381 */
-  "\x30\x2e\0" /* offset 15384 */
-  "\x30\x2c\0" /* offset 15387 */
-  "\x31\x2c\0" /* offset 15390 */
-  "\x32\x2c\0" /* offset 15393 */
-  "\x33\x2c\0" /* offset 15396 */
-  "\x34\x2c\0" /* offset 15399 */
-  "\x35\x2c\0" /* offset 15402 */
-  "\x36\x2c\0" /* offset 15405 */
-  "\x37\x2c\0" /* offset 15408 */
-  "\x38\x2c\0" /* offset 15411 */
-  "\x39\x2c\0" /* offset 15414 */
-  "\x28\x41\x29\0" /* offset 15417 */
-  "\x28\x42\x29\0" /* offset 15421 */
-  "\x28\x43\x29\0" /* offset 15425 */
-  "\x28\x44\x29\0" /* offset 15429 */
-  "\x28\x45\x29\0" /* offset 15433 */
-  "\x28\x46\x29\0" /* offset 15437 */
-  "\x28\x47\x29\0" /* offset 15441 */
-  "\x28\x48\x29\0" /* offset 15445 */
-  "\x28\x49\x29\0" /* offset 15449 */
-  "\x28\x4a\x29\0" /* offset 15453 */
-  "\x28\x4b\x29\0" /* offset 15457 */
-  "\x28\x4c\x29\0" /* offset 15461 */
-  "\x28\x4d\x29\0" /* offset 15465 */
-  "\x28\x4e\x29\0" /* offset 15469 */
-  "\x28\x4f\x29\0" /* offset 15473 */
-  "\x28\x50\x29\0" /* offset 15477 */
-  "\x28\x51\x29\0" /* offset 15481 */
-  "\x28\x52\x29\0" /* offset 15485 */
-  "\x28\x53\x29\0" /* offset 15489 */
-  "\x28\x54\x29\0" /* offset 15493 */
-  "\x28\x55\x29\0" /* offset 15497 */
-  "\x28\x56\x29\0" /* offset 15501 */
-  "\x28\x57\x29\0" /* offset 15505 */
-  "\x28\x58\x29\0" /* offset 15509 */
-  "\x28\x59\x29\0" /* offset 15513 */
-  "\x28\x5a\x29\0" /* offset 15517 */
-  "\xe3\x80\x94\x53\xe3\x80\x95\0" /* offset 15521 */
-  "\x43\x44\0" /* offset 15529 */
-  "\x57\x5a\0" /* offset 15532 */
-  "\x48\x56\0" /* offset 15535 */
-  "\x53\x44\0" /* offset 15538 */
-  "\x53\x53\0" /* offset 15541 */
-  "\x50\x50\x56\0" /* offset 15544 */
-  "\x57\x43\0" /* offset 15548 */
-  "\x4d\x43\0" /* offset 15551 */
-  "\x4d\x44\0" /* offset 15554 */
-  "\x4d\x52\0" /* offset 15557 */
-  "\x44\x4a\0" /* offset 15560 */
-  "\xe3\x81\xbb\xe3\x81\x8b\0" /* offset 15563 */
-  "\xe3\x82\xb3\xe3\x82\xb3\0" /* offset 15570 */
-  "\xe5\xad\x97\0" /* offset 15577 */
-  "\xe5\x8f\x8c\0" /* offset 15581 */
-  "\xe5\xa4\x9a\0" /* offset 15585 */
-  "\xe8\xa7\xa3\0" /* offset 15589 */
-  "\xe4\xba\xa4\0" /* offset 15593 */
-  "\xe6\x98\xa0\0" /* offset 15597 */
-  "\xe7\x84\xa1\0" /* offset 15601 */
-  "\xe5\x89\x8d\0" /* offset 15605 */
-  "\xe5\xbe\x8c\0" /* offset 15609 */
-  "\xe5\x86\x8d\0" /* offset 15613 */
-  "\xe6\x96\xb0\0" /* offset 15617 */
-  "\xe5\x88\x9d\0" /* offset 15621 */
-  "\xe7\xb5\x82\0" /* offset 15625 */
-  "\xe8\xb2\xa9\0" /* offset 15629 */
-  "\xe5\xa3\xb0\0" /* offset 15633 */
-  "\xe5\x90\xb9\0" /* offset 15637 */
-  "\xe6\xbc\x94\0" /* offset 15641 */
-  "\xe6\x8a\x95\0" /* offset 15645 */
-  "\xe6\x8d\x95\0" /* offset 15649 */
-  "\xe9\x81\x8a\0" /* offset 15653 */
-  "\xe6\x8c\x87\0" /* offset 15657 */
-  "\xe6\x89\x93\0" /* offset 15661 */
-  "\xe7\xa6\x81\0" /* offset 15665 */
-  "\xe7\xa9\xba\0" /* offset 15669 */
-  "\xe5\x90\x88\0" /* offset 15673 */
-  "\xe6\xba\x80\0" /* offset 15677 */
-  "\xe7\x94\xb3\0" /* offset 15681 */
-  "\xe5\x89\xb2\0" /* offset 15685 */
-  "\xe5\x96\xb6\0" /* offset 15689 */
-  "\xe9\x85\x8d\0" /* offset 15693 */
-  "\xe3\x80\x94\xe6\x9c\xac\xe3\x80\x95\0" /* offset 15697 */
-  "\xe3\x80\x94\xe4\xb8\x89\xe3\x80\x95\0" /* offset 15707 */
-  "\xe3\x80\x94\xe4\xba\x8c\xe3\x80\x95\0" /* offset 15717 */
-  "\xe3\x80\x94\xe5\xae\x89\xe3\x80\x95\0" /* offset 15727 */
-  "\xe3\x80\x94\xe7\x82\xb9\xe3\x80\x95\0" /* offset 15737 */
-  "\xe3\x80\x94\xe6\x89\x93\xe3\x80\x95\0" /* offset 15747 */
-  "\xe3\x80\x94\xe7\x9b\x97\xe3\x80\x95\0" /* offset 15757 */
-  "\xe3\x80\x94\xe5\x8b\x9d\xe3\x80\x95\0" /* offset 15767 */
-  "\xe3\x80\x94\xe6\x95\x97\xe3\x80\x95\0" /* offset 15777 */
-  "\xe5\xbe\x97\0" /* offset 15787 */
-  "\xe5\x8f\xaf\0" /* offset 15791 */
-  "\xe4\xb8\xbd\0" /* offset 15795 */
-  "\xe4\xb8\xb8\0" /* offset 15799 */
-  "\xe4\xb9\x81\0" /* offset 15803 */
-  "\xf0\xa0\x84\xa2\0" /* offset 15807 */
-  "\xe4\xbd\xa0\0" /* offset 15812 */
-  "\xe4\xbe\xbb\0" /* offset 15816 */
-  "\xe5\x80\x82\0" /* offset 15820 */
-  "\xe5\x81\xba\0" /* offset 15824 */
-  "\xe5\x82\x99\0" /* offset 15828 */
-  "\xe5\x83\x8f\0" /* offset 15832 */
-  "\xe3\x92\x9e\0" /* offset 15836 */
-  "\xf0\xa0\x98\xba\0" /* offset 15840 */
-  "\xe5\x85\x94\0" /* offset 15845 */
-  "\xe5\x85\xa4\0" /* offset 15849 */
-  "\xe5\x85\xb7\0" /* offset 15853 */
-  "\xf0\xa0\x94\x9c\0" /* offset 15857 */
-  "\xe3\x92\xb9\0" /* offset 15862 */
-  "\xe5\x85\xa7\0" /* offset 15866 */
-  "\xf0\xa0\x95\x8b\0" /* offset 15870 */
-  "\xe5\x86\x97\0" /* offset 15875 */
-  "\xe5\x86\xa4\0" /* offset 15879 */
-  "\xe4\xbb\x8c\0" /* offset 15883 */
-  "\xe5\x86\xac\0" /* offset 15887 */
-  "\xf0\xa9\x87\x9f\0" /* offset 15891 */
-  "\xe5\x88\x83\0" /* offset 15896 */
-  "\xe3\x93\x9f\0" /* offset 15900 */
-  "\xe5\x88\xbb\0" /* offset 15904 */
-  "\xe5\x89\x86\0" /* offset 15908 */
-  "\xe5\x89\xb7\0" /* offset 15912 */
-  "\xe3\x94\x95\0" /* offset 15916 */
-  "\xe5\x8c\x85\0" /* offset 15920 */
-  "\xe5\x8c\x86\0" /* offset 15924 */
-  "\xe5\x8d\x89\0" /* offset 15928 */
-  "\xe5\x8d\x9a\0" /* offset 15932 */
-  "\xe5\x8d\xb3\0" /* offset 15936 */
-  "\xe5\x8d\xbd\0" /* offset 15940 */
-  "\xe5\x8d\xbf\0" /* offset 15944 */
-  "\xf0\xa0\xa8\xac\0" /* offset 15948 */
-  "\xe7\x81\xb0\0" /* offset 15953 */
-  "\xe5\x8f\x8a\0" /* offset 15957 */
-  "\xe5\x8f\x9f\0" /* offset 15961 */
-  "\xf0\xa0\xad\xa3\0" /* offset 15965 */
-  "\xe5\x8f\xab\0" /* offset 15970 */
-  "\xe5\x8f\xb1\0" /* offset 15974 */
-  "\xe5\x90\x86\0" /* offset 15978 */
-  "\xe5\x92\x9e\0" /* offset 15982 */
-  "\xe5\x90\xb8\0" /* offset 15986 */
-  "\xe5\x91\x88\0" /* offset 15990 */
-  "\xe5\x91\xa8\0" /* offset 15994 */
-  "\xe5\x92\xa2\0" /* offset 15998 */
-  "\xe5\x93\xb6\0" /* offset 16002 */
-  "\xe5\x94\x90\0" /* offset 16006 */
-  "\xe5\x95\x93\0" /* offset 16010 */
-  "\xe5\x95\xa3\0" /* offset 16014 */
-  "\xe5\x96\x84\0" /* offset 16018 */
-  "\xe5\x96\xab\0" /* offset 16022 */
-  "\xe5\x96\xb3\0" /* offset 16026 */
-  "\xe5\x97\x82\0" /* offset 16030 */
-  "\xe5\x9c\x96\0" /* offset 16034 */
-  "\xe5\x9c\x97\0" /* offset 16038 */
-  "\xe5\x99\x91\0" /* offset 16042 */
-  "\xe5\x99\xb4\0" /* offset 16046 */
-  "\xe5\xa3\xae\0" /* offset 16050 */
-  "\xe5\x9f\x8e\0" /* offset 16054 */
-  "\xe5\x9f\xb4\0" /* offset 16058 */
-  "\xe5\xa0\x8d\0" /* offset 16062 */
-  "\xe5\x9e\x8b\0" /* offset 16066 */
-  "\xe5\xa0\xb2\0" /* offset 16070 */
-  "\xe5\xa0\xb1\0" /* offset 16074 */
-  "\xe5\xa2\xac\0" /* offset 16078 */
-  "\xf0\xa1\x93\xa4\0" /* offset 16082 */
-  "\xe5\xa3\xb2\0" /* offset 16087 */
-  "\xe5\xa3\xb7\0" /* offset 16091 */
-  "\xe5\xa4\x86\0" /* offset 16095 */
-  "\xe5\xa4\xa2\0" /* offset 16099 */
-  "\xe5\xa5\xa2\0" /* offset 16103 */
-  "\xf0\xa1\x9a\xa8\0" /* offset 16107 */
-  "\xf0\xa1\x9b\xaa\0" /* offset 16112 */
-  "\xe5\xa7\xac\0" /* offset 16117 */
-  "\xe5\xa8\x9b\0" /* offset 16121 */
-  "\xe5\xa8\xa7\0" /* offset 16125 */
-  "\xe5\xa7\x98\0" /* offset 16129 */
-  "\xe5\xa9\xa6\0" /* offset 16133 */
-  "\xe3\x9b\xae\0" /* offset 16137 */
-  "\xe3\x9b\xbc\0" /* offset 16141 */
-  "\xe5\xac\x88\0" /* offset 16145 */
-  "\xe5\xac\xbe\0" /* offset 16149 */
-  "\xf0\xa1\xa7\x88\0" /* offset 16153 */
-  "\xe5\xaf\x83\0" /* offset 16158 */
-  "\xe5\xaf\x98\0" /* offset 16162 */
-  "\xe5\xaf\xb3\0" /* offset 16166 */
-  "\xf0\xa1\xac\x98\0" /* offset 16170 */
-  "\xe5\xaf\xbf\0" /* offset 16175 */
-  "\xe5\xb0\x86\0" /* offset 16179 */
-  "\xe5\xbd\x93\0" /* offset 16183 */
-  "\xe3\x9e\x81\0" /* offset 16187 */
-  "\xe5\xb1\xa0\0" /* offset 16191 */
-  "\xe5\xb3\x80\0" /* offset 16195 */
-  "\xe5\xb2\x8d\0" /* offset 16199 */
-  "\xf0\xa1\xb7\xa4\0" /* offset 16203 */
-  "\xe5\xb5\x83\0" /* offset 16208 */
-  "\xf0\xa1\xb7\xa6\0" /* offset 16212 */
-  "\xe5\xb5\xae\0" /* offset 16217 */
-  "\xe5\xb5\xab\0" /* offset 16221 */
-  "\xe5\xb5\xbc\0" /* offset 16225 */
-  "\xe5\xb7\xa1\0" /* offset 16229 */
-  "\xe5\xb7\xa2\0" /* offset 16233 */
-  "\xe3\xa0\xaf\0" /* offset 16237 */
-  "\xe5\xb7\xbd\0" /* offset 16241 */
-  "\xe5\xb8\xa8\0" /* offset 16245 */
-  "\xe5\xb8\xbd\0" /* offset 16249 */
-  "\xe5\xb9\xa9\0" /* offset 16253 */
-  "\xe3\xa1\xa2\0" /* offset 16257 */
-  "\xf0\xa2\x86\x83\0" /* offset 16261 */
-  "\xe3\xa1\xbc\0" /* offset 16266 */
-  "\xe5\xba\xb0\0" /* offset 16270 */
-  "\xe5\xba\xb3\0" /* offset 16274 */
-  "\xe5\xba\xb6\0" /* offset 16278 */
-  "\xf0\xaa\x8e\x92\0" /* offset 16282 */
-  "\xf0\xa2\x8c\xb1\0" /* offset 16287 */
-  "\xe8\x88\x81\0" /* offset 16292 */
-  "\xe5\xbc\xa2\0" /* offset 16296 */
-  "\xe3\xa3\x87\0" /* offset 16300 */
-  "\xf0\xa3\x8a\xb8\0" /* offset 16304 */
-  "\xf0\xa6\x87\x9a\0" /* offset 16309 */
-  "\xe5\xbd\xa2\0" /* offset 16314 */
-  "\xe5\xbd\xab\0" /* offset 16318 */
-  "\xe3\xa3\xa3\0" /* offset 16322 */
-  "\xe5\xbe\x9a\0" /* offset 16326 */
-  "\xe5\xbf\x8d\0" /* offset 16330 */
-  "\xe5\xbf\x97\0" /* offset 16334 */
-  "\xe5\xbf\xb9\0" /* offset 16338 */
-  "\xe6\x82\x81\0" /* offset 16342 */
-  "\xe3\xa4\xba\0" /* offset 16346 */
-  "\xe3\xa4\x9c\0" /* offset 16350 */
-  "\xf0\xa2\x9b\x94\0" /* offset 16354 */
-  "\xe6\x83\x87\0" /* offset 16359 */
-  "\xe6\x85\x88\0" /* offset 16363 */
-  "\xe6\x85\x8c\0" /* offset 16367 */
-  "\xe6\x85\xba\0" /* offset 16371 */
-  "\xe6\x86\xb2\0" /* offset 16375 */
-  "\xe6\x86\xa4\0" /* offset 16379 */
-  "\xe6\x86\xaf\0" /* offset 16383 */
-  "\xe6\x87\x9e\0" /* offset 16387 */
-  "\xe6\x88\x90\0" /* offset 16391 */
-  "\xe6\x88\x9b\0" /* offset 16395 */
-  "\xe6\x89\x9d\0" /* offset 16399 */
-  "\xe6\x8a\xb1\0" /* offset 16403 */
-  "\xe6\x8b\x94\0" /* offset 16407 */
-  "\xe6\x8d\x90\0" /* offset 16411 */
-  "\xf0\xa2\xac\x8c\0" /* offset 16415 */
-  "\xe6\x8c\xbd\0" /* offset 16420 */
-  "\xe6\x8b\xbc\0" /* offset 16424 */
-  "\xe6\x8d\xa8\0" /* offset 16428 */
-  "\xe6\x8e\x83\0" /* offset 16432 */
-  "\xe6\x8f\xa4\0" /* offset 16436 */
-  "\xf0\xa2\xaf\xb1\0" /* offset 16440 */
-  "\xe6\x90\xa2\0" /* offset 16445 */
-  "\xe6\x8f\x85\0" /* offset 16449 */
-  "\xe6\x8e\xa9\0" /* offset 16453 */
-  "\xe3\xa8\xae\0" /* offset 16457 */
-  "\xe6\x91\xa9\0" /* offset 16461 */
-  "\xe6\x91\xbe\0" /* offset 16465 */
-  "\xe6\x92\x9d\0" /* offset 16469 */
-  "\xe6\x91\xb7\0" /* offset 16473 */
-  "\xe3\xa9\xac\0" /* offset 16477 */
-  "\xe6\x95\xac\0" /* offset 16481 */
-  "\xf0\xa3\x80\x8a\0" /* offset 16485 */
-  "\xe6\x97\xa3\0" /* offset 16490 */
-  "\xe6\x9b\xb8\0" /* offset 16494 */
-  "\xe6\x99\x89\0" /* offset 16498 */
-  "\xe3\xac\x99\0" /* offset 16502 */
-  "\xe3\xac\x88\0" /* offset 16506 */
-  "\xe3\xab\xa4\0" /* offset 16510 */
-  "\xe5\x86\x92\0" /* offset 16514 */
-  "\xe5\x86\x95\0" /* offset 16518 */
-  "\xe6\x9c\x80\0" /* offset 16522 */
-  "\xe6\x9a\x9c\0" /* offset 16526 */
-  "\xe8\x82\xad\0" /* offset 16530 */
-  "\xe4\x8f\x99\0" /* offset 16534 */
-  "\xe6\x9c\xa1\0" /* offset 16538 */
-  "\xe6\x9d\x9e\0" /* offset 16542 */
-  "\xe6\x9d\x93\0" /* offset 16546 */
-  "\xf0\xa3\x8f\x83\0" /* offset 16550 */
-  "\xe3\xad\x89\0" /* offset 16555 */
-  "\xe6\x9f\xba\0" /* offset 16559 */
-  "\xe6\x9e\x85\0" /* offset 16563 */
-  "\xe6\xa1\x92\0" /* offset 16567 */
-  "\xf0\xa3\x91\xad\0" /* offset 16571 */
-  "\xe6\xa2\x8e\0" /* offset 16576 */
-  "\xe6\xa0\x9f\0" /* offset 16580 */
-  "\xe6\xa4\x94\0" /* offset 16584 */
-  "\xe6\xa5\x82\0" /* offset 16588 */
-  "\xe6\xa6\xa3\0" /* offset 16592 */
-  "\xe6\xa7\xaa\0" /* offset 16596 */
-  "\xe6\xaa\xa8\0" /* offset 16600 */
-  "\xf0\xa3\x9a\xa3\0" /* offset 16604 */
-  "\xe6\xab\x9b\0" /* offset 16609 */
-  "\xe3\xb0\x98\0" /* offset 16613 */
-  "\xe6\xac\xa1\0" /* offset 16617 */
-  "\xf0\xa3\xa2\xa7\0" /* offset 16621 */
-  "\xe6\xad\x94\0" /* offset 16626 */
-  "\xe3\xb1\x8e\0" /* offset 16630 */
-  "\xe6\xad\xb2\0" /* offset 16634 */
-  "\xe6\xae\x9f\0" /* offset 16638 */
-  "\xe6\xae\xbb\0" /* offset 16642 */
-  "\xf0\xa3\xaa\x8d\0" /* offset 16646 */
-  "\xf0\xa1\xb4\x8b\0" /* offset 16651 */
-  "\xf0\xa3\xab\xba\0" /* offset 16656 */
-  "\xe6\xb1\x8e\0" /* offset 16661 */
-  "\xf0\xa3\xb2\xbc\0" /* offset 16665 */
-  "\xe6\xb2\xbf\0" /* offset 16670 */
-  "\xe6\xb3\x8d\0" /* offset 16674 */
-  "\xe6\xb1\xa7\0" /* offset 16678 */
-  "\xe6\xb4\x96\0" /* offset 16682 */
-  "\xe6\xb4\xbe\0" /* offset 16686 */
-  "\xe6\xb5\xa9\0" /* offset 16690 */
-  "\xe6\xb5\xb8\0" /* offset 16694 */
-  "\xe6\xb6\x85\0" /* offset 16698 */
-  "\xf0\xa3\xb4\x9e\0" /* offset 16702 */
-  "\xe6\xb4\xb4\0" /* offset 16707 */
-  "\xe6\xb8\xaf\0" /* offset 16711 */
-  "\xe6\xb9\xae\0" /* offset 16715 */
-  "\xe3\xb4\xb3\0" /* offset 16719 */
-  "\xe6\xbb\x87\0" /* offset 16723 */
-  "\xf0\xa3\xbb\x91\0" /* offset 16727 */
-  "\xe6\xb7\xb9\0" /* offset 16732 */
-  "\xe6\xbd\xae\0" /* offset 16736 */
-  "\xf0\xa3\xbd\x9e\0" /* offset 16740 */
-  "\xf0\xa3\xbe\x8e\0" /* offset 16745 */
-  "\xe6\xbf\x86\0" /* offset 16750 */
-  "\xe7\x80\xb9\0" /* offset 16754 */
-  "\xe7\x80\x9b\0" /* offset 16758 */
-  "\xe3\xb6\x96\0" /* offset 16762 */
-  "\xe7\x81\x8a\0" /* offset 16766 */
-  "\xe7\x81\xbd\0" /* offset 16770 */
-  "\xe7\x81\xb7\0" /* offset 16774 */
-  "\xe7\x82\xad\0" /* offset 16778 */
-  "\xf0\xa0\x94\xa5\0" /* offset 16782 */
-  "\xe7\x85\x85\0" /* offset 16787 */
-  "\xf0\xa4\x89\xa3\0" /* offset 16791 */
-  "\xe7\x86\x9c\0" /* offset 16796 */
-  "\xf0\xa4\x8e\xab\0" /* offset 16800 */
-  "\xe7\x88\xa8\0" /* offset 16805 */
-  "\xe7\x89\x90\0" /* offset 16809 */
-  "\xf0\xa4\x98\x88\0" /* offset 16813 */
-  "\xe7\x8a\x80\0" /* offset 16818 */
-  "\xe7\x8a\x95\0" /* offset 16822 */
-  "\xf0\xa4\x9c\xb5\0" /* offset 16826 */
-  "\xf0\xa4\xa0\x94\0" /* offset 16831 */
-  "\xe7\x8d\xba\0" /* offset 16836 */
-  "\xe7\x8e\x8b\0" /* offset 16840 */
-  "\xe3\xba\xac\0" /* offset 16844 */
-  "\xe7\x8e\xa5\0" /* offset 16848 */
-  "\xe3\xba\xb8\0" /* offset 16852 */
-  "\xe7\x91\x87\0" /* offset 16856 */
-  "\xe7\x91\x9c\0" /* offset 16860 */
-  "\xe7\x92\x85\0" /* offset 16864 */
-  "\xe7\x93\x8a\0" /* offset 16868 */
-  "\xe3\xbc\x9b\0" /* offset 16872 */
-  "\xe7\x94\xa4\0" /* offset 16876 */
-  "\xf0\xa4\xb0\xb6\0" /* offset 16880 */
-  "\xe7\x94\xbe\0" /* offset 16885 */
-  "\xf0\xa4\xb2\x92\0" /* offset 16889 */
-  "\xf0\xa2\x86\x9f\0" /* offset 16894 */
-  "\xe7\x98\x90\0" /* offset 16899 */
-  "\xf0\xa4\xbe\xa1\0" /* offset 16903 */
-  "\xf0\xa4\xbe\xb8\0" /* offset 16908 */
-  "\xf0\xa5\x81\x84\0" /* offset 16913 */
-  "\xe3\xbf\xbc\0" /* offset 16918 */
-  "\xe4\x80\x88\0" /* offset 16922 */
-  "\xf0\xa5\x83\xb3\0" /* offset 16926 */
-  "\xf0\xa5\x83\xb2\0" /* offset 16931 */
-  "\xf0\xa5\x84\x99\0" /* offset 16936 */
-  "\xf0\xa5\x84\xb3\0" /* offset 16941 */
-  "\xe7\x9c\x9e\0" /* offset 16946 */
-  "\xe7\x9c\x9f\0" /* offset 16950 */
-  "\xe7\x9e\x8b\0" /* offset 16954 */
-  "\xe4\x81\x86\0" /* offset 16958 */
-  "\xe4\x82\x96\0" /* offset 16962 */
-  "\xf0\xa5\x90\x9d\0" /* offset 16966 */
-  "\xe7\xa1\x8e\0" /* offset 16971 */
-  "\xe4\x83\xa3\0" /* offset 16975 */
-  "\xf0\xa5\x98\xa6\0" /* offset 16979 */
-  "\xf0\xa5\x9a\x9a\0" /* offset 16984 */
-  "\xf0\xa5\x9b\x85\0" /* offset 16989 */
-  "\xe7\xa7\xab\0" /* offset 16994 */
-  "\xe4\x84\xaf\0" /* offset 16998 */
-  "\xe7\xa9\x8a\0" /* offset 17002 */
-  "\xe7\xa9\x8f\0" /* offset 17006 */
-  "\xf0\xa5\xa5\xbc\0" /* offset 17010 */
-  "\xf0\xa5\xaa\xa7\0" /* offset 17015 */
-  "\xe7\xab\xae\0" /* offset 17020 */
-  "\xe4\x88\x82\0" /* offset 17024 */
-  "\xf0\xa5\xae\xab\0" /* offset 17028 */
-  "\xe7\xaf\x86\0" /* offset 17033 */
-  "\xe7\xaf\x89\0" /* offset 17037 */
-  "\xe4\x88\xa7\0" /* offset 17041 */
-  "\xf0\xa5\xb2\x80\0" /* offset 17045 */
-  "\xe7\xb3\x92\0" /* offset 17050 */
-  "\xe4\x8a\xa0\0" /* offset 17054 */
-  "\xe7\xb3\xa8\0" /* offset 17058 */
-  "\xe7\xb3\xa3\0" /* offset 17062 */
-  "\xe7\xb4\x80\0" /* offset 17066 */
-  "\xf0\xa5\xbe\x86\0" /* offset 17070 */
-  "\xe7\xb5\xa3\0" /* offset 17075 */
-  "\xe4\x8c\x81\0" /* offset 17079 */
-  "\xe7\xb7\x87\0" /* offset 17083 */
-  "\xe7\xb8\x82\0" /* offset 17087 */
-  "\xe7\xb9\x85\0" /* offset 17091 */
-  "\xe4\x8c\xb4\0" /* offset 17095 */
-  "\xf0\xa6\x88\xa8\0" /* offset 17099 */
-  "\xf0\xa6\x89\x87\0" /* offset 17104 */
-  "\xe4\x8d\x99\0" /* offset 17109 */
-  "\xf0\xa6\x8b\x99\0" /* offset 17113 */
-  "\xe7\xbd\xba\0" /* offset 17118 */
-  "\xf0\xa6\x8c\xbe\0" /* offset 17122 */
-  "\xe7\xbe\x95\0" /* offset 17127 */
-  "\xe7\xbf\xba\0" /* offset 17131 */
-  "\xf0\xa6\x93\x9a\0" /* offset 17135 */
-  "\xf0\xa6\x94\xa3\0" /* offset 17140 */
-  "\xe8\x81\xa0\0" /* offset 17145 */
-  "\xf0\xa6\x96\xa8\0" /* offset 17149 */
-  "\xe8\x81\xb0\0" /* offset 17154 */
-  "\xf0\xa3\x8d\x9f\0" /* offset 17158 */
-  "\xe4\x8f\x95\0" /* offset 17163 */
-  "\xe8\x82\xb2\0" /* offset 17167 */
-  "\xe8\x84\x83\0" /* offset 17171 */
-  "\xe4\x90\x8b\0" /* offset 17175 */
-  "\xe8\x84\xbe\0" /* offset 17179 */
-  "\xe5\xaa\xb5\0" /* offset 17183 */
-  "\xf0\xa6\x9e\xa7\0" /* offset 17187 */
-  "\xf0\xa6\x9e\xb5\0" /* offset 17192 */
-  "\xf0\xa3\x8e\x93\0" /* offset 17197 */
-  "\xf0\xa3\x8e\x9c\0" /* offset 17202 */
-  "\xe8\x88\x84\0" /* offset 17207 */
-  "\xe8\xbe\x9e\0" /* offset 17211 */
-  "\xe4\x91\xab\0" /* offset 17215 */
-  "\xe8\x8a\x91\0" /* offset 17219 */
-  "\xe8\x8a\x8b\0" /* offset 17223 */
-  "\xe8\x8a\x9d\0" /* offset 17227 */
-  "\xe5\x8a\xb3\0" /* offset 17231 */
-  "\xe8\x8a\xb1\0" /* offset 17235 */
-  "\xe8\x8a\xb3\0" /* offset 17239 */
-  "\xe8\x8a\xbd\0" /* offset 17243 */
-  "\xe8\x8b\xa6\0" /* offset 17247 */
-  "\xf0\xa6\xac\xbc\0" /* offset 17251 */
-  "\xe8\x8c\x9d\0" /* offset 17256 */
-  "\xe8\x8d\xa3\0" /* offset 17260 */
-  "\xe8\x8e\xad\0" /* offset 17264 */
-  "\xe8\x8c\xa3\0" /* offset 17268 */
-  "\xe8\x8e\xbd\0" /* offset 17272 */
-  "\xe8\x8f\xa7\0" /* offset 17276 */
-  "\xe8\x8d\x93\0" /* offset 17280 */
-  "\xe8\x8f\x8a\0" /* offset 17284 */
-  "\xe8\x8f\x8c\0" /* offset 17288 */
-  "\xe8\x8f\x9c\0" /* offset 17292 */
-  "\xf0\xa6\xb0\xb6\0" /* offset 17296 */
-  "\xf0\xa6\xb5\xab\0" /* offset 17301 */
-  "\xf0\xa6\xb3\x95\0" /* offset 17306 */
-  "\xe4\x94\xab\0" /* offset 17311 */
-  "\xe8\x93\xb1\0" /* offset 17315 */
-  "\xe8\x93\xb3\0" /* offset 17319 */
-  "\xe8\x94\x96\0" /* offset 17323 */
-  "\xf0\xa7\x8f\x8a\0" /* offset 17327 */
-  "\xe8\x95\xa4\0" /* offset 17332 */
-  "\xf0\xa6\xbc\xac\0" /* offset 17336 */
-  "\xe4\x95\x9d\0" /* offset 17341 */
-  "\xe4\x95\xa1\0" /* offset 17345 */
-  "\xf0\xa6\xbe\xb1\0" /* offset 17349 */
-  "\xf0\xa7\x83\x92\0" /* offset 17354 */
-  "\xe4\x95\xab\0" /* offset 17359 */
-  "\xe8\x99\x90\0" /* offset 17363 */
-  "\xe8\x99\xa7\0" /* offset 17367 */
-  "\xe8\x99\xa9\0" /* offset 17371 */
-  "\xe8\x9a\xa9\0" /* offset 17375 */
-  "\xe8\x9a\x88\0" /* offset 17379 */
-  "\xe8\x9c\x8e\0" /* offset 17383 */
-  "\xe8\x9b\xa2\0" /* offset 17387 */
-  "\xe8\x9c\xa8\0" /* offset 17391 */
-  "\xe8\x9d\xab\0" /* offset 17395 */
-  "\xe8\x9e\x86\0" /* offset 17399 */
-  "\xe4\x97\x97\0" /* offset 17403 */
-  "\xe8\x9f\xa1\0" /* offset 17407 */
-  "\xe8\xa0\x81\0" /* offset 17411 */
-  "\xe4\x97\xb9\0" /* offset 17415 */
-  "\xe8\xa1\xa0\0" /* offset 17419 */
-  "\xf0\xa7\x99\xa7\0" /* offset 17423 */
-  "\xe8\xa3\x97\0" /* offset 17428 */
-  "\xe8\xa3\x9e\0" /* offset 17432 */
-  "\xe4\x98\xb5\0" /* offset 17436 */
-  "\xe8\xa3\xba\0" /* offset 17440 */
-  "\xe3\x92\xbb\0" /* offset 17444 */
-  "\xf0\xa7\xa2\xae\0" /* offset 17448 */
-  "\xf0\xa7\xa5\xa6\0" /* offset 17453 */
-  "\xe4\x9a\xbe\0" /* offset 17458 */
-  "\xe4\x9b\x87\0" /* offset 17462 */
-  "\xe8\xaa\xa0\0" /* offset 17466 */
-  "\xf0\xa7\xb2\xa8\0" /* offset 17470 */
-  "\xe8\xb2\xab\0" /* offset 17475 */
-  "\xe8\xb3\x81\0" /* offset 17479 */
-  "\xe8\xb4\x9b\0" /* offset 17483 */
-  "\xe8\xb5\xb7\0" /* offset 17487 */
-  "\xf0\xa7\xbc\xaf\0" /* offset 17491 */
-  "\xf0\xa0\xa0\x84\0" /* offset 17496 */
-  "\xe8\xb7\x8b\0" /* offset 17501 */
-  "\xe8\xb6\xbc\0" /* offset 17505 */
-  "\xe8\xb7\xb0\0" /* offset 17509 */
-  "\xf0\xa0\xa3\x9e\0" /* offset 17513 */
-  "\xe8\xbb\x94\0" /* offset 17518 */
-  "\xf0\xa8\x97\x92\0" /* offset 17522 */
-  "\xf0\xa8\x97\xad\0" /* offset 17527 */
-  "\xe9\x82\x94\0" /* offset 17532 */
-  "\xe9\x83\xb1\0" /* offset 17536 */
-  "\xe9\x84\x91\0" /* offset 17540 */
-  "\xf0\xa8\x9c\xae\0" /* offset 17544 */
-  "\xe9\x84\x9b\0" /* offset 17549 */
-  "\xe9\x88\xb8\0" /* offset 17553 */
-  "\xe9\x8b\x97\0" /* offset 17557 */
-  "\xe9\x8b\x98\0" /* offset 17561 */
-  "\xe9\x89\xbc\0" /* offset 17565 */
-  "\xe9\x8f\xb9\0" /* offset 17569 */
-  "\xe9\x90\x95\0" /* offset 17573 */
-  "\xf0\xa8\xaf\xba\0" /* offset 17577 */
-  "\xe9\x96\x8b\0" /* offset 17582 */
-  "\xe4\xa6\x95\0" /* offset 17586 */
-  "\xe9\x96\xb7\0" /* offset 17590 */
-  "\xf0\xa8\xb5\xb7\0" /* offset 17594 */
-  "\xe4\xa7\xa6\0" /* offset 17599 */
-  "\xe9\x9b\x83\0" /* offset 17603 */
-  "\xe5\xb6\xb2\0" /* offset 17607 */
-  "\xe9\x9c\xa3\0" /* offset 17611 */
-  "\xf0\xa9\x85\x85\0" /* offset 17615 */
-  "\xf0\xa9\x88\x9a\0" /* offset 17620 */
-  "\xe4\xa9\xae\0" /* offset 17625 */
-  "\xe4\xa9\xb6\0" /* offset 17629 */
-  "\xe9\x9f\xa0\0" /* offset 17633 */
-  "\xf0\xa9\x90\x8a\0" /* offset 17637 */
-  "\xe4\xaa\xb2\0" /* offset 17642 */
-  "\xf0\xa9\x92\x96\0" /* offset 17646 */
-  "\xe9\xa0\xa9\0" /* offset 17651 */
-  "\xf0\xa9\x96\xb6\0" /* offset 17655 */
-  "\xe9\xa3\xa2\0" /* offset 17660 */
-  "\xe4\xac\xb3\0" /* offset 17664 */
-  "\xe9\xa4\xa9\0" /* offset 17668 */
-  "\xe9\xa6\xa7\0" /* offset 17672 */
-  "\xe9\xa7\x82\0" /* offset 17676 */
-  "\xe9\xa7\xbe\0" /* offset 17680 */
-  "\xe4\xaf\x8e\0" /* offset 17684 */
-  "\xf0\xa9\xac\xb0\0" /* offset 17688 */
-  "\xe9\xb1\x80\0" /* offset 17693 */
-  "\xe9\xb3\xbd\0" /* offset 17697 */
-  "\xe4\xb3\x8e\0" /* offset 17701 */
-  "\xe4\xb3\xad\0" /* offset 17705 */
-  "\xe9\xb5\xa7\0" /* offset 17709 */
-  "\xf0\xaa\x83\x8e\0" /* offset 17713 */
-  "\xe4\xb3\xb8\0" /* offset 17718 */
-  "\xf0\xaa\x84\x85\0" /* offset 17722 */
-  "\xf0\xaa\x88\x8e\0" /* offset 17727 */
-  "\xf0\xaa\x8a\x91\0" /* offset 17732 */
-  "\xe4\xb5\x96\0" /* offset 17737 */
-  "\xe9\xbb\xbe\0" /* offset 17741 */
-  "\xe9\xbc\x85\0" /* offset 17745 */
-  "\xe9\xbc\x8f\0" /* offset 17749 */
-  "\xe9\xbc\x96\0" /* offset 17753 */
-  "\xf0\xaa\x98\x80\0" /* offset 17757 */;
+  "\xca\x8d\0" /* offset 10914 */
+  "\xe8\xb1\x88\0" /* offset 10917 */
+  "\xe6\x9b\xb4\0" /* offset 10921 */
+  "\xe8\xb3\x88\0" /* offset 10925 */
+  "\xe6\xbb\x91\0" /* offset 10929 */
+  "\xe4\xb8\xb2\0" /* offset 10933 */
+  "\xe5\x8f\xa5\0" /* offset 10937 */
+  "\xe5\xa5\x91\0" /* offset 10941 */
+  "\xe5\x96\x87\0" /* offset 10945 */
+  "\xe5\xa5\x88\0" /* offset 10949 */
+  "\xe6\x87\xb6\0" /* offset 10953 */
+  "\xe7\x99\xa9\0" /* offset 10957 */
+  "\xe7\xbe\x85\0" /* offset 10961 */
+  "\xe8\x98\xbf\0" /* offset 10965 */
+  "\xe8\x9e\xba\0" /* offset 10969 */
+  "\xe8\xa3\xb8\0" /* offset 10973 */
+  "\xe9\x82\x8f\0" /* offset 10977 */
+  "\xe6\xa8\x82\0" /* offset 10981 */
+  "\xe6\xb4\x9b\0" /* offset 10985 */
+  "\xe7\x83\x99\0" /* offset 10989 */
+  "\xe7\x8f\x9e\0" /* offset 10993 */
+  "\xe8\x90\xbd\0" /* offset 10997 */
+  "\xe9\x85\xaa\0" /* offset 11001 */
+  "\xe9\xa7\xb1\0" /* offset 11005 */
+  "\xe4\xba\x82\0" /* offset 11009 */
+  "\xe5\x8d\xb5\0" /* offset 11013 */
+  "\xe6\xac\x84\0" /* offset 11017 */
+  "\xe7\x88\x9b\0" /* offset 11021 */
+  "\xe8\x98\xad\0" /* offset 11025 */
+  "\xe9\xb8\x9e\0" /* offset 11029 */
+  "\xe5\xb5\x90\0" /* offset 11033 */
+  "\xe6\xbf\xab\0" /* offset 11037 */
+  "\xe8\x97\x8d\0" /* offset 11041 */
+  "\xe8\xa5\xa4\0" /* offset 11045 */
+  "\xe6\x8b\x89\0" /* offset 11049 */
+  "\xe8\x87\x98\0" /* offset 11053 */
+  "\xe8\xa0\x9f\0" /* offset 11057 */
+  "\xe5\xbb\x8a\0" /* offset 11061 */
+  "\xe6\x9c\x97\0" /* offset 11065 */
+  "\xe6\xb5\xaa\0" /* offset 11069 */
+  "\xe7\x8b\xbc\0" /* offset 11073 */
+  "\xe9\x83\x8e\0" /* offset 11077 */
+  "\xe4\xbe\x86\0" /* offset 11081 */
+  "\xe5\x86\xb7\0" /* offset 11085 */
+  "\xe5\x8b\x9e\0" /* offset 11089 */
+  "\xe6\x93\x84\0" /* offset 11093 */
+  "\xe6\xab\x93\0" /* offset 11097 */
+  "\xe7\x88\x90\0" /* offset 11101 */
+  "\xe7\x9b\xa7\0" /* offset 11105 */
+  "\xe8\x98\x86\0" /* offset 11109 */
+  "\xe8\x99\x9c\0" /* offset 11113 */
+  "\xe8\xb7\xaf\0" /* offset 11117 */
+  "\xe9\x9c\xb2\0" /* offset 11121 */
+  "\xe9\xad\xaf\0" /* offset 11125 */
+  "\xe9\xb7\xba\0" /* offset 11129 */
+  "\xe7\xa2\x8c\0" /* offset 11133 */
+  "\xe7\xa5\xbf\0" /* offset 11137 */
+  "\xe7\xb6\xa0\0" /* offset 11141 */
+  "\xe8\x8f\x89\0" /* offset 11145 */
+  "\xe9\x8c\x84\0" /* offset 11149 */
+  "\xe8\xab\x96\0" /* offset 11153 */
+  "\xe5\xa3\x9f\0" /* offset 11157 */
+  "\xe5\xbc\x84\0" /* offset 11161 */
+  "\xe7\xb1\xa0\0" /* offset 11165 */
+  "\xe8\x81\xbe\0" /* offset 11169 */
+  "\xe7\x89\xa2\0" /* offset 11173 */
+  "\xe7\xa3\x8a\0" /* offset 11177 */
+  "\xe8\xb3\x82\0" /* offset 11181 */
+  "\xe9\x9b\xb7\0" /* offset 11185 */
+  "\xe5\xa3\x98\0" /* offset 11189 */
+  "\xe5\xb1\xa2\0" /* offset 11193 */
+  "\xe6\xa8\x93\0" /* offset 11197 */
+  "\xe6\xb7\x9a\0" /* offset 11201 */
+  "\xe6\xbc\x8f\0" /* offset 11205 */
+  "\xe7\xb4\xaf\0" /* offset 11209 */
+  "\xe7\xb8\xb7\0" /* offset 11213 */
+  "\xe9\x99\x8b\0" /* offset 11217 */
+  "\xe5\x8b\x92\0" /* offset 11221 */
+  "\xe8\x82\x8b\0" /* offset 11225 */
+  "\xe5\x87\x9c\0" /* offset 11229 */
+  "\xe5\x87\x8c\0" /* offset 11233 */
+  "\xe7\xa8\x9c\0" /* offset 11237 */
+  "\xe7\xb6\xbe\0" /* offset 11241 */
+  "\xe8\x8f\xb1\0" /* offset 11245 */
+  "\xe9\x99\xb5\0" /* offset 11249 */
+  "\xe8\xae\x80\0" /* offset 11253 */
+  "\xe6\x8b\x8f\0" /* offset 11257 */
+  "\xe8\xab\xbe\0" /* offset 11261 */
+  "\xe4\xb8\xb9\0" /* offset 11265 */
+  "\xe5\xaf\xa7\0" /* offset 11269 */
+  "\xe6\x80\x92\0" /* offset 11273 */
+  "\xe7\x8e\x87\0" /* offset 11277 */
+  "\xe7\x95\xb0\0" /* offset 11281 */
+  "\xe5\x8c\x97\0" /* offset 11285 */
+  "\xe7\xa3\xbb\0" /* offset 11289 */
+  "\xe4\xbe\xbf\0" /* offset 11293 */
+  "\xe5\xbe\xa9\0" /* offset 11297 */
+  "\xe4\xb8\x8d\0" /* offset 11301 */
+  "\xe6\xb3\x8c\0" /* offset 11305 */
+  "\xe6\x95\xb8\0" /* offset 11309 */
+  "\xe7\xb4\xa2\0" /* offset 11313 */
+  "\xe5\x8f\x83\0" /* offset 11317 */
+  "\xe5\xa1\x9e\0" /* offset 11321 */
+  "\xe7\x9c\x81\0" /* offset 11325 */
+  "\xe8\x91\x89\0" /* offset 11329 */
+  "\xe8\xaa\xaa\0" /* offset 11333 */
+  "\xe6\xae\xba\0" /* offset 11337 */
+  "\xe6\xb2\x88\0" /* offset 11341 */
+  "\xe6\x8b\xbe\0" /* offset 11345 */
+  "\xe8\x8b\xa5\0" /* offset 11349 */
+  "\xe6\x8e\xa0\0" /* offset 11353 */
+  "\xe7\x95\xa5\0" /* offset 11357 */
+  "\xe4\xba\xae\0" /* offset 11361 */
+  "\xe5\x85\xa9\0" /* offset 11365 */
+  "\xe5\x87\x89\0" /* offset 11369 */
+  "\xe6\xa2\x81\0" /* offset 11373 */
+  "\xe7\xb3\xa7\0" /* offset 11377 */
+  "\xe8\x89\xaf\0" /* offset 11381 */
+  "\xe8\xab\x92\0" /* offset 11385 */
+  "\xe9\x87\x8f\0" /* offset 11389 */
+  "\xe5\x8b\xb5\0" /* offset 11393 */
+  "\xe5\x91\x82\0" /* offset 11397 */
+  "\xe5\xbb\xac\0" /* offset 11401 */
+  "\xe6\x97\x85\0" /* offset 11405 */
+  "\xe6\xbf\xbe\0" /* offset 11409 */
+  "\xe7\xa4\xaa\0" /* offset 11413 */
+  "\xe9\x96\xad\0" /* offset 11417 */
+  "\xe9\xa9\xaa\0" /* offset 11421 */
+  "\xe9\xba\x97\0" /* offset 11425 */
+  "\xe9\xbb\x8e\0" /* offset 11429 */
+  "\xe6\x9b\x86\0" /* offset 11433 */
+  "\xe6\xad\xb7\0" /* offset 11437 */
+  "\xe8\xbd\xa2\0" /* offset 11441 */
+  "\xe5\xb9\xb4\0" /* offset 11445 */
+  "\xe6\x86\x90\0" /* offset 11449 */
+  "\xe6\x88\x80\0" /* offset 11453 */
+  "\xe6\x92\x9a\0" /* offset 11457 */
+  "\xe6\xbc\xa3\0" /* offset 11461 */
+  "\xe7\x85\x89\0" /* offset 11465 */
+  "\xe7\x92\x89\0" /* offset 11469 */
+  "\xe7\xa7\x8a\0" /* offset 11473 */
+  "\xe7\xb7\xb4\0" /* offset 11477 */
+  "\xe8\x81\xaf\0" /* offset 11481 */
+  "\xe8\xbc\xa6\0" /* offset 11485 */
+  "\xe8\x93\xae\0" /* offset 11489 */
+  "\xe9\x80\xa3\0" /* offset 11493 */
+  "\xe9\x8d\x8a\0" /* offset 11497 */
+  "\xe5\x88\x97\0" /* offset 11501 */
+  "\xe5\x8a\xa3\0" /* offset 11505 */
+  "\xe5\x92\xbd\0" /* offset 11509 */
+  "\xe7\x83\x88\0" /* offset 11513 */
+  "\xe8\xa3\x82\0" /* offset 11517 */
+  "\xe5\xbb\x89\0" /* offset 11521 */
+  "\xe5\xbf\xb5\0" /* offset 11525 */
+  "\xe6\x8d\xbb\0" /* offset 11529 */
+  "\xe6\xae\xae\0" /* offset 11533 */
+  "\xe7\xb0\xbe\0" /* offset 11537 */
+  "\xe7\x8d\xb5\0" /* offset 11541 */
+  "\xe4\xbb\xa4\0" /* offset 11545 */
+  "\xe5\x9b\xb9\0" /* offset 11549 */
+  "\xe5\xb6\xba\0" /* offset 11553 */
+  "\xe6\x80\x9c\0" /* offset 11557 */
+  "\xe7\x8e\xb2\0" /* offset 11561 */
+  "\xe7\x91\xa9\0" /* offset 11565 */
+  "\xe7\xbe\x9a\0" /* offset 11569 */
+  "\xe8\x81\x86\0" /* offset 11573 */
+  "\xe9\x88\xb4\0" /* offset 11577 */
+  "\xe9\x9b\xb6\0" /* offset 11581 */
+  "\xe9\x9d\x88\0" /* offset 11585 */
+  "\xe9\xa0\x98\0" /* offset 11589 */
+  "\xe4\xbe\x8b\0" /* offset 11593 */
+  "\xe7\xa6\xae\0" /* offset 11597 */
+  "\xe9\x86\xb4\0" /* offset 11601 */
+  "\xe9\x9a\xb8\0" /* offset 11605 */
+  "\xe6\x83\xa1\0" /* offset 11609 */
+  "\xe4\xba\x86\0" /* offset 11613 */
+  "\xe5\x83\x9a\0" /* offset 11617 */
+  "\xe5\xaf\xae\0" /* offset 11621 */
+  "\xe5\xb0\xbf\0" /* offset 11625 */
+  "\xe6\x96\x99\0" /* offset 11629 */
+  "\xe7\x87\x8e\0" /* offset 11633 */
+  "\xe7\x99\x82\0" /* offset 11637 */
+  "\xe8\x93\xbc\0" /* offset 11641 */
+  "\xe9\x81\xbc\0" /* offset 11645 */
+  "\xe6\x9a\x88\0" /* offset 11649 */
+  "\xe9\x98\xae\0" /* offset 11653 */
+  "\xe5\x8a\x89\0" /* offset 11657 */
+  "\xe6\x9d\xbb\0" /* offset 11661 */
+  "\xe6\x9f\xb3\0" /* offset 11665 */
+  "\xe6\xb5\x81\0" /* offset 11669 */
+  "\xe6\xba\x9c\0" /* offset 11673 */
+  "\xe7\x90\x89\0" /* offset 11677 */
+  "\xe7\x95\x99\0" /* offset 11681 */
+  "\xe7\xa1\xab\0" /* offset 11685 */
+  "\xe7\xb4\x90\0" /* offset 11689 */
+  "\xe9\xa1\x9e\0" /* offset 11693 */
+  "\xe6\x88\xae\0" /* offset 11697 */
+  "\xe9\x99\xb8\0" /* offset 11701 */
+  "\xe5\x80\xab\0" /* offset 11705 */
+  "\xe5\xb4\x99\0" /* offset 11709 */
+  "\xe6\xb7\xaa\0" /* offset 11713 */
+  "\xe8\xbc\xaa\0" /* offset 11717 */
+  "\xe5\xbe\x8b\0" /* offset 11721 */
+  "\xe6\x85\x84\0" /* offset 11725 */
+  "\xe6\xa0\x97\0" /* offset 11729 */
+  "\xe9\x9a\x86\0" /* offset 11733 */
+  "\xe5\x88\xa9\0" /* offset 11737 */
+  "\xe5\x90\x8f\0" /* offset 11741 */
+  "\xe5\xb1\xa5\0" /* offset 11745 */
+  "\xe6\x98\x93\0" /* offset 11749 */
+  "\xe6\x9d\x8e\0" /* offset 11753 */
+  "\xe6\xa2\xa8\0" /* offset 11757 */
+  "\xe6\xb3\xa5\0" /* offset 11761 */
+  "\xe7\x90\x86\0" /* offset 11765 */
+  "\xe7\x97\xa2\0" /* offset 11769 */
+  "\xe7\xbd\xb9\0" /* offset 11773 */
+  "\xe8\xa3\x8f\0" /* offset 11777 */
+  "\xe8\xa3\xa1\0" /* offset 11781 */
+  "\xe9\x9b\xa2\0" /* offset 11785 */
+  "\xe5\x8c\xbf\0" /* offset 11789 */
+  "\xe6\xba\xba\0" /* offset 11793 */
+  "\xe5\x90\x9d\0" /* offset 11797 */
+  "\xe7\x87\x90\0" /* offset 11801 */
+  "\xe7\x92\x98\0" /* offset 11805 */
+  "\xe8\x97\xba\0" /* offset 11809 */
+  "\xe9\x9a\xa3\0" /* offset 11813 */
+  "\xe9\xb1\x97\0" /* offset 11817 */
+  "\xe9\xba\x9f\0" /* offset 11821 */
+  "\xe6\x9e\x97\0" /* offset 11825 */
+  "\xe6\xb7\x8b\0" /* offset 11829 */
+  "\xe8\x87\xa8\0" /* offset 11833 */
+  "\xe7\xac\xa0\0" /* offset 11837 */
+  "\xe7\xb2\x92\0" /* offset 11841 */
+  "\xe7\x8b\x80\0" /* offset 11845 */
+  "\xe7\x82\x99\0" /* offset 11849 */
+  "\xe8\xad\x98\0" /* offset 11853 */
+  "\xe4\xbb\x80\0" /* offset 11857 */
+  "\xe8\x8c\xb6\0" /* offset 11861 */
+  "\xe5\x88\xba\0" /* offset 11865 */
+  "\xe5\x88\x87\0" /* offset 11869 */
+  "\xe5\xba\xa6\0" /* offset 11873 */
+  "\xe6\x8b\x93\0" /* offset 11877 */
+  "\xe7\xb3\x96\0" /* offset 11881 */
+  "\xe5\xae\x85\0" /* offset 11885 */
+  "\xe6\xb4\x9e\0" /* offset 11889 */
+  "\xe6\x9a\xb4\0" /* offset 11893 */
+  "\xe8\xbc\xbb\0" /* offset 11897 */
+  "\xe9\x99\x8d\0" /* offset 11901 */
+  "\xe5\xbb\x93\0" /* offset 11905 */
+  "\xe5\x85\x80\0" /* offset 11909 */
+  "\xe5\x97\x80\0" /* offset 11913 */
+  "\xe5\xa1\x9a\0" /* offset 11917 */
+  "\xe6\x99\xb4\0" /* offset 11921 */
+  "\xe5\x87\x9e\0" /* offset 11925 */
+  "\xe7\x8c\xaa\0" /* offset 11929 */
+  "\xe7\x9b\x8a\0" /* offset 11933 */
+  "\xe7\xa4\xbc\0" /* offset 11937 */
+  "\xe7\xa5\x9e\0" /* offset 11941 */
+  "\xe7\xa5\xa5\0" /* offset 11945 */
+  "\xe7\xa6\x8f\0" /* offset 11949 */
+  "\xe9\x9d\x96\0" /* offset 11953 */
+  "\xe7\xb2\xbe\0" /* offset 11957 */
+  "\xe8\x98\x92\0" /* offset 11961 */
+  "\xe8\xab\xb8\0" /* offset 11965 */
+  "\xe9\x80\xb8\0" /* offset 11969 */
+  "\xe9\x83\xbd\0" /* offset 11973 */
+  "\xe9\xa3\xaf\0" /* offset 11977 */
+  "\xe9\xa3\xbc\0" /* offset 11981 */
+  "\xe9\xa4\xa8\0" /* offset 11985 */
+  "\xe9\xb6\xb4\0" /* offset 11989 */
+  "\xe9\x83\x9e\0" /* offset 11993 */
+  "\xe9\x9a\xb7\0" /* offset 11997 */
+  "\xe4\xbe\xae\0" /* offset 12001 */
+  "\xe5\x83\xa7\0" /* offset 12005 */
+  "\xe5\x85\x8d\0" /* offset 12009 */
+  "\xe5\x8b\x89\0" /* offset 12013 */
+  "\xe5\x8b\xa4\0" /* offset 12017 */
+  "\xe5\x8d\x91\0" /* offset 12021 */
+  "\xe5\x96\x9d\0" /* offset 12025 */
+  "\xe5\x98\x86\0" /* offset 12029 */
+  "\xe5\x99\xa8\0" /* offset 12033 */
+  "\xe5\xa1\x80\0" /* offset 12037 */
+  "\xe5\xa2\xa8\0" /* offset 12041 */
+  "\xe5\xb1\xa4\0" /* offset 12045 */
+  "\xe6\x82\x94\0" /* offset 12049 */
+  "\xe6\x85\xa8\0" /* offset 12053 */
+  "\xe6\x86\x8e\0" /* offset 12057 */
+  "\xe6\x87\xb2\0" /* offset 12061 */
+  "\xe6\x95\x8f\0" /* offset 12065 */
+  "\xe6\x97\xa2\0" /* offset 12069 */
+  "\xe6\x9a\x91\0" /* offset 12073 */
+  "\xe6\xa2\x85\0" /* offset 12077 */
+  "\xe6\xb5\xb7\0" /* offset 12081 */
+  "\xe6\xb8\x9a\0" /* offset 12085 */
+  "\xe6\xbc\xa2\0" /* offset 12089 */
+  "\xe7\x85\xae\0" /* offset 12093 */
+  "\xe7\x88\xab\0" /* offset 12097 */
+  "\xe7\x90\xa2\0" /* offset 12101 */
+  "\xe7\xa2\x91\0" /* offset 12105 */
+  "\xe7\xa5\x89\0" /* offset 12109 */
+  "\xe7\xa5\x88\0" /* offset 12113 */
+  "\xe7\xa5\x90\0" /* offset 12117 */
+  "\xe7\xa5\x96\0" /* offset 12121 */
+  "\xe7\xa6\x8d\0" /* offset 12125 */
+  "\xe7\xa6\x8e\0" /* offset 12129 */
+  "\xe7\xa9\x80\0" /* offset 12133 */
+  "\xe7\xaa\x81\0" /* offset 12137 */
+  "\xe7\xaf\x80\0" /* offset 12141 */
+  "\xe7\xb8\x89\0" /* offset 12145 */
+  "\xe7\xb9\x81\0" /* offset 12149 */
+  "\xe7\xbd\xb2\0" /* offset 12153 */
+  "\xe8\x80\x85\0" /* offset 12157 */
+  "\xe8\x87\xad\0" /* offset 12161 */
+  "\xe8\x89\xb9\0" /* offset 12165 */
+  "\xe8\x91\x97\0" /* offset 12169 */
+  "\xe8\xa4\x90\0" /* offset 12173 */
+  "\xe8\xa6\x96\0" /* offset 12177 */
+  "\xe8\xac\x81\0" /* offset 12181 */
+  "\xe8\xac\xb9\0" /* offset 12185 */
+  "\xe8\xb3\x93\0" /* offset 12189 */
+  "\xe8\xb4\x88\0" /* offset 12193 */
+  "\xe8\xbe\xb6\0" /* offset 12197 */
+  "\xe9\x9b\xa3\0" /* offset 12201 */
+  "\xe9\x9f\xbf\0" /* offset 12205 */
+  "\xe9\xa0\xbb\0" /* offset 12209 */
+  "\xe6\x81\xb5\0" /* offset 12213 */
+  "\xf0\xa4\x8b\xae\0" /* offset 12217 */
+  "\xe8\x88\x98\0" /* offset 12222 */
+  "\xe4\xb8\xa6\0" /* offset 12226 */
+  "\xe5\x86\xb5\0" /* offset 12230 */
+  "\xe5\x85\xa8\0" /* offset 12234 */
+  "\xe4\xbe\x80\0" /* offset 12238 */
+  "\xe5\x85\x85\0" /* offset 12242 */
+  "\xe5\x86\x80\0" /* offset 12246 */
+  "\xe5\x8b\x87\0" /* offset 12250 */
+  "\xe5\x8b\xba\0" /* offset 12254 */
+  "\xe5\x95\x95\0" /* offset 12258 */
+  "\xe5\x96\x99\0" /* offset 12262 */
+  "\xe5\x97\xa2\0" /* offset 12266 */
+  "\xe5\xa2\xb3\0" /* offset 12270 */
+  "\xe5\xa5\x84\0" /* offset 12274 */
+  "\xe5\xa5\x94\0" /* offset 12278 */
+  "\xe5\xa9\xa2\0" /* offset 12282 */
+  "\xe5\xac\xa8\0" /* offset 12286 */
+  "\xe5\xbb\x92\0" /* offset 12290 */
+  "\xe5\xbb\x99\0" /* offset 12294 */
+  "\xe5\xbd\xa9\0" /* offset 12298 */
+  "\xe5\xbe\xad\0" /* offset 12302 */
+  "\xe6\x83\x98\0" /* offset 12306 */
+  "\xe6\x85\x8e\0" /* offset 12310 */
+  "\xe6\x84\x88\0" /* offset 12314 */
+  "\xe6\x85\xa0\0" /* offset 12318 */
+  "\xe6\x88\xb4\0" /* offset 12322 */
+  "\xe6\x8f\x84\0" /* offset 12326 */
+  "\xe6\x90\x9c\0" /* offset 12330 */
+  "\xe6\x91\x92\0" /* offset 12334 */
+  "\xe6\x95\x96\0" /* offset 12338 */
+  "\xe6\x9c\x9b\0" /* offset 12342 */
+  "\xe6\x9d\x96\0" /* offset 12346 */
+  "\xe6\xbb\x9b\0" /* offset 12350 */
+  "\xe6\xbb\x8b\0" /* offset 12354 */
+  "\xe7\x80\x9e\0" /* offset 12358 */
+  "\xe7\x9e\xa7\0" /* offset 12362 */
+  "\xe7\x88\xb5\0" /* offset 12366 */
+  "\xe7\x8a\xaf\0" /* offset 12370 */
+  "\xe7\x91\xb1\0" /* offset 12374 */
+  "\xe7\x94\x86\0" /* offset 12378 */
+  "\xe7\x94\xbb\0" /* offset 12382 */
+  "\xe7\x98\x9d\0" /* offset 12386 */
+  "\xe7\x98\x9f\0" /* offset 12390 */
+  "\xe7\x9b\x9b\0" /* offset 12394 */
+  "\xe7\x9b\xb4\0" /* offset 12398 */
+  "\xe7\x9d\x8a\0" /* offset 12402 */
+  "\xe7\x9d\x80\0" /* offset 12406 */
+  "\xe7\xa3\x8c\0" /* offset 12410 */
+  "\xe7\xaa\xb1\0" /* offset 12414 */
+  "\xe7\xb1\xbb\0" /* offset 12418 */
+  "\xe7\xb5\x9b\0" /* offset 12422 */
+  "\xe7\xbc\xbe\0" /* offset 12426 */
+  "\xe8\x8d\x92\0" /* offset 12430 */
+  "\xe8\x8f\xaf\0" /* offset 12434 */
+  "\xe8\x9d\xb9\0" /* offset 12438 */
+  "\xe8\xa5\x81\0" /* offset 12442 */
+  "\xe8\xa6\x86\0" /* offset 12446 */
+  "\xe8\xaa\xbf\0" /* offset 12450 */
+  "\xe8\xab\x8b\0" /* offset 12454 */
+  "\xe8\xab\xad\0" /* offset 12458 */
+  "\xe8\xae\x8a\0" /* offset 12462 */
+  "\xe8\xbc\xb8\0" /* offset 12466 */
+  "\xe9\x81\xb2\0" /* offset 12470 */
+  "\xe9\x86\x99\0" /* offset 12474 */
+  "\xe9\x89\xb6\0" /* offset 12478 */
+  "\xe9\x99\xbc\0" /* offset 12482 */
+  "\xe9\x9f\x9b\0" /* offset 12486 */
+  "\xe9\xa0\x8b\0" /* offset 12490 */
+  "\xe9\xac\x92\0" /* offset 12494 */
+  "\xf0\xa2\xa1\x8a\0" /* offset 12498 */
+  "\xf0\xa2\xa1\x84\0" /* offset 12503 */
+  "\xf0\xa3\x8f\x95\0" /* offset 12508 */
+  "\xe3\xae\x9d\0" /* offset 12513 */
+  "\xe4\x80\x98\0" /* offset 12517 */
+  "\xe4\x80\xb9\0" /* offset 12521 */
+  "\xf0\xa5\x89\x89\0" /* offset 12525 */
+  "\xf0\xa5\xb3\x90\0" /* offset 12530 */
+  "\xf0\xa7\xbb\x93\0" /* offset 12535 */
+  "\xe9\xbd\x83\0" /* offset 12540 */
+  "\xe9\xbe\x8e\0" /* offset 12544 */
+  "\x66\x66\0" /* offset 12548 */
+  "\x66\x69\0" /* offset 12551 */
+  "\x66\x6c\0" /* offset 12554 */
+  "\x66\x66\x69\0" /* offset 12557 */
+  "\x66\x66\x6c\0" /* offset 12561 */
+  "\x73\x74\0" /* offset 12565 */
+  "\xd5\xb4\xd5\xb6\0" /* offset 12568 */
+  "\xd5\xb4\xd5\xa5\0" /* offset 12573 */
+  "\xd5\xb4\xd5\xab\0" /* offset 12578 */
+  "\xd5\xbe\xd5\xb6\0" /* offset 12583 */
+  "\xd5\xb4\xd5\xad\0" /* offset 12588 */
+  "\xd7\x99\xd6\xb4\0" /* offset 12593 */
+  "\xd7\xb2\xd6\xb7\0" /* offset 12598 */
+  "\xd7\xa2\0" /* offset 12603 */
+  "\xd7\x94\0" /* offset 12606 */
+  "\xd7\x9b\0" /* offset 12609 */
+  "\xd7\x9c\0" /* offset 12612 */
+  "\xd7\x9d\0" /* offset 12615 */
+  "\xd7\xa8\0" /* offset 12618 */
+  "\xd7\xaa\0" /* offset 12621 */
+  "\xd7\xa9\xd7\x81\0" /* offset 12624 */
+  "\xd7\xa9\xd7\x82\0" /* offset 12629 */
+  "\xd7\xa9\xd6\xbc\xd7\x81\0" /* offset 12634 */
+  "\xd7\xa9\xd6\xbc\xd7\x82\0" /* offset 12641 */
+  "\xd7\x90\xd6\xb7\0" /* offset 12648 */
+  "\xd7\x90\xd6\xb8\0" /* offset 12653 */
+  "\xd7\x90\xd6\xbc\0" /* offset 12658 */
+  "\xd7\x91\xd6\xbc\0" /* offset 12663 */
+  "\xd7\x92\xd6\xbc\0" /* offset 12668 */
+  "\xd7\x93\xd6\xbc\0" /* offset 12673 */
+  "\xd7\x94\xd6\xbc\0" /* offset 12678 */
+  "\xd7\x95\xd6\xbc\0" /* offset 12683 */
+  "\xd7\x96\xd6\xbc\0" /* offset 12688 */
+  "\xd7\x98\xd6\xbc\0" /* offset 12693 */
+  "\xd7\x99\xd6\xbc\0" /* offset 12698 */
+  "\xd7\x9a\xd6\xbc\0" /* offset 12703 */
+  "\xd7\x9b\xd6\xbc\0" /* offset 12708 */
+  "\xd7\x9c\xd6\xbc\0" /* offset 12713 */
+  "\xd7\x9e\xd6\xbc\0" /* offset 12718 */
+  "\xd7\xa0\xd6\xbc\0" /* offset 12723 */
+  "\xd7\xa1\xd6\xbc\0" /* offset 12728 */
+  "\xd7\xa3\xd6\xbc\0" /* offset 12733 */
+  "\xd7\xa4\xd6\xbc\0" /* offset 12738 */
+  "\xd7\xa6\xd6\xbc\0" /* offset 12743 */
+  "\xd7\xa7\xd6\xbc\0" /* offset 12748 */
+  "\xd7\xa8\xd6\xbc\0" /* offset 12753 */
+  "\xd7\xa9\xd6\xbc\0" /* offset 12758 */
+  "\xd7\xaa\xd6\xbc\0" /* offset 12763 */
+  "\xd7\x95\xd6\xb9\0" /* offset 12768 */
+  "\xd7\x91\xd6\xbf\0" /* offset 12773 */
+  "\xd7\x9b\xd6\xbf\0" /* offset 12778 */
+  "\xd7\xa4\xd6\xbf\0" /* offset 12783 */
+  "\xd7\x90\xd7\x9c\0" /* offset 12788 */
+  "\xd9\xb1\0" /* offset 12793 */
+  "\xd9\xbb\0" /* offset 12796 */
+  "\xd9\xbe\0" /* offset 12799 */
+  "\xda\x80\0" /* offset 12802 */
+  "\xd9\xba\0" /* offset 12805 */
+  "\xd9\xbf\0" /* offset 12808 */
+  "\xd9\xb9\0" /* offset 12811 */
+  "\xda\xa4\0" /* offset 12814 */
+  "\xda\xa6\0" /* offset 12817 */
+  "\xda\x84\0" /* offset 12820 */
+  "\xda\x83\0" /* offset 12823 */
+  "\xda\x86\0" /* offset 12826 */
+  "\xda\x87\0" /* offset 12829 */
+  "\xda\x8d\0" /* offset 12832 */
+  "\xda\x8c\0" /* offset 12835 */
+  "\xda\x8e\0" /* offset 12838 */
+  "\xda\x88\0" /* offset 12841 */
+  "\xda\x98\0" /* offset 12844 */
+  "\xda\x91\0" /* offset 12847 */
+  "\xda\xa9\0" /* offset 12850 */
+  "\xda\xaf\0" /* offset 12853 */
+  "\xda\xb3\0" /* offset 12856 */
+  "\xda\xb1\0" /* offset 12859 */
+  "\xda\xba\0" /* offset 12862 */
+  "\xda\xbb\0" /* offset 12865 */
+  "\xdb\x81\0" /* offset 12868 */
+  "\xda\xbe\0" /* offset 12871 */
+  "\xdb\x92\0" /* offset 12874 */
+  "\xda\xad\0" /* offset 12877 */
+  "\xdb\x87\0" /* offset 12880 */
+  "\xdb\x86\0" /* offset 12883 */
+  "\xdb\x88\0" /* offset 12886 */
+  "\xdb\x8b\0" /* offset 12889 */
+  "\xdb\x85\0" /* offset 12892 */
+  "\xdb\x89\0" /* offset 12895 */
+  "\xdb\x90\0" /* offset 12898 */
+  "\xd9\x89\0" /* offset 12901 */
+  "\xd9\x8a\xd9\x94\xd8\xa7\0" /* offset 12904 */
+  "\xd9\x8a\xd9\x94\xdb\x95\0" /* offset 12911 */
+  "\xd9\x8a\xd9\x94\xd9\x88\0" /* offset 12918 */
+  "\xd9\x8a\xd9\x94\xdb\x87\0" /* offset 12925 */
+  "\xd9\x8a\xd9\x94\xdb\x86\0" /* offset 12932 */
+  "\xd9\x8a\xd9\x94\xdb\x88\0" /* offset 12939 */
+  "\xd9\x8a\xd9\x94\xdb\x90\0" /* offset 12946 */
+  "\xd9\x8a\xd9\x94\xd9\x89\0" /* offset 12953 */
+  "\xdb\x8c\0" /* offset 12960 */
+  "\xd9\x8a\xd9\x94\xd8\xac\0" /* offset 12963 */
+  "\xd9\x8a\xd9\x94\xd8\xad\0" /* offset 12970 */
+  "\xd9\x8a\xd9\x94\xd9\x85\0" /* offset 12977 */
+  "\xd9\x8a\xd9\x94\xd9\x8a\0" /* offset 12984 */
+  "\xd8\xa8\xd8\xac\0" /* offset 12991 */
+  "\xd8\xa8\xd8\xad\0" /* offset 12996 */
+  "\xd8\xa8\xd8\xae\0" /* offset 13001 */
+  "\xd8\xa8\xd9\x85\0" /* offset 13006 */
+  "\xd8\xa8\xd9\x89\0" /* offset 13011 */
+  "\xd8\xa8\xd9\x8a\0" /* offset 13016 */
+  "\xd8\xaa\xd8\xac\0" /* offset 13021 */
+  "\xd8\xaa\xd8\xad\0" /* offset 13026 */
+  "\xd8\xaa\xd8\xae\0" /* offset 13031 */
+  "\xd8\xaa\xd9\x85\0" /* offset 13036 */
+  "\xd8\xaa\xd9\x89\0" /* offset 13041 */
+  "\xd8\xaa\xd9\x8a\0" /* offset 13046 */
+  "\xd8\xab\xd8\xac\0" /* offset 13051 */
+  "\xd8\xab\xd9\x85\0" /* offset 13056 */
+  "\xd8\xab\xd9\x89\0" /* offset 13061 */
+  "\xd8\xab\xd9\x8a\0" /* offset 13066 */
+  "\xd8\xac\xd8\xad\0" /* offset 13071 */
+  "\xd8\xac\xd9\x85\0" /* offset 13076 */
+  "\xd8\xad\xd8\xac\0" /* offset 13081 */
+  "\xd8\xad\xd9\x85\0" /* offset 13086 */
+  "\xd8\xae\xd8\xac\0" /* offset 13091 */
+  "\xd8\xae\xd8\xad\0" /* offset 13096 */
+  "\xd8\xae\xd9\x85\0" /* offset 13101 */
+  "\xd8\xb3\xd8\xac\0" /* offset 13106 */
+  "\xd8\xb3\xd8\xad\0" /* offset 13111 */
+  "\xd8\xb3\xd8\xae\0" /* offset 13116 */
+  "\xd8\xb3\xd9\x85\0" /* offset 13121 */
+  "\xd8\xb5\xd8\xad\0" /* offset 13126 */
+  "\xd8\xb5\xd9\x85\0" /* offset 13131 */
+  "\xd8\xb6\xd8\xac\0" /* offset 13136 */
+  "\xd8\xb6\xd8\xad\0" /* offset 13141 */
+  "\xd8\xb6\xd8\xae\0" /* offset 13146 */
+  "\xd8\xb6\xd9\x85\0" /* offset 13151 */
+  "\xd8\xb7\xd8\xad\0" /* offset 13156 */
+  "\xd8\xb7\xd9\x85\0" /* offset 13161 */
+  "\xd8\xb8\xd9\x85\0" /* offset 13166 */
+  "\xd8\xb9\xd8\xac\0" /* offset 13171 */
+  "\xd8\xb9\xd9\x85\0" /* offset 13176 */
+  "\xd8\xba\xd8\xac\0" /* offset 13181 */
+  "\xd8\xba\xd9\x85\0" /* offset 13186 */
+  "\xd9\x81\xd8\xac\0" /* offset 13191 */
+  "\xd9\x81\xd8\xad\0" /* offset 13196 */
+  "\xd9\x81\xd8\xae\0" /* offset 13201 */
+  "\xd9\x81\xd9\x85\0" /* offset 13206 */
+  "\xd9\x81\xd9\x89\0" /* offset 13211 */
+  "\xd9\x81\xd9\x8a\0" /* offset 13216 */
+  "\xd9\x82\xd8\xad\0" /* offset 13221 */
+  "\xd9\x82\xd9\x85\0" /* offset 13226 */
+  "\xd9\x82\xd9\x89\0" /* offset 13231 */
+  "\xd9\x82\xd9\x8a\0" /* offset 13236 */
+  "\xd9\x83\xd8\xa7\0" /* offset 13241 */
+  "\xd9\x83\xd8\xac\0" /* offset 13246 */
+  "\xd9\x83\xd8\xad\0" /* offset 13251 */
+  "\xd9\x83\xd8\xae\0" /* offset 13256 */
+  "\xd9\x83\xd9\x84\0" /* offset 13261 */
+  "\xd9\x83\xd9\x85\0" /* offset 13266 */
+  "\xd9\x83\xd9\x89\0" /* offset 13271 */
+  "\xd9\x83\xd9\x8a\0" /* offset 13276 */
+  "\xd9\x84\xd8\xac\0" /* offset 13281 */
+  "\xd9\x84\xd8\xad\0" /* offset 13286 */
+  "\xd9\x84\xd8\xae\0" /* offset 13291 */
+  "\xd9\x84\xd9\x85\0" /* offset 13296 */
+  "\xd9\x84\xd9\x89\0" /* offset 13301 */
+  "\xd9\x84\xd9\x8a\0" /* offset 13306 */
+  "\xd9\x85\xd8\xac\0" /* offset 13311 */
+  "\xd9\x85\xd8\xad\0" /* offset 13316 */
+  "\xd9\x85\xd8\xae\0" /* offset 13321 */
+  "\xd9\x85\xd9\x85\0" /* offset 13326 */
+  "\xd9\x85\xd9\x89\0" /* offset 13331 */
+  "\xd9\x85\xd9\x8a\0" /* offset 13336 */
+  "\xd9\x86\xd8\xac\0" /* offset 13341 */
+  "\xd9\x86\xd8\xad\0" /* offset 13346 */
+  "\xd9\x86\xd8\xae\0" /* offset 13351 */
+  "\xd9\x86\xd9\x85\0" /* offset 13356 */
+  "\xd9\x86\xd9\x89\0" /* offset 13361 */
+  "\xd9\x86\xd9\x8a\0" /* offset 13366 */
+  "\xd9\x87\xd8\xac\0" /* offset 13371 */
+  "\xd9\x87\xd9\x85\0" /* offset 13376 */
+  "\xd9\x87\xd9\x89\0" /* offset 13381 */
+  "\xd9\x87\xd9\x8a\0" /* offset 13386 */
+  "\xd9\x8a\xd8\xac\0" /* offset 13391 */
+  "\xd9\x8a\xd8\xad\0" /* offset 13396 */
+  "\xd9\x8a\xd8\xae\0" /* offset 13401 */
+  "\xd9\x8a\xd9\x85\0" /* offset 13406 */
+  "\xd9\x8a\xd9\x89\0" /* offset 13411 */
+  "\xd9\x8a\xd9\x8a\0" /* offset 13416 */
+  "\xd8\xb0\xd9\xb0\0" /* offset 13421 */
+  "\xd8\xb1\xd9\xb0\0" /* offset 13426 */
+  "\xd9\x89\xd9\xb0\0" /* offset 13431 */
+  "\x20\xd9\x8c\xd9\x91\0" /* offset 13436 */
+  "\x20\xd9\x8d\xd9\x91\0" /* offset 13442 */
+  "\x20\xd9\x8e\xd9\x91\0" /* offset 13448 */
+  "\x20\xd9\x8f\xd9\x91\0" /* offset 13454 */
+  "\x20\xd9\x90\xd9\x91\0" /* offset 13460 */
+  "\x20\xd9\x91\xd9\xb0\0" /* offset 13466 */
+  "\xd9\x8a\xd9\x94\xd8\xb1\0" /* offset 13472 */
+  "\xd9\x8a\xd9\x94\xd8\xb2\0" /* offset 13479 */
+  "\xd9\x8a\xd9\x94\xd9\x86\0" /* offset 13486 */
+  "\xd8\xa8\xd8\xb1\0" /* offset 13493 */
+  "\xd8\xa8\xd8\xb2\0" /* offset 13498 */
+  "\xd8\xa8\xd9\x86\0" /* offset 13503 */
+  "\xd8\xaa\xd8\xb1\0" /* offset 13508 */
+  "\xd8\xaa\xd8\xb2\0" /* offset 13513 */
+  "\xd8\xaa\xd9\x86\0" /* offset 13518 */
+  "\xd8\xab\xd8\xb1\0" /* offset 13523 */
+  "\xd8\xab\xd8\xb2\0" /* offset 13528 */
+  "\xd8\xab\xd9\x86\0" /* offset 13533 */
+  "\xd9\x85\xd8\xa7\0" /* offset 13538 */
+  "\xd9\x86\xd8\xb1\0" /* offset 13543 */
+  "\xd9\x86\xd8\xb2\0" /* offset 13548 */
+  "\xd9\x86\xd9\x86\0" /* offset 13553 */
+  "\xd9\x8a\xd8\xb1\0" /* offset 13558 */
+  "\xd9\x8a\xd8\xb2\0" /* offset 13563 */
+  "\xd9\x8a\xd9\x86\0" /* offset 13568 */
+  "\xd9\x8a\xd9\x94\xd8\xae\0" /* offset 13573 */
+  "\xd9\x8a\xd9\x94\xd9\x87\0" /* offset 13580 */
+  "\xd8\xa8\xd9\x87\0" /* offset 13587 */
+  "\xd8\xaa\xd9\x87\0" /* offset 13592 */
+  "\xd8\xb5\xd8\xae\0" /* offset 13597 */
+  "\xd9\x84\xd9\x87\0" /* offset 13602 */
+  "\xd9\x86\xd9\x87\0" /* offset 13607 */
+  "\xd9\x87\xd9\xb0\0" /* offset 13612 */
+  "\xd9\x8a\xd9\x87\0" /* offset 13617 */
+  "\xd8\xab\xd9\x87\0" /* offset 13622 */
+  "\xd8\xb3\xd9\x87\0" /* offset 13627 */
+  "\xd8\xb4\xd9\x85\0" /* offset 13632 */
+  "\xd8\xb4\xd9\x87\0" /* offset 13637 */
+  "\xd9\x80\xd9\x8e\xd9\x91\0" /* offset 13642 */
+  "\xd9\x80\xd9\x8f\xd9\x91\0" /* offset 13649 */
+  "\xd9\x80\xd9\x90\xd9\x91\0" /* offset 13656 */
+  "\xd8\xb7\xd9\x89\0" /* offset 13663 */
+  "\xd8\xb7\xd9\x8a\0" /* offset 13668 */
+  "\xd8\xb9\xd9\x89\0" /* offset 13673 */
+  "\xd8\xb9\xd9\x8a\0" /* offset 13678 */
+  "\xd8\xba\xd9\x89\0" /* offset 13683 */
+  "\xd8\xba\xd9\x8a\0" /* offset 13688 */
+  "\xd8\xb3\xd9\x89\0" /* offset 13693 */
+  "\xd8\xb3\xd9\x8a\0" /* offset 13698 */
+  "\xd8\xb4\xd9\x89\0" /* offset 13703 */
+  "\xd8\xb4\xd9\x8a\0" /* offset 13708 */
+  "\xd8\xad\xd9\x89\0" /* offset 13713 */
+  "\xd8\xad\xd9\x8a\0" /* offset 13718 */
+  "\xd8\xac\xd9\x89\0" /* offset 13723 */
+  "\xd8\xac\xd9\x8a\0" /* offset 13728 */
+  "\xd8\xae\xd9\x89\0" /* offset 13733 */
+  "\xd8\xae\xd9\x8a\0" /* offset 13738 */
+  "\xd8\xb5\xd9\x89\0" /* offset 13743 */
+  "\xd8\xb5\xd9\x8a\0" /* offset 13748 */
+  "\xd8\xb6\xd9\x89\0" /* offset 13753 */
+  "\xd8\xb6\xd9\x8a\0" /* offset 13758 */
+  "\xd8\xb4\xd8\xac\0" /* offset 13763 */
+  "\xd8\xb4\xd8\xad\0" /* offset 13768 */
+  "\xd8\xb4\xd8\xae\0" /* offset 13773 */
+  "\xd8\xb4\xd8\xb1\0" /* offset 13778 */
+  "\xd8\xb3\xd8\xb1\0" /* offset 13783 */
+  "\xd8\xb5\xd8\xb1\0" /* offset 13788 */
+  "\xd8\xb6\xd8\xb1\0" /* offset 13793 */
+  "\xd8\xa7\xd9\x8b\0" /* offset 13798 */
+  "\xd8\xaa\xd8\xac\xd9\x85\0" /* offset 13803 */
+  "\xd8\xaa\xd8\xad\xd8\xac\0" /* offset 13810 */
+  "\xd8\xaa\xd8\xad\xd9\x85\0" /* offset 13817 */
+  "\xd8\xaa\xd8\xae\xd9\x85\0" /* offset 13824 */
+  "\xd8\xaa\xd9\x85\xd8\xac\0" /* offset 13831 */
+  "\xd8\xaa\xd9\x85\xd8\xad\0" /* offset 13838 */
+  "\xd8\xaa\xd9\x85\xd8\xae\0" /* offset 13845 */
+  "\xd8\xac\xd9\x85\xd8\xad\0" /* offset 13852 */
+  "\xd8\xad\xd9\x85\xd9\x8a\0" /* offset 13859 */
+  "\xd8\xad\xd9\x85\xd9\x89\0" /* offset 13866 */
+  "\xd8\xb3\xd8\xad\xd8\xac\0" /* offset 13873 */
+  "\xd8\xb3\xd8\xac\xd8\xad\0" /* offset 13880 */
+  "\xd8\xb3\xd8\xac\xd9\x89\0" /* offset 13887 */
+  "\xd8\xb3\xd9\x85\xd8\xad\0" /* offset 13894 */
+  "\xd8\xb3\xd9\x85\xd8\xac\0" /* offset 13901 */
+  "\xd8\xb3\xd9\x85\xd9\x85\0" /* offset 13908 */
+  "\xd8\xb5\xd8\xad\xd8\xad\0" /* offset 13915 */
+  "\xd8\xb5\xd9\x85\xd9\x85\0" /* offset 13922 */
+  "\xd8\xb4\xd8\xad\xd9\x85\0" /* offset 13929 */
+  "\xd8\xb4\xd8\xac\xd9\x8a\0" /* offset 13936 */
+  "\xd8\xb4\xd9\x85\xd8\xae\0" /* offset 13943 */
+  "\xd8\xb4\xd9\x85\xd9\x85\0" /* offset 13950 */
+  "\xd8\xb6\xd8\xad\xd9\x89\0" /* offset 13957 */
+  "\xd8\xb6\xd8\xae\xd9\x85\0" /* offset 13964 */
+  "\xd8\xb7\xd9\x85\xd8\xad\0" /* offset 13971 */
+  "\xd8\xb7\xd9\x85\xd9\x85\0" /* offset 13978 */
+  "\xd8\xb7\xd9\x85\xd9\x8a\0" /* offset 13985 */
+  "\xd8\xb9\xd8\xac\xd9\x85\0" /* offset 13992 */
+  "\xd8\xb9\xd9\x85\xd9\x85\0" /* offset 13999 */
+  "\xd8\xb9\xd9\x85\xd9\x89\0" /* offset 14006 */
+  "\xd8\xba\xd9\x85\xd9\x85\0" /* offset 14013 */
+  "\xd8\xba\xd9\x85\xd9\x8a\0" /* offset 14020 */
+  "\xd8\xba\xd9\x85\xd9\x89\0" /* offset 14027 */
+  "\xd9\x81\xd8\xae\xd9\x85\0" /* offset 14034 */
+  "\xd9\x82\xd9\x85\xd8\xad\0" /* offset 14041 */
+  "\xd9\x82\xd9\x85\xd9\x85\0" /* offset 14048 */
+  "\xd9\x84\xd8\xad\xd9\x85\0" /* offset 14055 */
+  "\xd9\x84\xd8\xad\xd9\x8a\0" /* offset 14062 */
+  "\xd9\x84\xd8\xad\xd9\x89\0" /* offset 14069 */
+  "\xd9\x84\xd8\xac\xd8\xac\0" /* offset 14076 */
+  "\xd9\x84\xd8\xae\xd9\x85\0" /* offset 14083 */
+  "\xd9\x84\xd9\x85\xd8\xad\0" /* offset 14090 */
+  "\xd9\x85\xd8\xad\xd8\xac\0" /* offset 14097 */
+  "\xd9\x85\xd8\xad\xd9\x85\0" /* offset 14104 */
+  "\xd9\x85\xd8\xad\xd9\x8a\0" /* offset 14111 */
+  "\xd9\x85\xd8\xac\xd8\xad\0" /* offset 14118 */
+  "\xd9\x85\xd8\xac\xd9\x85\0" /* offset 14125 */
+  "\xd9\x85\xd8\xae\xd8\xac\0" /* offset 14132 */
+  "\xd9\x85\xd8\xae\xd9\x85\0" /* offset 14139 */
+  "\xd9\x85\xd8\xac\xd8\xae\0" /* offset 14146 */
+  "\xd9\x87\xd9\x85\xd8\xac\0" /* offset 14153 */
+  "\xd9\x87\xd9\x85\xd9\x85\0" /* offset 14160 */
+  "\xd9\x86\xd8\xad\xd9\x85\0" /* offset 14167 */
+  "\xd9\x86\xd8\xad\xd9\x89\0" /* offset 14174 */
+  "\xd9\x86\xd8\xac\xd9\x85\0" /* offset 14181 */
+  "\xd9\x86\xd8\xac\xd9\x89\0" /* offset 14188 */
+  "\xd9\x86\xd9\x85\xd9\x8a\0" /* offset 14195 */
+  "\xd9\x86\xd9\x85\xd9\x89\0" /* offset 14202 */
+  "\xd9\x8a\xd9\x85\xd9\x85\0" /* offset 14209 */
+  "\xd8\xa8\xd8\xae\xd9\x8a\0" /* offset 14216 */
+  "\xd8\xaa\xd8\xac\xd9\x8a\0" /* offset 14223 */
+  "\xd8\xaa\xd8\xac\xd9\x89\0" /* offset 14230 */
+  "\xd8\xaa\xd8\xae\xd9\x8a\0" /* offset 14237 */
+  "\xd8\xaa\xd8\xae\xd9\x89\0" /* offset 14244 */
+  "\xd8\xaa\xd9\x85\xd9\x8a\0" /* offset 14251 */
+  "\xd8\xaa\xd9\x85\xd9\x89\0" /* offset 14258 */
+  "\xd8\xac\xd9\x85\xd9\x8a\0" /* offset 14265 */
+  "\xd8\xac\xd8\xad\xd9\x89\0" /* offset 14272 */
+  "\xd8\xac\xd9\x85\xd9\x89\0" /* offset 14279 */
+  "\xd8\xb3\xd8\xae\xd9\x89\0" /* offset 14286 */
+  "\xd8\xb5\xd8\xad\xd9\x8a\0" /* offset 14293 */
+  "\xd8\xb4\xd8\xad\xd9\x8a\0" /* offset 14300 */
+  "\xd8\xb6\xd8\xad\xd9\x8a\0" /* offset 14307 */
+  "\xd9\x84\xd8\xac\xd9\x8a\0" /* offset 14314 */
+  "\xd9\x84\xd9\x85\xd9\x8a\0" /* offset 14321 */
+  "\xd9\x8a\xd8\xad\xd9\x8a\0" /* offset 14328 */
+  "\xd9\x8a\xd8\xac\xd9\x8a\0" /* offset 14335 */
+  "\xd9\x8a\xd9\x85\xd9\x8a\0" /* offset 14342 */
+  "\xd9\x85\xd9\x85\xd9\x8a\0" /* offset 14349 */
+  "\xd9\x82\xd9\x85\xd9\x8a\0" /* offset 14356 */
+  "\xd9\x86\xd8\xad\xd9\x8a\0" /* offset 14363 */
+  "\xd8\xb9\xd9\x85\xd9\x8a\0" /* offset 14370 */
+  "\xd9\x83\xd9\x85\xd9\x8a\0" /* offset 14377 */
+  "\xd9\x86\xd8\xac\xd8\xad\0" /* offset 14384 */
+  "\xd9\x85\xd8\xae\xd9\x8a\0" /* offset 14391 */
+  "\xd9\x84\xd8\xac\xd9\x85\0" /* offset 14398 */
+  "\xd9\x83\xd9\x85\xd9\x85\0" /* offset 14405 */
+  "\xd8\xac\xd8\xad\xd9\x8a\0" /* offset 14412 */
+  "\xd8\xad\xd8\xac\xd9\x8a\0" /* offset 14419 */
+  "\xd9\x85\xd8\xac\xd9\x8a\0" /* offset 14426 */
+  "\xd9\x81\xd9\x85\xd9\x8a\0" /* offset 14433 */
+  "\xd8\xa8\xd8\xad\xd9\x8a\0" /* offset 14440 */
+  "\xd8\xb3\xd8\xae\xd9\x8a\0" /* offset 14447 */
+  "\xd9\x86\xd8\xac\xd9\x8a\0" /* offset 14454 */
+  "\xd8\xb5\xd9\x84\xdb\x92\0" /* offset 14461 */
+  "\xd9\x82\xd9\x84\xdb\x92\0" /* offset 14468 */
+  "\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\0" /* offset 14475 */
+  "\xd8\xa7\xd9\x83\xd8\xa8\xd8\xb1\0" /* offset 14484 */
+  "\xd9\x85\xd8\xad\xd9\x85\xd8\xaf\0" /* offset 14493 */
+  "\xd8\xb5\xd9\x84\xd8\xb9\xd9\x85\0" /* offset 14502 */
+  "\xd8\xb1\xd8\xb3\xd9\x88\xd9\x84\0" /* offset 14511 */
+  "\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\0" /* offset 14520 */
+  "\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 14529 */
+  "\xd8\xb5\xd9\x84\xd9\x89\0" /* offset 14538 */
+  "\xd8\xb5\xd9\x84\xd9\x89\x20\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\x20\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\x20\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 14545 */
+  "\xd8\xac\xd9\x84\x20\xd8\xac\xd9\x84\xd8\xa7\xd9\x84\xd9\x87\0" /* offset 14579 */
+  "\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84\0" /* offset 14595 */
+  "\x2c\0" /* offset 14604 */
+  "\xe3\x80\x81\0" /* offset 14606 */
+  "\xe3\x80\x82\0" /* offset 14610 */
+  "\x3a\0" /* offset 14614 */
+  "\x21\0" /* offset 14616 */
+  "\x3f\0" /* offset 14618 */
+  "\xe3\x80\x96\0" /* offset 14620 */
+  "\xe3\x80\x97\0" /* offset 14624 */
+  "\xe2\x80\x94\0" /* offset 14628 */
+  "\xe2\x80\x93\0" /* offset 14632 */
+  "\x5f\0" /* offset 14636 */
+  "\x7b\0" /* offset 14638 */
+  "\x7d\0" /* offset 14640 */
+  "\xe3\x80\x94\0" /* offset 14642 */
+  "\xe3\x80\x95\0" /* offset 14646 */
+  "\xe3\x80\x90\0" /* offset 14650 */
+  "\xe3\x80\x91\0" /* offset 14654 */
+  "\xe3\x80\x8a\0" /* offset 14658 */
+  "\xe3\x80\x8b\0" /* offset 14662 */
+  "\xe3\x80\x8c\0" /* offset 14666 */
+  "\xe3\x80\x8d\0" /* offset 14670 */
+  "\xe3\x80\x8e\0" /* offset 14674 */
+  "\xe3\x80\x8f\0" /* offset 14678 */
+  "\x5b\0" /* offset 14682 */
+  "\x5d\0" /* offset 14684 */
+  "\x23\0" /* offset 14686 */
+  "\x26\0" /* offset 14688 */
+  "\x2a\0" /* offset 14690 */
+  "\x2d\0" /* offset 14692 */
+  "\x3c\0" /* offset 14694 */
+  "\x3e\0" /* offset 14696 */
+  "\x5c\0" /* offset 14698 */
+  "\x24\0" /* offset 14700 */
+  "\x25\0" /* offset 14702 */
+  "\x40\0" /* offset 14704 */
+  "\x20\xd9\x8b\0" /* offset 14706 */
+  "\xd9\x80\xd9\x8b\0" /* offset 14710 */
+  "\x20\xd9\x8c\0" /* offset 14715 */
+  "\x20\xd9\x8d\0" /* offset 14719 */
+  "\x20\xd9\x8e\0" /* offset 14723 */
+  "\xd9\x80\xd9\x8e\0" /* offset 14727 */
+  "\x20\xd9\x8f\0" /* offset 14732 */
+  "\xd9\x80\xd9\x8f\0" /* offset 14736 */
+  "\x20\xd9\x90\0" /* offset 14741 */
+  "\xd9\x80\xd9\x90\0" /* offset 14745 */
+  "\x20\xd9\x91\0" /* offset 14750 */
+  "\xd9\x80\xd9\x91\0" /* offset 14754 */
+  "\x20\xd9\x92\0" /* offset 14759 */
+  "\xd9\x80\xd9\x92\0" /* offset 14763 */
+  "\xd8\xa1\0" /* offset 14768 */
+  "\xd8\xa7\0" /* offset 14771 */
+  "\xd8\xa8\0" /* offset 14774 */
+  "\xd8\xa9\0" /* offset 14777 */
+  "\xd8\xaa\0" /* offset 14780 */
+  "\xd8\xab\0" /* offset 14783 */
+  "\xd8\xac\0" /* offset 14786 */
+  "\xd8\xad\0" /* offset 14789 */
+  "\xd8\xae\0" /* offset 14792 */
+  "\xd8\xaf\0" /* offset 14795 */
+  "\xd8\xb0\0" /* offset 14798 */
+  "\xd8\xb1\0" /* offset 14801 */
+  "\xd8\xb2\0" /* offset 14804 */
+  "\xd8\xb3\0" /* offset 14807 */
+  "\xd8\xb4\0" /* offset 14810 */
+  "\xd8\xb5\0" /* offset 14813 */
+  "\xd8\xb6\0" /* offset 14816 */
+  "\xd8\xb7\0" /* offset 14819 */
+  "\xd8\xb8\0" /* offset 14822 */
+  "\xd8\xb9\0" /* offset 14825 */
+  "\xd8\xba\0" /* offset 14828 */
+  "\xd9\x81\0" /* offset 14831 */
+  "\xd9\x82\0" /* offset 14834 */
+  "\xd9\x83\0" /* offset 14837 */
+  "\xd9\x84\0" /* offset 14840 */
+  "\xd9\x85\0" /* offset 14843 */
+  "\xd9\x86\0" /* offset 14846 */
+  "\xd9\x87\0" /* offset 14849 */
+  "\xd9\x88\0" /* offset 14852 */
+  "\xd9\x8a\0" /* offset 14855 */
+  "\xd9\x84\xd8\xa7\xd9\x93\0" /* offset 14858 */
+  "\xd9\x84\xd8\xa7\xd9\x94\0" /* offset 14865 */
+  "\xd9\x84\xd8\xa7\xd9\x95\0" /* offset 14872 */
+  "\xd9\x84\xd8\xa7\0" /* offset 14879 */
+  "\x22\0" /* offset 14884 */
+  "\x27\0" /* offset 14886 */
+  "\x2f\0" /* offset 14888 */
+  "\x5e\0" /* offset 14890 */
+  "\x7c\0" /* offset 14892 */
+  "\x7e\0" /* offset 14894 */
+  "\xe2\xa6\x85\0" /* offset 14896 */
+  "\xe2\xa6\x86\0" /* offset 14900 */
+  "\xe3\x83\xbb\0" /* offset 14904 */
+  "\xe3\x82\xa1\0" /* offset 14908 */
+  "\xe3\x82\xa3\0" /* offset 14912 */
+  "\xe3\x82\xa5\0" /* offset 14916 */
+  "\xe3\x82\xa7\0" /* offset 14920 */
+  "\xe3\x82\xa9\0" /* offset 14924 */
+  "\xe3\x83\xa3\0" /* offset 14928 */
+  "\xe3\x83\xa5\0" /* offset 14932 */
+  "\xe3\x83\xa7\0" /* offset 14936 */
+  "\xe3\x83\x83\0" /* offset 14940 */
+  "\xe3\x83\xbc\0" /* offset 14944 */
+  "\xe3\x83\xb3\0" /* offset 14948 */
+  "\xe3\x82\x99\0" /* offset 14952 */
+  "\xe3\x82\x9a\0" /* offset 14956 */
+  "\xc2\xa2\0" /* offset 14960 */
+  "\xc2\xa3\0" /* offset 14963 */
+  "\xc2\xac\0" /* offset 14966 */
+  "\xc2\xa6\0" /* offset 14969 */
+  "\xc2\xa5\0" /* offset 14972 */
+  "\xe2\x82\xa9\0" /* offset 14975 */
+  "\xe2\x94\x82\0" /* offset 14979 */
+  "\xe2\x86\x90\0" /* offset 14983 */
+  "\xe2\x86\x91\0" /* offset 14987 */
+  "\xe2\x86\x92\0" /* offset 14991 */
+  "\xe2\x86\x93\0" /* offset 14995 */
+  "\xe2\x96\xa0\0" /* offset 14999 */
+  "\xe2\x97\x8b\0" /* offset 15003 */
+  "\xf0\x91\x82\x99\xf0\x91\x82\xba\0" /* offset 15007 */
+  "\xf0\x91\x82\x9b\xf0\x91\x82\xba\0" /* offset 15016 */
+  "\xf0\x91\x82\xa5\xf0\x91\x82\xba\0" /* offset 15025 */
+  "\xf0\x91\x84\xb1\xf0\x91\x84\xa7\0" /* offset 15034 */
+  "\xf0\x91\x84\xb2\xf0\x91\x84\xa7\0" /* offset 15043 */
+  "\xf0\x91\x8d\x87\xf0\x91\x8c\xbe\0" /* offset 15052 */
+  "\xf0\x91\x8d\x87\xf0\x91\x8d\x97\0" /* offset 15061 */
+  "\xf0\x91\x92\xb9\xf0\x91\x92\xba\0" /* offset 15070 */
+  "\xf0\x91\x92\xb9\xf0\x91\x92\xb0\0" /* offset 15079 */
+  "\xf0\x91\x92\xb9\xf0\x91\x92\xbd\0" /* offset 15088 */
+  "\xf0\x91\x96\xb8\xf0\x91\x96\xaf\0" /* offset 15097 */
+  "\xf0\x91\x96\xb9\xf0\x91\x96\xaf\0" /* offset 15106 */
+  "\xf0\x91\xa4\xb5\xf0\x91\xa4\xb0\0" /* offset 15115 */
+  "\xf0\x9d\x85\x97\xf0\x9d\x85\xa5\0" /* offset 15124 */
+  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\0" /* offset 15133 */
+  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 15142 */
+  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 15155 */
+  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb0\0" /* offset 15168 */
+  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb1\0" /* offset 15181 */
+  "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb2\0" /* offset 15194 */
+  "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\0" /* offset 15207 */
+  "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\0" /* offset 15216 */
+  "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 15225 */
+  "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 15238 */
+  "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 15251 */
+  "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 15264 */
+  "\xc4\xb1\0" /* offset 15277 */
+  "\xc8\xb7\0" /* offset 15280 */
+  "\xce\x91\0" /* offset 15283 */
+  "\xce\x92\0" /* offset 15286 */
+  "\xce\x94\0" /* offset 15289 */
+  "\xce\x95\0" /* offset 15292 */
+  "\xce\x96\0" /* offset 15295 */
+  "\xce\x97\0" /* offset 15298 */
+  "\xce\x99\0" /* offset 15301 */
+  "\xce\x9a\0" /* offset 15304 */
+  "\xce\x9b\0" /* offset 15307 */
+  "\xce\x9c\0" /* offset 15310 */
+  "\xce\x9d\0" /* offset 15313 */
+  "\xce\x9e\0" /* offset 15316 */
+  "\xce\x9f\0" /* offset 15319 */
+  "\xce\xa1\0" /* offset 15322 */
+  "\xce\xa4\0" /* offset 15325 */
+  "\xce\xa6\0" /* offset 15328 */
+  "\xce\xa7\0" /* offset 15331 */
+  "\xce\xa8\0" /* offset 15334 */
+  "\xe2\x88\x87\0" /* offset 15337 */
+  "\xce\xb1\0" /* offset 15341 */
+  "\xce\xb6\0" /* offset 15344 */
+  "\xce\xb7\0" /* offset 15347 */
+  "\xce\xbb\0" /* offset 15350 */
+  "\xce\xbd\0" /* offset 15353 */
+  "\xce\xbe\0" /* offset 15356 */
+  "\xce\xbf\0" /* offset 15359 */
+  "\xcf\x83\0" /* offset 15362 */
+  "\xcf\x84\0" /* offset 15365 */
+  "\xcf\x85\0" /* offset 15368 */
+  "\xcf\x88\0" /* offset 15371 */
+  "\xcf\x89\0" /* offset 15374 */
+  "\xe2\x88\x82\0" /* offset 15377 */
+  "\xcf\x9c\0" /* offset 15381 */
+  "\xcf\x9d\0" /* offset 15384 */
+  "\xd9\xae\0" /* offset 15387 */
+  "\xda\xa1\0" /* offset 15390 */
+  "\xd9\xaf\0" /* offset 15393 */
+  "\x30\x2e\0" /* offset 15396 */
+  "\x30\x2c\0" /* offset 15399 */
+  "\x31\x2c\0" /* offset 15402 */
+  "\x32\x2c\0" /* offset 15405 */
+  "\x33\x2c\0" /* offset 15408 */
+  "\x34\x2c\0" /* offset 15411 */
+  "\x35\x2c\0" /* offset 15414 */
+  "\x36\x2c\0" /* offset 15417 */
+  "\x37\x2c\0" /* offset 15420 */
+  "\x38\x2c\0" /* offset 15423 */
+  "\x39\x2c\0" /* offset 15426 */
+  "\x28\x41\x29\0" /* offset 15429 */
+  "\x28\x42\x29\0" /* offset 15433 */
+  "\x28\x43\x29\0" /* offset 15437 */
+  "\x28\x44\x29\0" /* offset 15441 */
+  "\x28\x45\x29\0" /* offset 15445 */
+  "\x28\x46\x29\0" /* offset 15449 */
+  "\x28\x47\x29\0" /* offset 15453 */
+  "\x28\x48\x29\0" /* offset 15457 */
+  "\x28\x49\x29\0" /* offset 15461 */
+  "\x28\x4a\x29\0" /* offset 15465 */
+  "\x28\x4b\x29\0" /* offset 15469 */
+  "\x28\x4c\x29\0" /* offset 15473 */
+  "\x28\x4d\x29\0" /* offset 15477 */
+  "\x28\x4e\x29\0" /* offset 15481 */
+  "\x28\x4f\x29\0" /* offset 15485 */
+  "\x28\x50\x29\0" /* offset 15489 */
+  "\x28\x51\x29\0" /* offset 15493 */
+  "\x28\x52\x29\0" /* offset 15497 */
+  "\x28\x53\x29\0" /* offset 15501 */
+  "\x28\x54\x29\0" /* offset 15505 */
+  "\x28\x55\x29\0" /* offset 15509 */
+  "\x28\x56\x29\0" /* offset 15513 */
+  "\x28\x57\x29\0" /* offset 15517 */
+  "\x28\x58\x29\0" /* offset 15521 */
+  "\x28\x59\x29\0" /* offset 15525 */
+  "\x28\x5a\x29\0" /* offset 15529 */
+  "\xe3\x80\x94\x53\xe3\x80\x95\0" /* offset 15533 */
+  "\x43\x44\0" /* offset 15541 */
+  "\x57\x5a\0" /* offset 15544 */
+  "\x48\x56\0" /* offset 15547 */
+  "\x53\x44\0" /* offset 15550 */
+  "\x53\x53\0" /* offset 15553 */
+  "\x50\x50\x56\0" /* offset 15556 */
+  "\x57\x43\0" /* offset 15560 */
+  "\x4d\x43\0" /* offset 15563 */
+  "\x4d\x44\0" /* offset 15566 */
+  "\x4d\x52\0" /* offset 15569 */
+  "\x44\x4a\0" /* offset 15572 */
+  "\xe3\x81\xbb\xe3\x81\x8b\0" /* offset 15575 */
+  "\xe3\x82\xb3\xe3\x82\xb3\0" /* offset 15582 */
+  "\xe5\xad\x97\0" /* offset 15589 */
+  "\xe5\x8f\x8c\0" /* offset 15593 */
+  "\xe5\xa4\x9a\0" /* offset 15597 */
+  "\xe8\xa7\xa3\0" /* offset 15601 */
+  "\xe4\xba\xa4\0" /* offset 15605 */
+  "\xe6\x98\xa0\0" /* offset 15609 */
+  "\xe7\x84\xa1\0" /* offset 15613 */
+  "\xe5\x89\x8d\0" /* offset 15617 */
+  "\xe5\xbe\x8c\0" /* offset 15621 */
+  "\xe5\x86\x8d\0" /* offset 15625 */
+  "\xe6\x96\xb0\0" /* offset 15629 */
+  "\xe5\x88\x9d\0" /* offset 15633 */
+  "\xe7\xb5\x82\0" /* offset 15637 */
+  "\xe8\xb2\xa9\0" /* offset 15641 */
+  "\xe5\xa3\xb0\0" /* offset 15645 */
+  "\xe5\x90\xb9\0" /* offset 15649 */
+  "\xe6\xbc\x94\0" /* offset 15653 */
+  "\xe6\x8a\x95\0" /* offset 15657 */
+  "\xe6\x8d\x95\0" /* offset 15661 */
+  "\xe9\x81\x8a\0" /* offset 15665 */
+  "\xe6\x8c\x87\0" /* offset 15669 */
+  "\xe6\x89\x93\0" /* offset 15673 */
+  "\xe7\xa6\x81\0" /* offset 15677 */
+  "\xe7\xa9\xba\0" /* offset 15681 */
+  "\xe5\x90\x88\0" /* offset 15685 */
+  "\xe6\xba\x80\0" /* offset 15689 */
+  "\xe7\x94\xb3\0" /* offset 15693 */
+  "\xe5\x89\xb2\0" /* offset 15697 */
+  "\xe5\x96\xb6\0" /* offset 15701 */
+  "\xe9\x85\x8d\0" /* offset 15705 */
+  "\xe3\x80\x94\xe6\x9c\xac\xe3\x80\x95\0" /* offset 15709 */
+  "\xe3\x80\x94\xe4\xb8\x89\xe3\x80\x95\0" /* offset 15719 */
+  "\xe3\x80\x94\xe4\xba\x8c\xe3\x80\x95\0" /* offset 15729 */
+  "\xe3\x80\x94\xe5\xae\x89\xe3\x80\x95\0" /* offset 15739 */
+  "\xe3\x80\x94\xe7\x82\xb9\xe3\x80\x95\0" /* offset 15749 */
+  "\xe3\x80\x94\xe6\x89\x93\xe3\x80\x95\0" /* offset 15759 */
+  "\xe3\x80\x94\xe7\x9b\x97\xe3\x80\x95\0" /* offset 15769 */
+  "\xe3\x80\x94\xe5\x8b\x9d\xe3\x80\x95\0" /* offset 15779 */
+  "\xe3\x80\x94\xe6\x95\x97\xe3\x80\x95\0" /* offset 15789 */
+  "\xe5\xbe\x97\0" /* offset 15799 */
+  "\xe5\x8f\xaf\0" /* offset 15803 */
+  "\xe4\xb8\xbd\0" /* offset 15807 */
+  "\xe4\xb8\xb8\0" /* offset 15811 */
+  "\xe4\xb9\x81\0" /* offset 15815 */
+  "\xf0\xa0\x84\xa2\0" /* offset 15819 */
+  "\xe4\xbd\xa0\0" /* offset 15824 */
+  "\xe4\xbe\xbb\0" /* offset 15828 */
+  "\xe5\x80\x82\0" /* offset 15832 */
+  "\xe5\x81\xba\0" /* offset 15836 */
+  "\xe5\x82\x99\0" /* offset 15840 */
+  "\xe5\x83\x8f\0" /* offset 15844 */
+  "\xe3\x92\x9e\0" /* offset 15848 */
+  "\xf0\xa0\x98\xba\0" /* offset 15852 */
+  "\xe5\x85\x94\0" /* offset 15857 */
+  "\xe5\x85\xa4\0" /* offset 15861 */
+  "\xe5\x85\xb7\0" /* offset 15865 */
+  "\xf0\xa0\x94\x9c\0" /* offset 15869 */
+  "\xe3\x92\xb9\0" /* offset 15874 */
+  "\xe5\x85\xa7\0" /* offset 15878 */
+  "\xf0\xa0\x95\x8b\0" /* offset 15882 */
+  "\xe5\x86\x97\0" /* offset 15887 */
+  "\xe5\x86\xa4\0" /* offset 15891 */
+  "\xe4\xbb\x8c\0" /* offset 15895 */
+  "\xe5\x86\xac\0" /* offset 15899 */
+  "\xf0\xa9\x87\x9f\0" /* offset 15903 */
+  "\xe5\x88\x83\0" /* offset 15908 */
+  "\xe3\x93\x9f\0" /* offset 15912 */
+  "\xe5\x88\xbb\0" /* offset 15916 */
+  "\xe5\x89\x86\0" /* offset 15920 */
+  "\xe5\x89\xb7\0" /* offset 15924 */
+  "\xe3\x94\x95\0" /* offset 15928 */
+  "\xe5\x8c\x85\0" /* offset 15932 */
+  "\xe5\x8c\x86\0" /* offset 15936 */
+  "\xe5\x8d\x89\0" /* offset 15940 */
+  "\xe5\x8d\x9a\0" /* offset 15944 */
+  "\xe5\x8d\xb3\0" /* offset 15948 */
+  "\xe5\x8d\xbd\0" /* offset 15952 */
+  "\xe5\x8d\xbf\0" /* offset 15956 */
+  "\xf0\xa0\xa8\xac\0" /* offset 15960 */
+  "\xe7\x81\xb0\0" /* offset 15965 */
+  "\xe5\x8f\x8a\0" /* offset 15969 */
+  "\xe5\x8f\x9f\0" /* offset 15973 */
+  "\xf0\xa0\xad\xa3\0" /* offset 15977 */
+  "\xe5\x8f\xab\0" /* offset 15982 */
+  "\xe5\x8f\xb1\0" /* offset 15986 */
+  "\xe5\x90\x86\0" /* offset 15990 */
+  "\xe5\x92\x9e\0" /* offset 15994 */
+  "\xe5\x90\xb8\0" /* offset 15998 */
+  "\xe5\x91\x88\0" /* offset 16002 */
+  "\xe5\x91\xa8\0" /* offset 16006 */
+  "\xe5\x92\xa2\0" /* offset 16010 */
+  "\xe5\x93\xb6\0" /* offset 16014 */
+  "\xe5\x94\x90\0" /* offset 16018 */
+  "\xe5\x95\x93\0" /* offset 16022 */
+  "\xe5\x95\xa3\0" /* offset 16026 */
+  "\xe5\x96\x84\0" /* offset 16030 */
+  "\xe5\x96\xab\0" /* offset 16034 */
+  "\xe5\x96\xb3\0" /* offset 16038 */
+  "\xe5\x97\x82\0" /* offset 16042 */
+  "\xe5\x9c\x96\0" /* offset 16046 */
+  "\xe5\x9c\x97\0" /* offset 16050 */
+  "\xe5\x99\x91\0" /* offset 16054 */
+  "\xe5\x99\xb4\0" /* offset 16058 */
+  "\xe5\xa3\xae\0" /* offset 16062 */
+  "\xe5\x9f\x8e\0" /* offset 16066 */
+  "\xe5\x9f\xb4\0" /* offset 16070 */
+  "\xe5\xa0\x8d\0" /* offset 16074 */
+  "\xe5\x9e\x8b\0" /* offset 16078 */
+  "\xe5\xa0\xb2\0" /* offset 16082 */
+  "\xe5\xa0\xb1\0" /* offset 16086 */
+  "\xe5\xa2\xac\0" /* offset 16090 */
+  "\xf0\xa1\x93\xa4\0" /* offset 16094 */
+  "\xe5\xa3\xb2\0" /* offset 16099 */
+  "\xe5\xa3\xb7\0" /* offset 16103 */
+  "\xe5\xa4\x86\0" /* offset 16107 */
+  "\xe5\xa4\xa2\0" /* offset 16111 */
+  "\xe5\xa5\xa2\0" /* offset 16115 */
+  "\xf0\xa1\x9a\xa8\0" /* offset 16119 */
+  "\xf0\xa1\x9b\xaa\0" /* offset 16124 */
+  "\xe5\xa7\xac\0" /* offset 16129 */
+  "\xe5\xa8\x9b\0" /* offset 16133 */
+  "\xe5\xa8\xa7\0" /* offset 16137 */
+  "\xe5\xa7\x98\0" /* offset 16141 */
+  "\xe5\xa9\xa6\0" /* offset 16145 */
+  "\xe3\x9b\xae\0" /* offset 16149 */
+  "\xe3\x9b\xbc\0" /* offset 16153 */
+  "\xe5\xac\x88\0" /* offset 16157 */
+  "\xe5\xac\xbe\0" /* offset 16161 */
+  "\xf0\xa1\xa7\x88\0" /* offset 16165 */
+  "\xe5\xaf\x83\0" /* offset 16170 */
+  "\xe5\xaf\x98\0" /* offset 16174 */
+  "\xe5\xaf\xb3\0" /* offset 16178 */
+  "\xf0\xa1\xac\x98\0" /* offset 16182 */
+  "\xe5\xaf\xbf\0" /* offset 16187 */
+  "\xe5\xb0\x86\0" /* offset 16191 */
+  "\xe5\xbd\x93\0" /* offset 16195 */
+  "\xe3\x9e\x81\0" /* offset 16199 */
+  "\xe5\xb1\xa0\0" /* offset 16203 */
+  "\xe5\xb3\x80\0" /* offset 16207 */
+  "\xe5\xb2\x8d\0" /* offset 16211 */
+  "\xf0\xa1\xb7\xa4\0" /* offset 16215 */
+  "\xe5\xb5\x83\0" /* offset 16220 */
+  "\xf0\xa1\xb7\xa6\0" /* offset 16224 */
+  "\xe5\xb5\xae\0" /* offset 16229 */
+  "\xe5\xb5\xab\0" /* offset 16233 */
+  "\xe5\xb5\xbc\0" /* offset 16237 */
+  "\xe5\xb7\xa1\0" /* offset 16241 */
+  "\xe5\xb7\xa2\0" /* offset 16245 */
+  "\xe3\xa0\xaf\0" /* offset 16249 */
+  "\xe5\xb7\xbd\0" /* offset 16253 */
+  "\xe5\xb8\xa8\0" /* offset 16257 */
+  "\xe5\xb8\xbd\0" /* offset 16261 */
+  "\xe5\xb9\xa9\0" /* offset 16265 */
+  "\xe3\xa1\xa2\0" /* offset 16269 */
+  "\xf0\xa2\x86\x83\0" /* offset 16273 */
+  "\xe3\xa1\xbc\0" /* offset 16278 */
+  "\xe5\xba\xb0\0" /* offset 16282 */
+  "\xe5\xba\xb3\0" /* offset 16286 */
+  "\xe5\xba\xb6\0" /* offset 16290 */
+  "\xf0\xaa\x8e\x92\0" /* offset 16294 */
+  "\xf0\xa2\x8c\xb1\0" /* offset 16299 */
+  "\xe8\x88\x81\0" /* offset 16304 */
+  "\xe5\xbc\xa2\0" /* offset 16308 */
+  "\xe3\xa3\x87\0" /* offset 16312 */
+  "\xf0\xa3\x8a\xb8\0" /* offset 16316 */
+  "\xf0\xa6\x87\x9a\0" /* offset 16321 */
+  "\xe5\xbd\xa2\0" /* offset 16326 */
+  "\xe5\xbd\xab\0" /* offset 16330 */
+  "\xe3\xa3\xa3\0" /* offset 16334 */
+  "\xe5\xbe\x9a\0" /* offset 16338 */
+  "\xe5\xbf\x8d\0" /* offset 16342 */
+  "\xe5\xbf\x97\0" /* offset 16346 */
+  "\xe5\xbf\xb9\0" /* offset 16350 */
+  "\xe6\x82\x81\0" /* offset 16354 */
+  "\xe3\xa4\xba\0" /* offset 16358 */
+  "\xe3\xa4\x9c\0" /* offset 16362 */
+  "\xf0\xa2\x9b\x94\0" /* offset 16366 */
+  "\xe6\x83\x87\0" /* offset 16371 */
+  "\xe6\x85\x88\0" /* offset 16375 */
+  "\xe6\x85\x8c\0" /* offset 16379 */
+  "\xe6\x85\xba\0" /* offset 16383 */
+  "\xe6\x86\xb2\0" /* offset 16387 */
+  "\xe6\x86\xa4\0" /* offset 16391 */
+  "\xe6\x86\xaf\0" /* offset 16395 */
+  "\xe6\x87\x9e\0" /* offset 16399 */
+  "\xe6\x88\x90\0" /* offset 16403 */
+  "\xe6\x88\x9b\0" /* offset 16407 */
+  "\xe6\x89\x9d\0" /* offset 16411 */
+  "\xe6\x8a\xb1\0" /* offset 16415 */
+  "\xe6\x8b\x94\0" /* offset 16419 */
+  "\xe6\x8d\x90\0" /* offset 16423 */
+  "\xf0\xa2\xac\x8c\0" /* offset 16427 */
+  "\xe6\x8c\xbd\0" /* offset 16432 */
+  "\xe6\x8b\xbc\0" /* offset 16436 */
+  "\xe6\x8d\xa8\0" /* offset 16440 */
+  "\xe6\x8e\x83\0" /* offset 16444 */
+  "\xe6\x8f\xa4\0" /* offset 16448 */
+  "\xf0\xa2\xaf\xb1\0" /* offset 16452 */
+  "\xe6\x90\xa2\0" /* offset 16457 */
+  "\xe6\x8f\x85\0" /* offset 16461 */
+  "\xe6\x8e\xa9\0" /* offset 16465 */
+  "\xe3\xa8\xae\0" /* offset 16469 */
+  "\xe6\x91\xa9\0" /* offset 16473 */
+  "\xe6\x91\xbe\0" /* offset 16477 */
+  "\xe6\x92\x9d\0" /* offset 16481 */
+  "\xe6\x91\xb7\0" /* offset 16485 */
+  "\xe3\xa9\xac\0" /* offset 16489 */
+  "\xe6\x95\xac\0" /* offset 16493 */
+  "\xf0\xa3\x80\x8a\0" /* offset 16497 */
+  "\xe6\x97\xa3\0" /* offset 16502 */
+  "\xe6\x9b\xb8\0" /* offset 16506 */
+  "\xe6\x99\x89\0" /* offset 16510 */
+  "\xe3\xac\x99\0" /* offset 16514 */
+  "\xe3\xac\x88\0" /* offset 16518 */
+  "\xe3\xab\xa4\0" /* offset 16522 */
+  "\xe5\x86\x92\0" /* offset 16526 */
+  "\xe5\x86\x95\0" /* offset 16530 */
+  "\xe6\x9c\x80\0" /* offset 16534 */
+  "\xe6\x9a\x9c\0" /* offset 16538 */
+  "\xe8\x82\xad\0" /* offset 16542 */
+  "\xe4\x8f\x99\0" /* offset 16546 */
+  "\xe6\x9c\xa1\0" /* offset 16550 */
+  "\xe6\x9d\x9e\0" /* offset 16554 */
+  "\xe6\x9d\x93\0" /* offset 16558 */
+  "\xf0\xa3\x8f\x83\0" /* offset 16562 */
+  "\xe3\xad\x89\0" /* offset 16567 */
+  "\xe6\x9f\xba\0" /* offset 16571 */
+  "\xe6\x9e\x85\0" /* offset 16575 */
+  "\xe6\xa1\x92\0" /* offset 16579 */
+  "\xf0\xa3\x91\xad\0" /* offset 16583 */
+  "\xe6\xa2\x8e\0" /* offset 16588 */
+  "\xe6\xa0\x9f\0" /* offset 16592 */
+  "\xe6\xa4\x94\0" /* offset 16596 */
+  "\xe6\xa5\x82\0" /* offset 16600 */
+  "\xe6\xa6\xa3\0" /* offset 16604 */
+  "\xe6\xa7\xaa\0" /* offset 16608 */
+  "\xe6\xaa\xa8\0" /* offset 16612 */
+  "\xf0\xa3\x9a\xa3\0" /* offset 16616 */
+  "\xe6\xab\x9b\0" /* offset 16621 */
+  "\xe3\xb0\x98\0" /* offset 16625 */
+  "\xe6\xac\xa1\0" /* offset 16629 */
+  "\xf0\xa3\xa2\xa7\0" /* offset 16633 */
+  "\xe6\xad\x94\0" /* offset 16638 */
+  "\xe3\xb1\x8e\0" /* offset 16642 */
+  "\xe6\xad\xb2\0" /* offset 16646 */
+  "\xe6\xae\x9f\0" /* offset 16650 */
+  "\xe6\xae\xbb\0" /* offset 16654 */
+  "\xf0\xa3\xaa\x8d\0" /* offset 16658 */
+  "\xf0\xa1\xb4\x8b\0" /* offset 16663 */
+  "\xf0\xa3\xab\xba\0" /* offset 16668 */
+  "\xe6\xb1\x8e\0" /* offset 16673 */
+  "\xf0\xa3\xb2\xbc\0" /* offset 16677 */
+  "\xe6\xb2\xbf\0" /* offset 16682 */
+  "\xe6\xb3\x8d\0" /* offset 16686 */
+  "\xe6\xb1\xa7\0" /* offset 16690 */
+  "\xe6\xb4\x96\0" /* offset 16694 */
+  "\xe6\xb4\xbe\0" /* offset 16698 */
+  "\xe6\xb5\xa9\0" /* offset 16702 */
+  "\xe6\xb5\xb8\0" /* offset 16706 */
+  "\xe6\xb6\x85\0" /* offset 16710 */
+  "\xf0\xa3\xb4\x9e\0" /* offset 16714 */
+  "\xe6\xb4\xb4\0" /* offset 16719 */
+  "\xe6\xb8\xaf\0" /* offset 16723 */
+  "\xe6\xb9\xae\0" /* offset 16727 */
+  "\xe3\xb4\xb3\0" /* offset 16731 */
+  "\xe6\xbb\x87\0" /* offset 16735 */
+  "\xf0\xa3\xbb\x91\0" /* offset 16739 */
+  "\xe6\xb7\xb9\0" /* offset 16744 */
+  "\xe6\xbd\xae\0" /* offset 16748 */
+  "\xf0\xa3\xbd\x9e\0" /* offset 16752 */
+  "\xf0\xa3\xbe\x8e\0" /* offset 16757 */
+  "\xe6\xbf\x86\0" /* offset 16762 */
+  "\xe7\x80\xb9\0" /* offset 16766 */
+  "\xe7\x80\x9b\0" /* offset 16770 */
+  "\xe3\xb6\x96\0" /* offset 16774 */
+  "\xe7\x81\x8a\0" /* offset 16778 */
+  "\xe7\x81\xbd\0" /* offset 16782 */
+  "\xe7\x81\xb7\0" /* offset 16786 */
+  "\xe7\x82\xad\0" /* offset 16790 */
+  "\xf0\xa0\x94\xa5\0" /* offset 16794 */
+  "\xe7\x85\x85\0" /* offset 16799 */
+  "\xf0\xa4\x89\xa3\0" /* offset 16803 */
+  "\xe7\x86\x9c\0" /* offset 16808 */
+  "\xf0\xa4\x8e\xab\0" /* offset 16812 */
+  "\xe7\x88\xa8\0" /* offset 16817 */
+  "\xe7\x89\x90\0" /* offset 16821 */
+  "\xf0\xa4\x98\x88\0" /* offset 16825 */
+  "\xe7\x8a\x80\0" /* offset 16830 */
+  "\xe7\x8a\x95\0" /* offset 16834 */
+  "\xf0\xa4\x9c\xb5\0" /* offset 16838 */
+  "\xf0\xa4\xa0\x94\0" /* offset 16843 */
+  "\xe7\x8d\xba\0" /* offset 16848 */
+  "\xe7\x8e\x8b\0" /* offset 16852 */
+  "\xe3\xba\xac\0" /* offset 16856 */
+  "\xe7\x8e\xa5\0" /* offset 16860 */
+  "\xe3\xba\xb8\0" /* offset 16864 */
+  "\xe7\x91\x87\0" /* offset 16868 */
+  "\xe7\x91\x9c\0" /* offset 16872 */
+  "\xe7\x92\x85\0" /* offset 16876 */
+  "\xe7\x93\x8a\0" /* offset 16880 */
+  "\xe3\xbc\x9b\0" /* offset 16884 */
+  "\xe7\x94\xa4\0" /* offset 16888 */
+  "\xf0\xa4\xb0\xb6\0" /* offset 16892 */
+  "\xe7\x94\xbe\0" /* offset 16897 */
+  "\xf0\xa4\xb2\x92\0" /* offset 16901 */
+  "\xf0\xa2\x86\x9f\0" /* offset 16906 */
+  "\xe7\x98\x90\0" /* offset 16911 */
+  "\xf0\xa4\xbe\xa1\0" /* offset 16915 */
+  "\xf0\xa4\xbe\xb8\0" /* offset 16920 */
+  "\xf0\xa5\x81\x84\0" /* offset 16925 */
+  "\xe3\xbf\xbc\0" /* offset 16930 */
+  "\xe4\x80\x88\0" /* offset 16934 */
+  "\xf0\xa5\x83\xb3\0" /* offset 16938 */
+  "\xf0\xa5\x83\xb2\0" /* offset 16943 */
+  "\xf0\xa5\x84\x99\0" /* offset 16948 */
+  "\xf0\xa5\x84\xb3\0" /* offset 16953 */
+  "\xe7\x9c\x9e\0" /* offset 16958 */
+  "\xe7\x9c\x9f\0" /* offset 16962 */
+  "\xe7\x9e\x8b\0" /* offset 16966 */
+  "\xe4\x81\x86\0" /* offset 16970 */
+  "\xe4\x82\x96\0" /* offset 16974 */
+  "\xf0\xa5\x90\x9d\0" /* offset 16978 */
+  "\xe7\xa1\x8e\0" /* offset 16983 */
+  "\xe4\x83\xa3\0" /* offset 16987 */
+  "\xf0\xa5\x98\xa6\0" /* offset 16991 */
+  "\xf0\xa5\x9a\x9a\0" /* offset 16996 */
+  "\xf0\xa5\x9b\x85\0" /* offset 17001 */
+  "\xe7\xa7\xab\0" /* offset 17006 */
+  "\xe4\x84\xaf\0" /* offset 17010 */
+  "\xe7\xa9\x8a\0" /* offset 17014 */
+  "\xe7\xa9\x8f\0" /* offset 17018 */
+  "\xf0\xa5\xa5\xbc\0" /* offset 17022 */
+  "\xf0\xa5\xaa\xa7\0" /* offset 17027 */
+  "\xe7\xab\xae\0" /* offset 17032 */
+  "\xe4\x88\x82\0" /* offset 17036 */
+  "\xf0\xa5\xae\xab\0" /* offset 17040 */
+  "\xe7\xaf\x86\0" /* offset 17045 */
+  "\xe7\xaf\x89\0" /* offset 17049 */
+  "\xe4\x88\xa7\0" /* offset 17053 */
+  "\xf0\xa5\xb2\x80\0" /* offset 17057 */
+  "\xe7\xb3\x92\0" /* offset 17062 */
+  "\xe4\x8a\xa0\0" /* offset 17066 */
+  "\xe7\xb3\xa8\0" /* offset 17070 */
+  "\xe7\xb3\xa3\0" /* offset 17074 */
+  "\xe7\xb4\x80\0" /* offset 17078 */
+  "\xf0\xa5\xbe\x86\0" /* offset 17082 */
+  "\xe7\xb5\xa3\0" /* offset 17087 */
+  "\xe4\x8c\x81\0" /* offset 17091 */
+  "\xe7\xb7\x87\0" /* offset 17095 */
+  "\xe7\xb8\x82\0" /* offset 17099 */
+  "\xe7\xb9\x85\0" /* offset 17103 */
+  "\xe4\x8c\xb4\0" /* offset 17107 */
+  "\xf0\xa6\x88\xa8\0" /* offset 17111 */
+  "\xf0\xa6\x89\x87\0" /* offset 17116 */
+  "\xe4\x8d\x99\0" /* offset 17121 */
+  "\xf0\xa6\x8b\x99\0" /* offset 17125 */
+  "\xe7\xbd\xba\0" /* offset 17130 */
+  "\xf0\xa6\x8c\xbe\0" /* offset 17134 */
+  "\xe7\xbe\x95\0" /* offset 17139 */
+  "\xe7\xbf\xba\0" /* offset 17143 */
+  "\xf0\xa6\x93\x9a\0" /* offset 17147 */
+  "\xf0\xa6\x94\xa3\0" /* offset 17152 */
+  "\xe8\x81\xa0\0" /* offset 17157 */
+  "\xf0\xa6\x96\xa8\0" /* offset 17161 */
+  "\xe8\x81\xb0\0" /* offset 17166 */
+  "\xf0\xa3\x8d\x9f\0" /* offset 17170 */
+  "\xe4\x8f\x95\0" /* offset 17175 */
+  "\xe8\x82\xb2\0" /* offset 17179 */
+  "\xe8\x84\x83\0" /* offset 17183 */
+  "\xe4\x90\x8b\0" /* offset 17187 */
+  "\xe8\x84\xbe\0" /* offset 17191 */
+  "\xe5\xaa\xb5\0" /* offset 17195 */
+  "\xf0\xa6\x9e\xa7\0" /* offset 17199 */
+  "\xf0\xa6\x9e\xb5\0" /* offset 17204 */
+  "\xf0\xa3\x8e\x93\0" /* offset 17209 */
+  "\xf0\xa3\x8e\x9c\0" /* offset 17214 */
+  "\xe8\x88\x84\0" /* offset 17219 */
+  "\xe8\xbe\x9e\0" /* offset 17223 */
+  "\xe4\x91\xab\0" /* offset 17227 */
+  "\xe8\x8a\x91\0" /* offset 17231 */
+  "\xe8\x8a\x8b\0" /* offset 17235 */
+  "\xe8\x8a\x9d\0" /* offset 17239 */
+  "\xe5\x8a\xb3\0" /* offset 17243 */
+  "\xe8\x8a\xb1\0" /* offset 17247 */
+  "\xe8\x8a\xb3\0" /* offset 17251 */
+  "\xe8\x8a\xbd\0" /* offset 17255 */
+  "\xe8\x8b\xa6\0" /* offset 17259 */
+  "\xf0\xa6\xac\xbc\0" /* offset 17263 */
+  "\xe8\x8c\x9d\0" /* offset 17268 */
+  "\xe8\x8d\xa3\0" /* offset 17272 */
+  "\xe8\x8e\xad\0" /* offset 17276 */
+  "\xe8\x8c\xa3\0" /* offset 17280 */
+  "\xe8\x8e\xbd\0" /* offset 17284 */
+  "\xe8\x8f\xa7\0" /* offset 17288 */
+  "\xe8\x8d\x93\0" /* offset 17292 */
+  "\xe8\x8f\x8a\0" /* offset 17296 */
+  "\xe8\x8f\x8c\0" /* offset 17300 */
+  "\xe8\x8f\x9c\0" /* offset 17304 */
+  "\xf0\xa6\xb0\xb6\0" /* offset 17308 */
+  "\xf0\xa6\xb5\xab\0" /* offset 17313 */
+  "\xf0\xa6\xb3\x95\0" /* offset 17318 */
+  "\xe4\x94\xab\0" /* offset 17323 */
+  "\xe8\x93\xb1\0" /* offset 17327 */
+  "\xe8\x93\xb3\0" /* offset 17331 */
+  "\xe8\x94\x96\0" /* offset 17335 */
+  "\xf0\xa7\x8f\x8a\0" /* offset 17339 */
+  "\xe8\x95\xa4\0" /* offset 17344 */
+  "\xf0\xa6\xbc\xac\0" /* offset 17348 */
+  "\xe4\x95\x9d\0" /* offset 17353 */
+  "\xe4\x95\xa1\0" /* offset 17357 */
+  "\xf0\xa6\xbe\xb1\0" /* offset 17361 */
+  "\xf0\xa7\x83\x92\0" /* offset 17366 */
+  "\xe4\x95\xab\0" /* offset 17371 */
+  "\xe8\x99\x90\0" /* offset 17375 */
+  "\xe8\x99\xa7\0" /* offset 17379 */
+  "\xe8\x99\xa9\0" /* offset 17383 */
+  "\xe8\x9a\xa9\0" /* offset 17387 */
+  "\xe8\x9a\x88\0" /* offset 17391 */
+  "\xe8\x9c\x8e\0" /* offset 17395 */
+  "\xe8\x9b\xa2\0" /* offset 17399 */
+  "\xe8\x9c\xa8\0" /* offset 17403 */
+  "\xe8\x9d\xab\0" /* offset 17407 */
+  "\xe8\x9e\x86\0" /* offset 17411 */
+  "\xe4\x97\x97\0" /* offset 17415 */
+  "\xe8\x9f\xa1\0" /* offset 17419 */
+  "\xe8\xa0\x81\0" /* offset 17423 */
+  "\xe4\x97\xb9\0" /* offset 17427 */
+  "\xe8\xa1\xa0\0" /* offset 17431 */
+  "\xf0\xa7\x99\xa7\0" /* offset 17435 */
+  "\xe8\xa3\x97\0" /* offset 17440 */
+  "\xe8\xa3\x9e\0" /* offset 17444 */
+  "\xe4\x98\xb5\0" /* offset 17448 */
+  "\xe8\xa3\xba\0" /* offset 17452 */
+  "\xe3\x92\xbb\0" /* offset 17456 */
+  "\xf0\xa7\xa2\xae\0" /* offset 17460 */
+  "\xf0\xa7\xa5\xa6\0" /* offset 17465 */
+  "\xe4\x9a\xbe\0" /* offset 17470 */
+  "\xe4\x9b\x87\0" /* offset 17474 */
+  "\xe8\xaa\xa0\0" /* offset 17478 */
+  "\xf0\xa7\xb2\xa8\0" /* offset 17482 */
+  "\xe8\xb2\xab\0" /* offset 17487 */
+  "\xe8\xb3\x81\0" /* offset 17491 */
+  "\xe8\xb4\x9b\0" /* offset 17495 */
+  "\xe8\xb5\xb7\0" /* offset 17499 */
+  "\xf0\xa7\xbc\xaf\0" /* offset 17503 */
+  "\xf0\xa0\xa0\x84\0" /* offset 17508 */
+  "\xe8\xb7\x8b\0" /* offset 17513 */
+  "\xe8\xb6\xbc\0" /* offset 17517 */
+  "\xe8\xb7\xb0\0" /* offset 17521 */
+  "\xf0\xa0\xa3\x9e\0" /* offset 17525 */
+  "\xe8\xbb\x94\0" /* offset 17530 */
+  "\xf0\xa8\x97\x92\0" /* offset 17534 */
+  "\xf0\xa8\x97\xad\0" /* offset 17539 */
+  "\xe9\x82\x94\0" /* offset 17544 */
+  "\xe9\x83\xb1\0" /* offset 17548 */
+  "\xe9\x84\x91\0" /* offset 17552 */
+  "\xf0\xa8\x9c\xae\0" /* offset 17556 */
+  "\xe9\x84\x9b\0" /* offset 17561 */
+  "\xe9\x88\xb8\0" /* offset 17565 */
+  "\xe9\x8b\x97\0" /* offset 17569 */
+  "\xe9\x8b\x98\0" /* offset 17573 */
+  "\xe9\x89\xbc\0" /* offset 17577 */
+  "\xe9\x8f\xb9\0" /* offset 17581 */
+  "\xe9\x90\x95\0" /* offset 17585 */
+  "\xf0\xa8\xaf\xba\0" /* offset 17589 */
+  "\xe9\x96\x8b\0" /* offset 17594 */
+  "\xe4\xa6\x95\0" /* offset 17598 */
+  "\xe9\x96\xb7\0" /* offset 17602 */
+  "\xf0\xa8\xb5\xb7\0" /* offset 17606 */
+  "\xe4\xa7\xa6\0" /* offset 17611 */
+  "\xe9\x9b\x83\0" /* offset 17615 */
+  "\xe5\xb6\xb2\0" /* offset 17619 */
+  "\xe9\x9c\xa3\0" /* offset 17623 */
+  "\xf0\xa9\x85\x85\0" /* offset 17627 */
+  "\xf0\xa9\x88\x9a\0" /* offset 17632 */
+  "\xe4\xa9\xae\0" /* offset 17637 */
+  "\xe4\xa9\xb6\0" /* offset 17641 */
+  "\xe9\x9f\xa0\0" /* offset 17645 */
+  "\xf0\xa9\x90\x8a\0" /* offset 17649 */
+  "\xe4\xaa\xb2\0" /* offset 17654 */
+  "\xf0\xa9\x92\x96\0" /* offset 17658 */
+  "\xe9\xa0\xa9\0" /* offset 17663 */
+  "\xf0\xa9\x96\xb6\0" /* offset 17667 */
+  "\xe9\xa3\xa2\0" /* offset 17672 */
+  "\xe4\xac\xb3\0" /* offset 17676 */
+  "\xe9\xa4\xa9\0" /* offset 17680 */
+  "\xe9\xa6\xa7\0" /* offset 17684 */
+  "\xe9\xa7\x82\0" /* offset 17688 */
+  "\xe9\xa7\xbe\0" /* offset 17692 */
+  "\xe4\xaf\x8e\0" /* offset 17696 */
+  "\xf0\xa9\xac\xb0\0" /* offset 17700 */
+  "\xe9\xb1\x80\0" /* offset 17705 */
+  "\xe9\xb3\xbd\0" /* offset 17709 */
+  "\xe4\xb3\x8e\0" /* offset 17713 */
+  "\xe4\xb3\xad\0" /* offset 17717 */
+  "\xe9\xb5\xa7\0" /* offset 17721 */
+  "\xf0\xaa\x83\x8e\0" /* offset 17725 */
+  "\xe4\xb3\xb8\0" /* offset 17730 */
+  "\xf0\xaa\x84\x85\0" /* offset 17734 */
+  "\xf0\xaa\x88\x8e\0" /* offset 17739 */
+  "\xf0\xaa\x8a\x91\0" /* offset 17744 */
+  "\xe4\xb5\x96\0" /* offset 17749 */
+  "\xe9\xbb\xbe\0" /* offset 17753 */
+  "\xe9\xbc\x85\0" /* offset 17757 */
+  "\xe9\xbc\x8f\0" /* offset 17761 */
+  "\xe9\xbc\x96\0" /* offset 17765 */
+  "\xf0\xaa\x98\x80\0" /* offset 17769 */;
 
 typedef struct
 {
@@ -13282,6 +13347,7 @@ static const decomposition_step decomp_step_table[] =
   { 0x114be, 0x114b9, 0x114bd },
   { 0x115ba, 0x115b8, 0x115af },
   { 0x115bb, 0x115b9, 0x115af },
+  { 0x11938, 0x11935, 0x11930 },
   { 0x1d15e, 0x1d157, 0x1d165 },
   { 0x1d15f, 0x1d158, 0x1d165 },
   { 0x1d160, 0x1d15f, 0x1d16e },
index 3d876a5..619b399 100644 (file)
@@ -362,7 +362,7 @@ g_unichar_istitle (gunichar c)
  * g_unichar_isxdigit:
  * @c: a Unicode character.
  * 
- * Determines if a character is a hexidecimal digit.
+ * Determines if a character is a hexadecimal digit.
  * 
  * Returns: %TRUE if the character is a hexadecimal digit
  **/
@@ -624,7 +624,7 @@ g_unichar_totitle (gunichar c)
 {
   unsigned int i;
 
-  /* We handle U+0000 explicitely because some elements in
+  /* We handle U+0000 explicitly because some elements in
    * title_table[i][1] may be null. */
   if (c == 0)
     return c;
@@ -664,7 +664,7 @@ g_unichar_digit_value (gunichar c)
  * g_unichar_xdigit_value:
  * @c: a Unicode character
  *
- * Determines the numeric value of a character as a hexidecimal
+ * Determines the numeric value of a character as a hexadecimal
  * digit.
  *
  * Returns: If @c is a hex digit (according to
@@ -1476,6 +1476,12 @@ static const guint32 iso15924_tags[] =
     PACK ('N','a','n','d'), /* G_UNICODE_SCRIPT_NANDINAGARI */
     PACK ('H','m','n','p'), /* G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG */
     PACK ('W','c','h','o'), /* G_UNICODE_SCRIPT_WANCHO */
+
+  /* Unicode 13.0 additions */
+    PACK ('C', 'h', 'r', 's'), /* G_UNICODE_SCRIPT_CHORASMIAN */
+    PACK ('D', 'i', 'a', 'k'), /* G_UNICODE_SCRIPT_DIVES_AKURU */
+    PACK ('K', 'i', 't', 's'), /* G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT */
+    PACK ('Y', 'e', 'z', 'i'), /* G_UNICODE_SCRIPT_YEZIDI */
 #undef PACK
 };
 
index 27939e4..bcb4f56 100644 (file)
@@ -1000,13 +1000,13 @@ g_ucs4_to_utf8 (const gunichar *str,
  * Note that the input is expected to be already in native endianness,
  * an initial byte-order-mark character is not handled specially.
  * g_convert() can be used to convert a byte buffer of UTF-16 data of
- * ambiguous endianess.
+ * ambiguous endianness.
  *
  * Further note that this function does not validate the result
  * string; it may e.g. include embedded NUL characters. The only
  * validation done by this function is to ensure that the input can
  * be correctly interpreted as UTF-16, i.e. it doesn't contain
- * unpaired surrogates or partial character sequences.
+ * things unpaired surrogates.
  *
  * Returns: (transfer full): a pointer to a newly allocated UTF-8 string.
  *     This value must be freed with g_free(). If an error occurs,
index c5aef47..572c06c 100644 (file)
@@ -3102,7 +3102,7 @@ g_abort (void)
 {
   /* One call to break the debugger */
   DebugBreak ();
-  /* One call in case CRT changes its abort() behaviour */
+  /* One call in case CRT does get saner about abort() behaviour */
   abort ();
   /* And one call to bind them all and terminate the program for sure */
   ExitProcess (127);
index 8aa1d00..f26343e 100644 (file)
@@ -209,4 +209,3 @@ g_uuid_string_random (void)
 
   return g_uuid_to_string (&uuid);
 }
-
index cff1b09..10543ff 100644 (file)
@@ -666,21 +666,6 @@ g_variant_is_trusted (GVariant *value)
   return (value->state & STATE_TRUSTED) != 0;
 }
 
-/* < internal >
- * g_variant_get_depth:
- * @value: a #GVariant
- *
- * Gets the nesting depth of a #GVariant. This is 0 for a #GVariant with no
- * children.
- *
- * Returns: nesting depth of @value
- */
-gsize
-g_variant_get_depth (GVariant *value)
-{
-  return value->depth;
-}
-
 /* -- public -- */
 
 /**
@@ -810,7 +795,7 @@ g_variant_ref_sink (GVariant *value)
  *
  * Using this function on the return value of the user's callback allows
  * the user to do whichever is more convenient for them.  The caller
- * will alway receives exactly one full reference to the value: either
+ * will always receives exactly one full reference to the value: either
  * the one that was returned in the first place, or a floating reference
  * that has been converted to a full reference.
  *
@@ -1041,6 +1026,12 @@ g_variant_n_children (GVariant *value)
  * The returned value is never floating.  You should free it with
  * g_variant_unref() when you're done with it.
  *
+ * Note that values borrowed from the returned child are not guaranteed to
+ * still be valid after the child is freed even if you still hold a reference
+ * to @value, if @value has not been serialised at the time this function is
+ * called. To avoid this, you can serialize @value by calling
+ * g_variant_get_data() and optionally ignoring the return value.
+ *
  * There may be implementation specific restrictions on deeply nested values,
  * which would result in the unit tuple being returned as the child value,
  * instead of further nested children. #GVariant is guaranteed to handle
index fc04711..fc19b7e 100644 (file)
@@ -34,6 +34,4 @@ gboolean                g_variant_is_trusted                            (GVarian
 
 GVariantTypeInfo *      g_variant_get_type_info                         (GVariant            *value);
 
-gsize                   g_variant_get_depth                             (GVariant            *value);
-
 #endif /* __G_VARIANT_CORE_H__ */
index 77d7e74..281fb34 100644 (file)
@@ -1440,11 +1440,15 @@ g_variant_is_signature (const gchar *string)
  * type.  This includes the types %G_VARIANT_TYPE_STRING,
  * %G_VARIANT_TYPE_OBJECT_PATH and %G_VARIANT_TYPE_SIGNATURE.
  *
- * The string will always be UTF-8 encoded, and will never be %NULL.
+ * The string will always be UTF-8 encoded, will never be %NULL, and will never
+ * contain nul bytes.
  *
  * If @length is non-%NULL then the length of the string (in bytes) is
  * returned there.  For trusted values, this information is already
- * known.  For untrusted values, a strlen() will be performed.
+ * known.  Untrusted values will be validated and, if valid, a strlen() will be
+ * performed. If invalid, a default value will be returned — for
+ * %G_VARIANT_TYPE_OBJECT_PATH, this is `"/"`, and for other types it is the
+ * empty string.
  *
  * It is an error to call this function with a @value of any type
  * other than those three.
@@ -3004,7 +3008,7 @@ g_variant_iter_init (GVariantIter *iter,
  * need it.
  *
  * A reference is taken to the container that @iter is iterating over
- * and will be releated only when g_variant_iter_free() is called.
+ * and will be related only when g_variant_iter_free() is called.
  *
  * Returns: (transfer full): a new heap-allocated #GVariantIter
  *
@@ -4466,7 +4470,7 @@ g_variant_check_format_string (GVariant    *value,
               return FALSE;
             }
 
-          /* fall through */
+          G_GNUC_FALLTHROUGH;
         case '^':
         case '@':
           /* ignore these 2 (or 3) */
@@ -4487,7 +4491,7 @@ g_variant_check_format_string (GVariant    *value,
           if (*type_string != '(')
             return FALSE;
 
-          /* fall through */
+          G_GNUC_FALLTHROUGH;
         case '*':
           /* consume a full type string for the '*' or 'r' */
           if (!g_variant_type_string_scan (type_string, NULL, &type_string))
@@ -5948,7 +5952,6 @@ g_variant_byteswap (GVariant *value)
       serialised.type_info = g_variant_get_type_info (trusted);
       serialised.size = g_variant_get_size (trusted);
       serialised.data = g_malloc (serialised.size);
-      serialised.depth = g_variant_get_depth (trusted);
       g_variant_store (trusted, serialised.data);
       g_variant_unref (trusted);
 
index c46f1a2..1a228f7 100644 (file)
@@ -1120,7 +1120,7 @@ g_variant_type_new_tuple_slow (const GVariantType * const *items,
 {
   /* the "slow" version is needed in case the static buffer of 1024
    * bytes is exceeded when running the normal version.  this will
-   * happen only with very unusually large types, so it can be slow.
+   * happen only in truly insane code, so it can be slow.
    */
   GString *string;
   gint i;
index 6ecd1d4..8663e20 100644 (file)
@@ -80,7 +80,7 @@ typedef struct _GVariantTypeInfo GVariantTypeInfo;
  *
  * The constants in this structure are used as follows:
  *
- * First, among the array of offets contained in the tuple, 'i' is the
+ * First, among the array of offsets contained in the tuple, 'i' is the
  * index of the offset that refers to the end of the variable-sized item
  * preceding the item of interest.  If no variable-sized items precede
  * this item, then 'i' will be -1.
index 07ce763..08bf7d0 100644 (file)
  */
 #define GLIB_VERSION_2_64       (G_ENCODE_VERSION (2, 64))
 
+/**
+ * GLIB_VERSION_2_66:
+ *
+ * A macro that evaluates to the 2.66 version of GLib, in a format
+ * that can be used by the C pre-processor.
+ *
+ * Since: 2.66
+ */
+#define GLIB_VERSION_2_66       (G_ENCODE_VERSION (2, 66))
+
 /* evaluates to the current stable version; for development cycles,
  * this means the next stable target
  */
 
 #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_44
 # define GLIB_AVAILABLE_IN_2_44                 GLIB_UNAVAILABLE(2, 44)
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_44   GLIB_UNAVAILABLE_STATIC_INLINE(2, 44)
 # define GLIB_AVAILABLE_MACRO_IN_2_44           GLIB_UNAVAILABLE_MACRO(2, 44)
 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_44      GLIB_UNAVAILABLE_ENUMERATOR(2, 44)
 # define GLIB_AVAILABLE_TYPE_IN_2_44            GLIB_UNAVAILABLE_TYPE(2, 44)
 #else
 # define GLIB_AVAILABLE_IN_2_44                 _GLIB_EXTERN
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
 # define GLIB_AVAILABLE_MACRO_IN_2_44
 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_44
 # define GLIB_AVAILABLE_TYPE_IN_2_44
 
 #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_60
 # define GLIB_AVAILABLE_IN_2_60                 GLIB_UNAVAILABLE(2, 60)
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_60   GLIB_UNAVAILABLE_STATIC_INLINE(2, 60)
 # define GLIB_AVAILABLE_MACRO_IN_2_60           GLIB_UNAVAILABLE_MACRO(2, 60)
 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_60      GLIB_UNAVAILABLE_ENUMERATOR(2, 60)
 # define GLIB_AVAILABLE_TYPE_IN_2_60            GLIB_UNAVAILABLE_TYPE(2, 60)
 #else
 # define GLIB_AVAILABLE_IN_2_60                 _GLIB_EXTERN
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_60
 # define GLIB_AVAILABLE_MACRO_IN_2_60
 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_60
 # define GLIB_AVAILABLE_TYPE_IN_2_60
 
 #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_62
 # define GLIB_AVAILABLE_IN_2_62                 GLIB_UNAVAILABLE(2, 62)
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_62   GLIB_UNAVAILABLE_STATIC_INLINE(2, 62)
 # define GLIB_AVAILABLE_MACRO_IN_2_62           GLIB_UNAVAILABLE_MACRO(2, 62)
 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_62      GLIB_UNAVAILABLE_ENUMERATOR(2, 62)
 # define GLIB_AVAILABLE_TYPE_IN_2_62            GLIB_UNAVAILABLE_TYPE(2, 62)
 #else
 # define GLIB_AVAILABLE_IN_2_62                 _GLIB_EXTERN
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
 # define GLIB_AVAILABLE_MACRO_IN_2_62
 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_62
 # define GLIB_AVAILABLE_TYPE_IN_2_62
 
 #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_64
 # define GLIB_AVAILABLE_IN_2_64                 GLIB_UNAVAILABLE(2, 64)
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_64   GLIB_UNAVAILABLE_STATIC_INLINE(2, 64)
 # define GLIB_AVAILABLE_MACRO_IN_2_64           GLIB_UNAVAILABLE_MACRO(2, 64)
 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_64      GLIB_UNAVAILABLE_ENUMERATOR(2, 64)
 # define GLIB_AVAILABLE_TYPE_IN_2_64            GLIB_UNAVAILABLE_TYPE(2, 64)
 #else
 # define GLIB_AVAILABLE_IN_2_64                 _GLIB_EXTERN
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
 # define GLIB_AVAILABLE_MACRO_IN_2_64
 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_64
 # define GLIB_AVAILABLE_TYPE_IN_2_64
 #endif
 
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_66
+# define GLIB_DEPRECATED_IN_2_66                GLIB_DEPRECATED
+# define GLIB_DEPRECATED_IN_2_66_FOR(f)         GLIB_DEPRECATED_FOR(f)
+# define GLIB_DEPRECATED_MACRO_IN_2_66          GLIB_DEPRECATED_MACRO
+# define GLIB_DEPRECATED_MACRO_IN_2_66_FOR(f)   GLIB_DEPRECATED_MACRO_FOR(f)
+# define GLIB_DEPRECATED_ENUMERATOR_IN_2_66          GLIB_DEPRECATED_ENUMERATOR
+# define GLIB_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f)   GLIB_DEPRECATED_ENUMERATOR_FOR(f)
+# define GLIB_DEPRECATED_TYPE_IN_2_66           GLIB_DEPRECATED_TYPE
+# define GLIB_DEPRECATED_TYPE_IN_2_66_FOR(f)    GLIB_DEPRECATED_TYPE_FOR(f)
+#else
+# define GLIB_DEPRECATED_IN_2_66                _GLIB_EXTERN
+# define GLIB_DEPRECATED_IN_2_66_FOR(f)         _GLIB_EXTERN
+# define GLIB_DEPRECATED_MACRO_IN_2_66
+# define GLIB_DEPRECATED_MACRO_IN_2_66_FOR(f)
+# define GLIB_DEPRECATED_ENUMERATOR_IN_2_66
+# define GLIB_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f)
+# define GLIB_DEPRECATED_TYPE_IN_2_66
+# define GLIB_DEPRECATED_TYPE_IN_2_66_FOR(f)
+#endif
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_66
+# define GLIB_AVAILABLE_IN_2_66                 GLIB_UNAVAILABLE(2, 66)
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_66   GLIB_UNAVAILABLE_STATIC_INLINE(2, 66)
+# define GLIB_AVAILABLE_MACRO_IN_2_66           GLIB_UNAVAILABLE_MACRO(2, 66)
+# define GLIB_AVAILABLE_ENUMERATOR_IN_2_66      GLIB_UNAVAILABLE_ENUMERATOR(2, 66)
+# define GLIB_AVAILABLE_TYPE_IN_2_66            GLIB_UNAVAILABLE_TYPE(2, 66)
+#else
+# define GLIB_AVAILABLE_IN_2_66                 _GLIB_EXTERN
+# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_66
+# define GLIB_AVAILABLE_MACRO_IN_2_66
+# define GLIB_AVAILABLE_ENUMERATOR_IN_2_66
+# define GLIB_AVAILABLE_TYPE_IN_2_66
+#endif
+
 #endif /*  __G_VERSION_MACROS_H__ */
index 2f2fe05..48574ec 100644 (file)
@@ -386,7 +386,7 @@ get_package_directory_from_module (const gchar *module_name)
  * installations of different versions of some GLib-using library, or
  * GLib itself, is desirable for various reasons.
  *
- * For this reason it is recommeded to always pass %NULL as
+ * For this reason it is recommended to always pass %NULL as
  * @package to this function, to avoid the temptation to use the
  * Registry. In version 2.20 of GLib the @package parameter
  * will be ignored and this function won't look in the Registry at all.
@@ -624,7 +624,7 @@ g_win32_get_windows_version (void)
  * gettext initialization.
  */
 static gchar *
-special_wchar_to_locale_enoding (wchar_t *wstring)
+special_wchar_to_locale_encoding (wchar_t *wstring)
 {
   int sizeof_output;
   int wctmb_result;
@@ -701,7 +701,7 @@ g_win32_locale_filename_from_utf8 (const gchar *utf8filename)
   if (wname == NULL)
     return NULL;
 
-  retval = special_wchar_to_locale_enoding (wname);
+  retval = special_wchar_to_locale_encoding (wname);
 
   if (retval == NULL)
     {
@@ -709,7 +709,7 @@ g_win32_locale_filename_from_utf8 (const gchar *utf8filename)
       wchar_t wshortname[MAX_PATH + 1];
 
       if (GetShortPathNameW (wname, wshortname, G_N_ELEMENTS (wshortname)))
-        retval = special_wchar_to_locale_enoding (wshortname);
+        retval = special_wchar_to_locale_encoding (wshortname);
     }
 
   g_free (wname);
@@ -1049,7 +1049,7 @@ static void *WinVEH_handle = NULL;
  * * EXCEPTION_STACK_OVERFLOW
  * * EXCEPTION_ILLEGAL_INSTRUCTION
  * To make it stop at other exceptions one should set the G_VEH_CATCH
- * environment variable to a list of comma-separated hexademical numbers,
+ * environment variable to a list of comma-separated hexadecimal numbers,
  * where each number is the code of an exception that should be caught.
  * This is done to prevent GLib from breaking when Windows uses
  * exceptions to shuttle information (SetThreadName(), OutputDebugString())
index 456e0c2..3f24579 100644 (file)
@@ -316,7 +316,7 @@ else
   platform_deps = []
 endif
 
-if host_system == 'darwin'
+if glib_have_cocoa
   glib_sources += files('gosxutils.m')
 endif
 
@@ -356,21 +356,19 @@ libglib = library('glib-2.0',
   # intl.lib is not compatible with SAFESEH
   link_args : [noseh_link_args, glib_link_flags, win32_ldflags],
   include_directories : configinc,
-  dependencies : pcre_deps + [thread_dep, libintl, librt] + libiconv + platform_deps + gnulib_libm_dependency,
+  dependencies : pcre_deps + [thread_dep, librt] + libintl_deps + libiconv + platform_deps + gnulib_libm_dependency,
   c_args : glib_c_args,
   objc_args : glib_c_args,
 )
 
 libglib_dep = declare_dependency(
   link_with : libglib,
-  # thread_dep doesn't get pulled in from libglib atm,
-  # see https://github.com/mesonbuild/meson/issues/1426
-  dependencies : [thread_dep, libintl],
+  dependencies : libintl_deps,
   # We sadly need to export configinc here because everyone includes <glib/*.h>
   include_directories : [configinc, glibinc])
 
 pkg.generate(libglib,
-  libraries : [libintl],
+  libraries : [libintl_deps],
   libraries_private : [osx_ldflags, win32_ldflags],
   subdirs : ['glib-2.0'],
   extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
@@ -385,6 +383,10 @@ pkg.generate(libglib,
   description : 'C Utility Library',
 )
 
+if meson.version().version_compare('>=0.54.0')
+  meson.override_dependency('glib-2.0', libglib_dep)
+endif
+
 # On Windows, glib needs a spawn helper for g_spawn* API
 if host_system == 'windows'
   if host_machine.cpu_family() == 'x86'
index 9a5252c..b7b06d7 100644 (file)
@@ -129,7 +129,7 @@ testcase (gconstpointer data)
   #define SUFFIX "-emufutex"
 
   /* ensure that we are using the emulated futex by checking
-   * (at compile-time) for the existance of 'g_futex_address_list'
+   * (at compile-time) for the existence of 'g_futex_address_list'
    */
   g_assert (g_futex_address_list == NULL);
 #else
index 1da514a..745cf8b 100644 (file)
@@ -2033,4 +2033,3 @@ main (int argc, char *argv[])
 
   return g_test_run ();
 }
-
index f562296..bc1a7a2 100644 (file)
@@ -43,10 +43,36 @@ test_to_file (void)
   const gchar *filename;
   gboolean res;
   GError *error = NULL;
-  gchar *in, *out;
+  char *in, *out;
 
   bookmark = g_bookmark_file_new ();
 
+  g_test_message ("Roundtrip from newly created bookmark file");
+  g_bookmark_file_set_title (bookmark, "file:///tmp/schedule.ps", "schedule.ps");
+  g_bookmark_file_set_mime_type (bookmark, "file:///tmp/schedule.ps", "application/postscript");
+  g_bookmark_file_add_application (bookmark, "file:///tmp/schedule.ps", "ghostscript", "ghostscript %F");
+
+  res = g_bookmark_file_to_file (bookmark, "out.xbel", &error);
+  g_assert_no_error (error);
+  g_assert_true (res);
+
+  res = g_bookmark_file_load_from_file (bookmark, "out.xbel", &error);
+  g_assert_no_error (error);
+  g_assert_true (res);
+
+  out = g_bookmark_file_get_title (bookmark, "file:///tmp/schedule.ps", &error);
+  g_assert_no_error (error);
+  g_assert_cmpstr (out, ==, "schedule.ps");
+  g_free (out);
+
+  out = g_bookmark_file_get_mime_type (bookmark, "file:///tmp/schedule.ps", &error);
+  g_assert_no_error (error);
+  g_assert_cmpstr (out, ==, "application/postscript");
+  g_free (out);
+
+  remove ("out.xbel");
+
+  g_test_message ("Roundtrip from a valid bookmark file");
   filename = g_test_get_filename (G_TEST_DIST, "bookmarks", "valid-01.xbel", NULL);
   res = g_bookmark_file_load_from_file (bookmark, filename, &error);
   g_assert_no_error (error);
@@ -127,7 +153,7 @@ test_misc (void)
   gboolean res;
   GError *error = NULL;
   gchar *s;
-  time_t before, after, t;
+  GDateTime *before, *after, *t;
   gchar *cmd, *exec;
   guint count;
 
@@ -196,47 +222,55 @@ test_misc (void)
   g_assert_no_error (error);
   g_assert_true (res);
 
-  time (&before);
+  before = g_date_time_new_now_utc ();
 
-  g_bookmark_file_set_added (bookmark,
-                             "file:///tmp/schedule3.ps",
-                             (time_t)-1);
-  t = g_bookmark_file_get_added (bookmark,
-                                 "file:///tmp/schedule3.ps",
-                                 &error);
+  g_bookmark_file_set_added_date_time (bookmark,
+                                       "file:///tmp/schedule3.ps",
+                                       before);
+  t = g_bookmark_file_get_added_date_time (bookmark,
+                                           "file:///tmp/schedule3.ps",
+                                           &error);
   g_assert_no_error (error);
 
-  time (&after);
-  g_assert_cmpint (before, <=, t);
-  g_assert_cmpint (t, <=, after);
+  after = g_date_time_new_now_utc ();
+  g_assert_cmpint (g_date_time_compare (before, t), <=, 0);
+  g_assert_cmpint (g_date_time_compare (t, after), <=, 0);
+
+  g_date_time_unref (after);
+  g_date_time_unref (before);
 
-  time (&before);
+  before = g_date_time_new_now_utc ();
 
-  g_bookmark_file_set_modified (bookmark,
-                                "file:///tmp/schedule4.ps",
-                                (time_t)-1);
-  t = g_bookmark_file_get_modified (bookmark,
-                                    "file:///tmp/schedule4.ps",
-                                    &error);
+  g_bookmark_file_set_modified_date_time (bookmark,
+                                          "file:///tmp/schedule4.ps",
+                                          before);
+  t = g_bookmark_file_get_modified_date_time (bookmark,
+                                              "file:///tmp/schedule4.ps",
+                                              &error);
   g_assert_no_error (error);
 
-  time (&after);
-  g_assert_cmpint (before, <=, t);
-  g_assert_cmpint (t, <=, after);
+  after = g_date_time_new_now_utc ();
+  g_assert_cmpint (g_date_time_compare (before, t), <=, 0);
+  g_assert_cmpint (g_date_time_compare (t, after), <=, 0);
 
-  time (&before);
+  g_date_time_unref (after);
+  g_date_time_unref (before);
 
-  g_bookmark_file_set_visited (bookmark,
-                               "file:///tmp/schedule5.ps",
-                               (time_t)-1);
-  t = g_bookmark_file_get_visited (bookmark,
-                                   "file:///tmp/schedule5.ps",
-                                   &error);
+  before = g_date_time_new_now_utc ();
+
+  g_bookmark_file_set_visited_date_time (bookmark,
+                                         "file:///tmp/schedule5.ps",
+                                         before);
+  t = g_bookmark_file_get_visited_date_time (bookmark,
+                                             "file:///tmp/schedule5.ps",
+                                             &error);
   g_assert_no_error (error);
 
-  time (&after);
-  g_assert_cmpint (before, <=, t);
-  g_assert_cmpint (t, <=, after);
+  after = g_date_time_new_now_utc ();
+  g_assert_cmpint (g_date_time_compare (before, t), <=, 0);
+  g_assert_cmpint (g_date_time_compare (t, after), <=, 0);
+  g_date_time_unref (after);
+  g_date_time_unref (before);
 
   g_bookmark_file_set_icon (bookmark,
                             "file:///tmp/schedule6.ps",
@@ -271,16 +305,16 @@ test_misc (void)
   g_assert_false (res);
   g_clear_error (&error);
 
-  time (&before);
+  before = g_date_time_new_now_utc ();
 
   g_bookmark_file_add_application (bookmark,
                                    "file:///tmp/schedule7.ps",
                                    NULL, NULL);
-  res = g_bookmark_file_get_app_info (bookmark,
-                                      "file:///tmp/schedule7.ps",
-                                      g_get_application_name (),
-                                      &exec, &count, &t,
-                                      &error);
+  res = g_bookmark_file_get_application_info (bookmark,
+                                              "file:///tmp/schedule7.ps",
+                                              g_get_application_name (),
+                                              &exec, &count, &t,
+                                              &error);
   g_assert_no_error (error);
   g_assert_true (res);
   cmd = g_strconcat (g_get_prgname (), " file:///tmp/schedule7.ps", NULL);
@@ -288,13 +322,111 @@ test_misc (void)
   g_free (cmd);
   g_free (exec);
   g_assert_cmpuint (count, ==, 1);
-  time (&after);
-  g_assert_cmpint (before, <=, t);
-  g_assert_cmpint (t, <=, after);
+
+  after = g_date_time_new_now_utc ();
+  g_assert_cmpint (g_date_time_compare (before, t), <=, 0);
+  g_assert_cmpint (g_date_time_compare (t, after), <=, 0);
+
+  g_date_time_unref (after);
+  g_date_time_unref (before);
 
   g_bookmark_file_free (bookmark);
 }
 
+static void
+test_deprecated (void)
+{
+  GBookmarkFile *file = NULL;
+  GError *local_error = NULL;
+  time_t t, now;
+  gboolean retval;
+
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
+  now = time (NULL);
+  file = g_bookmark_file_new ();
+
+  /* added */
+  g_bookmark_file_set_added (file, "file://test", -1);
+  t = g_bookmark_file_get_added (file, "file://test", &local_error);
+  g_assert_no_error (local_error);
+  g_assert_cmpint (t, >=, now);
+
+  g_bookmark_file_set_added (file, "file://test", 1234);
+  t = g_bookmark_file_get_added (file, "file://test", &local_error);
+  g_assert_no_error (local_error);
+  g_assert_cmpint (t, ==, 1234);
+
+  t = g_bookmark_file_get_added (file, "file://not-exist", &local_error);
+  g_assert_error (local_error, G_BOOKMARK_FILE_ERROR, G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND);
+  g_assert_cmpint (t, ==, (time_t) -1);
+  g_clear_error (&local_error);
+
+  /* modified */
+  g_bookmark_file_set_modified (file, "file://test", -1);
+  t = g_bookmark_file_get_modified (file, "file://test", &local_error);
+  g_assert_no_error (local_error);
+  g_assert_cmpint (t, >=, now);
+
+  g_bookmark_file_set_modified (file, "file://test", 1234);
+  t = g_bookmark_file_get_modified (file, "file://test", &local_error);
+  g_assert_no_error (local_error);
+  g_assert_cmpint (t, ==, 1234);
+
+  t = g_bookmark_file_get_modified (file, "file://not-exist", &local_error);
+  g_assert_error (local_error, G_BOOKMARK_FILE_ERROR, G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND);
+  g_assert_cmpint (t, ==, (time_t) -1);
+  g_clear_error (&local_error);
+
+  /* visited */
+  g_bookmark_file_set_visited (file, "file://test", -1);
+  t = g_bookmark_file_get_visited (file, "file://test", &local_error);
+  g_assert_no_error (local_error);
+  g_assert_cmpint (t, >=, now);
+
+  g_bookmark_file_set_visited (file, "file://test", 1234);
+  t = g_bookmark_file_get_visited (file, "file://test", &local_error);
+  g_assert_no_error (local_error);
+  g_assert_cmpint (t, ==, 1234);
+
+  t = g_bookmark_file_get_visited (file, "file://not-exist", &local_error);
+  g_assert_error (local_error, G_BOOKMARK_FILE_ERROR, G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND);
+  g_assert_cmpint (t, ==, (time_t) -1);
+  g_clear_error (&local_error);
+
+  /* set app info */
+  retval = g_bookmark_file_set_app_info (file, "file://test", "app", "/path/to/app", 1, -1, &local_error);
+  g_assert_no_error (local_error);
+  g_assert_true (retval);
+
+  retval = g_bookmark_file_get_app_info (file, "file://test", "app", NULL, NULL, &t, &local_error);
+  g_assert_no_error (local_error);
+  g_assert_true (retval);
+  g_assert_cmpint (t, >=, now);
+
+  retval = g_bookmark_file_set_app_info (file, "file://test", "app", "/path/to/app", 1, 1234, &local_error);
+  g_assert_no_error (local_error);
+  g_assert_true (retval);
+
+  retval = g_bookmark_file_get_app_info (file, "file://test", "app", NULL, NULL, &t, &local_error);
+  g_assert_no_error (local_error);
+  g_assert_true (retval);
+  g_assert_cmpint (t, ==, 1234);
+
+  retval = g_bookmark_file_get_app_info (file, "file://test", "app", NULL, NULL, NULL, &local_error);
+  g_assert_no_error (local_error);
+  g_assert_true (retval);
+
+  retval = g_bookmark_file_get_app_info (file, "file://not-exist", "app", NULL, NULL, &t, &local_error);
+  g_assert_error (local_error, G_BOOKMARK_FILE_ERROR, G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND);
+  g_assert_false (retval);
+  g_clear_error (&local_error);
+
+  g_bookmark_file_free (file);
+
+G_GNUC_END_IGNORE_DEPRECATIONS
+}
+
 static gboolean
 test_load (GBookmarkFile *bookmark,
            const gchar   *filename)
@@ -349,8 +481,8 @@ test_modify (GBookmarkFile *bookmark)
 {
   gchar *text;
   guint count;
-  time_t stamp;
-  time_t now;
+  GDateTime *stamp;
+  GDateTime *now = NULL;
   GError *error = NULL;
   gchar **groups;
   gsize length;
@@ -380,17 +512,17 @@ test_modify (GBookmarkFile *bookmark)
   g_bookmark_file_set_title (bookmark, TEST_URI_0, "a title");
   g_bookmark_file_set_description (bookmark, TEST_URI_0, "a description");
   g_bookmark_file_set_is_private (bookmark, TEST_URI_0, TRUE);
-  time (&now);
-  g_bookmark_file_set_added (bookmark, TEST_URI_0, now);
-  g_bookmark_file_set_visited (bookmark, TEST_URI_0, now);
+  now = g_date_time_new_now_utc ();
+  g_bookmark_file_set_added_date_time (bookmark, TEST_URI_0, now);
+  g_bookmark_file_set_visited_date_time (bookmark, TEST_URI_0, now);
   g_bookmark_file_set_icon (bookmark, TEST_URI_0, "testicon", "image/png");
 
   /* Check the modification date by itself, as it’s updated whenever we modify
    * other properties. */
-  g_bookmark_file_set_modified (bookmark, TEST_URI_0, now);
-  stamp = g_bookmark_file_get_modified (bookmark, TEST_URI_0, &error);
+  g_bookmark_file_set_modified_date_time (bookmark, TEST_URI_0, now);
+  stamp = g_bookmark_file_get_modified_date_time (bookmark, TEST_URI_0, &error);
   g_assert_no_error (error);
-  g_assert_cmpint (stamp, ==, now);
+  g_assert_cmpint (g_date_time_compare (stamp, now), ==, 0);
 
   text = g_bookmark_file_get_title (bookmark, TEST_URI_0, &error);
   g_assert_no_error (error);
@@ -402,12 +534,12 @@ test_modify (GBookmarkFile *bookmark)
   g_free (text);
   g_assert_true (g_bookmark_file_get_is_private (bookmark, TEST_URI_0, &error));
   g_assert_no_error (error);
-  stamp = g_bookmark_file_get_added (bookmark, TEST_URI_0, &error);
+  stamp = g_bookmark_file_get_added_date_time (bookmark, TEST_URI_0, &error);
   g_assert_no_error (error);
-  g_assert_cmpint (stamp, ==, now);
-  stamp = g_bookmark_file_get_visited (bookmark, TEST_URI_0, &error);
+  g_assert_cmpint (g_date_time_compare (stamp, now), ==, 0);
+  stamp = g_bookmark_file_get_visited_date_time (bookmark, TEST_URI_0, &error);
   g_assert_no_error (error);
-  g_assert_cmpint (stamp, ==, now);
+  g_assert_cmpint (g_date_time_compare (stamp, now), ==, 0);
   g_assert_true (g_bookmark_file_get_icon (bookmark, TEST_URI_0, &icon, &mime, &error));
   g_assert_no_error (error);
   g_assert_cmpstr (icon, ==, "testicon");
@@ -425,13 +557,13 @@ test_modify (GBookmarkFile *bookmark)
   g_bookmark_file_get_is_private (bookmark, TEST_URI_1, &error);
   g_assert_error (error, G_BOOKMARK_FILE_ERROR, G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND);
   g_clear_error (&error);
-  g_bookmark_file_get_added (bookmark, TEST_URI_1, &error);
+  g_bookmark_file_get_added_date_time (bookmark, TEST_URI_1, &error);
   g_assert_error (error, G_BOOKMARK_FILE_ERROR, G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND);
   g_clear_error (&error);
-  g_bookmark_file_get_modified (bookmark, TEST_URI_1, &error);
+  g_bookmark_file_get_modified_date_time (bookmark, TEST_URI_1, &error);
   g_assert_error (error, G_BOOKMARK_FILE_ERROR, G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND);
   g_clear_error (&error);
-  g_bookmark_file_get_visited (bookmark, TEST_URI_1, &error);
+  g_bookmark_file_get_visited_date_time (bookmark, TEST_URI_1, &error);
   g_assert_error (error, G_BOOKMARK_FILE_ERROR, G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND);
   g_clear_error (&error);
   if (g_test_verbose ())
@@ -445,14 +577,14 @@ test_modify (GBookmarkFile *bookmark)
                                   TEST_APP_NAME,
                                   TEST_APP_EXEC);
   g_assert_true (g_bookmark_file_has_application (bookmark, TEST_URI_0, TEST_APP_NAME, NULL));
-  g_bookmark_file_get_app_info (bookmark, TEST_URI_0, TEST_APP_NAME,
-                               &text,
-                               &count,
-                               &stamp,
-                               &error);
+  g_bookmark_file_get_application_info (bookmark, TEST_URI_0, TEST_APP_NAME,
+                                        &text,
+                                        &count,
+                                        &stamp,
+                                        &error);
   g_assert_no_error (error);
   g_assert_cmpuint (count, ==, 1);
-  g_assert_cmpint (stamp, ==, g_bookmark_file_get_modified (bookmark, TEST_URI_0, NULL));
+  g_assert_cmpint (g_date_time_compare (stamp, g_bookmark_file_get_modified_date_time (bookmark, TEST_URI_0, NULL)), <=, 0);
   g_free (text);
   g_assert_true (g_bookmark_file_remove_application (bookmark, TEST_URI_0, TEST_APP_NAME, &error));
   g_assert_no_error (error);
@@ -463,11 +595,11 @@ test_modify (GBookmarkFile *bookmark)
   g_assert_cmpstr (apps[0], ==, TEST_APP_NAME);
   g_strfreev (apps);
 
-  g_bookmark_file_get_app_info (bookmark, TEST_URI_0, "fail",
-                               &text,
-                               &count,
-                               &stamp,
-                               &error);
+  g_bookmark_file_get_application_info (bookmark, TEST_URI_0, "fail",
+                                        &text,
+                                        &count,
+                                        &stamp,
+                                        &error);
   g_assert_error (error, G_BOOKMARK_FILE_ERROR, G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED);
   g_clear_error (&error);
 
@@ -508,7 +640,9 @@ test_modify (GBookmarkFile *bookmark)
   g_clear_error (&error);
   if (g_test_verbose ())
     g_printerr ("ok\n");
-  
+
+  g_date_time_unref (now);
+
   return TRUE;
 }
 
@@ -563,6 +697,7 @@ main (int argc, char *argv[])
   g_test_add_func ("/bookmarks/to-file", test_to_file);
   g_test_add_func ("/bookmarks/move-item", test_move_item);
   g_test_add_func ("/bookmarks/misc", test_misc);
+  g_test_add_func ("/bookmarks/deprecated", test_deprecated);
 
   error = NULL;
   path = g_test_build_filename (G_TEST_DIST, "bookmarks", NULL);
diff --git a/glib/tests/bookmarks/fail-42.xbel b/glib/tests/bookmarks/fail-42.xbel
deleted file mode 100644 (file)
index c698d33..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<xbel version="1.0"><bookmark href=""><info><metadata owner="http://freedesktop.org"><applications><application name=""exec=""timestamp="-77873021800189">
\ No newline at end of file
index 5ea5c2b..a65d3a9 100644 (file)
@@ -404,10 +404,10 @@ main (int argc, char *argv[])
   g_test_add_func ("/bytes/hash", test_hash);
   g_test_add_func ("/bytes/equal", test_equal);
   g_test_add_func ("/bytes/compare", test_compare);
-  g_test_add_func ("/bytes/to-data/transfered", test_to_data_transferred);
+  g_test_add_func ("/bytes/to-data/transferred", test_to_data_transferred);
   g_test_add_func ("/bytes/to-data/two-refs", test_to_data_two_refs);
   g_test_add_func ("/bytes/to-data/non-malloc", test_to_data_non_malloc);
-  g_test_add_func ("/bytes/to-array/transfered", test_to_array_transferred);
+  g_test_add_func ("/bytes/to-array/transferred", test_to_array_transferred);
   g_test_add_func ("/bytes/to-array/two-refs", test_to_array_two_refs);
   g_test_add_func ("/bytes/to-array/non-malloc", test_to_array_non_malloc);
   g_test_add_func ("/bytes/null", test_null);
index 0c0e1bb..017f247 100644 (file)
@@ -312,4 +312,3 @@ main (int argc, char *argv[])
 
   return g_test_run ();
 }
-
index ff13ad1..159203e 100644 (file)
@@ -784,5 +784,3 @@ main (int argc, char** argv)
 
   return g_test_run ();
 }
-
-
index ebbd965..44e5015 100644 (file)
@@ -94,4 +94,3 @@ main (int argc, char *argv[])
 
   return g_test_run ();
 }
-
index 0c84e32..46c54e8 100644 (file)
@@ -1110,7 +1110,7 @@ test_stdio_wrappers (void)
 
 /* Win32 does not support "wb+", but g_fopen() should automatically
  * translate this mode to its alias "w+b".
- * Also check various other file open modes for correct support accross
+ * Also check various other file open modes for correct support across
  * platforms.
  * See: https://gitlab.gnome.org/GNOME/glib/merge_requests/119
  */
index a09ce71..c88b411 100644 (file)
@@ -152,7 +152,7 @@ test_GDateTime_new_from_unix (void)
   g_date_time_unref (dt);
 }
 
-/* Check that trying to create a #GDateTime too far in the future (or past) reliably
+/* Check that trying to create a #GDateTime too far in the future reliably
  * fails. Previously, the checks for this overflowed and it silently returned
  * an incorrect #GDateTime. */
 static void
@@ -167,12 +167,6 @@ test_GDateTime_new_from_unix_overflow (void)
 
   dt = g_date_time_new_from_unix_local (G_MAXINT64);
   g_assert_null (dt);
-
-  dt = g_date_time_new_from_unix_utc (G_MININT64);
-  g_assert_null (dt);
-
-  dt = g_date_time_new_from_unix_local (G_MININT64);
-  g_assert_null (dt);
 }
 
 static void
index 5f139a8..711c34e 100644 (file)
@@ -92,4 +92,3 @@ int main (int argc, char *argv[])
 
   return g_test_run ();
 }
-
index 0adb1bb..5620c24 100644 (file)
@@ -471,23 +471,26 @@ test_delete_link (void)
 static void
 test_prepend (void)
 {
+  gpointer a = "a";
+  gpointer b = "b";
+  gpointer c = "c";
   GList *l, *l2;
 
   l = NULL;
-  l = g_list_prepend (l, "c");
-  l = g_list_prepend (l, "a");
+  l = g_list_prepend (l, c);
+  l = g_list_prepend (l, a);
 
-  g_assert (l->data == (gpointer)"a");
-  g_assert (l->next->data == (gpointer)"c");
+  g_assert (l->data == a);
+  g_assert (l->next->data == c);
   g_assert (l->next->next == NULL);
 
   l2 = l->next;
-  l2 = g_list_prepend (l2, "b");
+  l2 = g_list_prepend (l2, b);
   g_assert (l2->prev == l);
 
-  g_assert (l->data == (gpointer)"a");
-  g_assert (l->next->data == (gpointer)"b");
-  g_assert (l->next->next->data == (gpointer)"c");
+  g_assert (l->data == a);
+  g_assert (l->next->data == b);
+  g_assert (l->next->next->data == c);
   g_assert (l->next->next->next == NULL);
 
   g_list_free (l);
index 7ec4df9..2d5de85 100644 (file)
@@ -37,6 +37,9 @@ static EscapeTest escape_tests[] =
   { "N\xc2\x80N", "N&#x80;N" },
   { "N\xc2\x79N", "N\xc2\x79N" },
   { "N\xc2\x9fN", "N&#x9f;N" },
+
+  /* As per g_markup_escape_text()'s documentation, whitespace is not escaped: */
+  { "\t", "\t" },
 };
 
 static void
index d0f4686..00742d7 100644 (file)
@@ -346,4 +346,3 @@ main (int argc, char *argv[])
 
   return g_test_run ();
 }
-
diff --git a/glib/tests/markups/valid-17.expected b/glib/tests/markups/valid-17.expected
new file mode 100644 (file)
index 0000000..b042f4d
--- /dev/null
@@ -0,0 +1,6 @@
+ELEMENT 'foo'
+tab=" "
+END 'foo'
+ELEMENT 'bar'
+tab_character_reference="      "
+END 'bar'
diff --git a/glib/tests/markups/valid-17.gmarkup b/glib/tests/markups/valid-17.gmarkup
new file mode 100644 (file)
index 0000000..255b2f4
--- /dev/null
@@ -0,0 +1,2 @@
+<foo tab="     " />
+<bar tab_character_reference="&#9;" />
index 3dedafc..8da477d 100644 (file)
@@ -47,7 +47,10 @@ glib_tests = {
   'markup-collect' : {},
   'markup-escape' : {},
   'markup-subparser' : {},
-  'mem-overflow' : {},
+  'mem-overflow' : {
+    'link_args' : cc.get_id() == 'gcc' and cc.version().version_compare('> 6')
+      ? ['-Wno-alloc-size-larger-than'] : [],
+  },
   'mutex' : {},
   'node' : {},
   'once' : {},
@@ -220,6 +223,7 @@ foreach test_name, extra_args : glib_tests
 
   exe = executable(test_name, source,
     c_args : test_cargs + extra_args.get('c_args', []),
+    link_args : extra_args.get('link_args', []),
     dependencies : test_deps + extra_args.get('dependencies', []),
     install_dir: installed_tests_execdir,
     install: install,
index db42e8c..a62b95f 100644 (file)
@@ -513,4 +513,3 @@ main (int   argc,
 
   return g_test_run ();
 }
-
index b11e577..9e6b858 100644 (file)
@@ -34,11 +34,13 @@ do_once (gpointer data)
 }
 
 static void
-test_once1 (void)
+test_once_single_threaded (void)
 {
   GOnce once = G_ONCE_INIT;
   gpointer res;
 
+  g_test_summary ("Test g_once() usage from a single thread");
+
   g_assert (once.status == G_ONCE_STATUS_NOTCALLED);
 
   res = g_once (&once, do_once, NULL);
@@ -50,11 +52,80 @@ test_once1 (void)
   g_assert_cmpint (GPOINTER_TO_INT (res), ==, 1);
 }
 
+static GOnce once_multi_threaded = G_ONCE_INIT;
+static gint once_multi_threaded_counter = 0;
+static GCond once_multi_threaded_cond;
+static GMutex once_multi_threaded_mutex;
+static guint once_multi_threaded_n_threads_waiting = 0;
+
+static gpointer
+do_once_multi_threaded (gpointer data)
+{
+  gint old_value;
+
+  /* While this function should only ever be executed once, by one thread,
+   * we should use atomics to ensure that if there were a bug, writes to
+   * `once_multi_threaded_counter` from multiple threads would not get lost and
+   * mean the test erroneously succeeded. */
+  old_value = g_atomic_int_add (&once_multi_threaded_counter, 1);
+
+  return GINT_TO_POINTER (old_value + 1);
+}
+
+static gpointer
+once_thread_func (gpointer data)
+{
+  gpointer res;
+  guint n_threads_expected = GPOINTER_TO_UINT (data);
+
+  /* Don’t immediately call g_once(), otherwise the first thread to be created
+   * will end up calling the once-function, and there will be very little
+   * contention. */
+  g_mutex_lock (&once_multi_threaded_mutex);
+
+  once_multi_threaded_n_threads_waiting++;
+  g_cond_broadcast (&once_multi_threaded_cond);
+
+  while (once_multi_threaded_n_threads_waiting < n_threads_expected)
+    g_cond_wait (&once_multi_threaded_cond, &once_multi_threaded_mutex);
+  g_mutex_unlock (&once_multi_threaded_mutex);
+
+  /* Actually run the test. */
+  res = g_once (&once_multi_threaded, do_once_multi_threaded, NULL);
+  g_assert_cmpint (GPOINTER_TO_INT (res), ==, 1);
+
+  return NULL;
+}
+
+static void
+test_once_multi_threaded (void)
+{
+  guint i;
+  GThread *threads[1000];
+
+  g_test_summary ("Test g_once() usage from multiple threads");
+
+  for (i = 0; i < G_N_ELEMENTS (threads); i++)
+    threads[i] = g_thread_new ("once-multi-threaded",
+                               once_thread_func,
+                               GUINT_TO_POINTER (G_N_ELEMENTS (threads)));
+
+  /* All threads have started up, so start the test. */
+  g_cond_broadcast (&once_multi_threaded_cond);
+
+  for (i = 0; i < G_N_ELEMENTS (threads); i++)
+    g_thread_join (threads[i]);
+
+  g_assert_cmpint (g_atomic_int_get (&once_multi_threaded_counter), ==, 1);
+}
+
 static void
-test_once2 (void)
+test_once_init_single_threaded (void)
 {
   static gsize init = 0;
 
+  g_test_summary ("Test g_once_init_{enter,leave}() usage from a single thread");
+
   if (g_once_init_enter (&init))
     {
       g_assert (TRUE);
@@ -96,15 +167,17 @@ thread_func (gpointer data)
 }
 
 static void
-test_once3 (void)
+test_once_init_multi_threaded (void)
 {
   gint i;
   GThread *threads[THREADS];
 
+  g_test_summary ("Test g_once_init_{enter,leave}() usage from multiple threads");
+
   shared = 0;
 
   for (i = 0; i < THREADS; i++)
-    threads[i] = g_thread_new ("once3", thread_func, NULL);
+    threads[i] = g_thread_new ("once-init-multi-threaded", thread_func, NULL);
 
   for (i = 0; i < THREADS; i++)
     g_thread_join (threads[i]);
@@ -113,10 +186,12 @@ test_once3 (void)
 }
 
 static void
-test_once4 (void)
+test_once_init_string (void)
 {
   static const gchar *val;
 
+  g_test_summary ("Test g_once_init_{enter,leave}() usage with a string");
+
   if (g_once_init_enter (&val))
     g_once_init_leave (&val, "foo");
 
@@ -128,10 +203,11 @@ main (int argc, char *argv[])
 {
   g_test_init (&argc, &argv, NULL);
 
-  g_test_add_func ("/thread/once1", test_once1);
-  g_test_add_func ("/thread/once2", test_once2);
-  g_test_add_func ("/thread/once3", test_once3);
-  g_test_add_func ("/thread/once4", test_once4);
+  g_test_add_func ("/once/single-threaded", test_once_single_threaded);
+  g_test_add_func ("/once/multi-threaded", test_once_multi_threaded);
+  g_test_add_func ("/once-init/single-threaded", test_once_init_single_threaded);
+  g_test_add_func ("/once-init/multi-threaded", test_once_init_multi_threaded);
+  g_test_add_func ("/once-init/string", test_once_init_string);
 
   return g_test_run ();
 }
index 5b626df..ce36097 100644 (file)
@@ -57,7 +57,7 @@ test_platform_argv0 (void)
    * how it does (the test code itself doesn't use any platform-specific
    * functionality, the difference is internal to glib, so it's quite
    * possible to run this test everywhere - it just won't pass on some
-   * platforms). Make errors non-fatal on these other plaforms,
+   * platforms). Make errors non-fatal on these other platforms,
    * to prevent them from crashing hard on failed assertions,
    * and make them call g_test_skip() instead.
    */
index f3fc21f..2f3f9e8 100644 (file)
@@ -238,5 +238,3 @@ main (int argc, char** argv)
 
   return g_test_run ();
 }
-
-
index 4d58eec..edfadb5 100644 (file)
@@ -114,4 +114,3 @@ main (int   argc,
 
   return g_test_run ();
 }
-
index ee9cd21..56bd2d5 100644 (file)
@@ -2321,7 +2321,7 @@ main (int argc, char *argv[])
   TEST_NEW_FAIL ("(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEFG)XX", 0, G_REGEX_ERROR_NAME_TOO_LONG);
   TEST_NEW_FAIL ("\\u0100", G_REGEX_RAW | G_REGEX_JAVASCRIPT_COMPAT, G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE);
 
-  /* These errors can't really be tested easily:
+  /* These errors can't really be tested sanely:
    * G_REGEX_ERROR_EXPRESSION_TOO_LARGE
    * G_REGEX_ERROR_MEMORY_ERROR
    * G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG
index 54926d5..7478a29 100644 (file)
@@ -7,74 +7,120 @@ typedef struct
 {
   const gchar *string;
   const gchar *prefix;
+  const gchar *locale;
   gboolean should_match;
 } SearchTest;
 
+/* Test word separators and case */
+SearchTest basic[] = {
+  { "Hello World", "he", "C", TRUE },
+  { "Hello World", "wo", "C", TRUE },
+  { "Hello World", "lo", "C", FALSE },
+  { "Hello World", "ld", "C", FALSE },
+  { "Hello-World", "wo", "C", TRUE },
+  { "HelloWorld", "wo", "C", FALSE },
+  { NULL, NULL, NULL, FALSE }
+};
+
+/* Test composed chars (accentued letters) */
+SearchTest composed[] = {
+  { "Jörgen", "jor", "sv_SE.UTF-8", TRUE },
+  { "Gaëtan", "gaetan", "fr_FR.UTF-8", TRUE },
+  { "élève", "ele", "fr_FR.UTF-8", TRUE },
+  { "Azais", "AzaÏs", "fr_FR.UTF-8", FALSE },
+  { "AzaÏs", "Azais", "fr_FR.UTF-8", TRUE },
+  { NULL, NULL, NULL, FALSE }
+};
+
+/* Test decomposed chars, they looks the same, but are actually
+ * composed of multiple unicodes */
+SearchTest decomposed[] = {
+  { "Jorgen", "Jör", "sv_SE.UTF-8", FALSE },
+  { "Jörgen", "jor", "sv_SE.UTF-8", TRUE },
+  { NULL, NULL, NULL, FALSE }
+};
+
+/* Turkish special case */
+SearchTest turkish[] = {
+  { "İstanbul", "ist", "tr_TR.UTF-8", TRUE },
+  { "Diyarbakır", "diyarbakir", "tr_TR.UTF-8", TRUE },
+  { NULL, NULL, NULL, FALSE }
+};
+
+/* Test unicode chars when no locale is available */
+SearchTest c_locale_unicode[] = {
+  { "Jörgen", "jor", "C", TRUE },
+  { "Jorgen", "Jör", "C", FALSE },
+  { "Jörgen", "jor", "C", TRUE },
+  { NULL, NULL, NULL, FALSE }
+};
+
+/* Multi words */
+SearchTest multi_words[] = {
+  { "Xavier Claessens", "Xav Cla", "C", TRUE },
+  { "Xavier Claessens", "Cla Xav", "C", TRUE },
+  { "Foo Bar Baz", "   b  ", "C", TRUE },
+  { "Foo Bar Baz", "bar bazz", "C", FALSE },
+  { NULL, NULL, NULL, FALSE }
+};
+
 static void
-test_search (void)
+test_search (gconstpointer d)
 {
-  SearchTest tests[] =
-    {
-      /* Test word separators and case */
-      { "Hello World", "he", TRUE },
-      { "Hello World", "wo", TRUE },
-      { "Hello World", "lo", FALSE },
-      { "Hello World", "ld", FALSE },
-      { "Hello-World", "wo", TRUE },
-      { "HelloWorld", "wo", FALSE },
-
-      /* Test composed chars (accentued letters) */
-      { "Jörgen", "jor", TRUE },
-      { "Gaëtan", "gaetan", TRUE },
-      { "élève", "ele", TRUE },
-      { "Azais", "AzaÏs", FALSE },
-      { "AzaÏs", "Azais", TRUE },
-
-      /* Test decomposed chars, they looks the same, but are actually
-       * composed of multiple unicodes */
-      { "Jorgen", "Jör", FALSE },
-      { "Jörgen", "jor", TRUE },
-
-      /* Turkish special case */
-      { "İstanbul", "ist", TRUE },
-      { "Diyarbakır", "diyarbakir", TRUE },
-
-      /* Multi words */
-      { "Xavier Claessens", "Xav Cla", TRUE },
-      { "Xavier Claessens", "Cla Xav", TRUE },
-      { "Foo Bar Baz", "   b  ", TRUE },
-      { "Foo Bar Baz", "bar bazz", FALSE },
-
-      { NULL, NULL, FALSE }
-    };
+  const SearchTest *tests = d;
   guint i;
-
-  setlocale(LC_ALL, "");
+  gboolean all_skipped = TRUE;
 
   g_debug ("Started");
-  for (i = 0; tests[i].string != NULL; i ++)
+
+  for (i = 0; tests[i].string != NULL; i++)
     {
       gboolean match;
       gboolean ok;
-
-      match = g_str_match_string (tests[i].prefix, tests[i].string, TRUE);
-      ok = (match == tests[i].should_match);
+      gboolean skipped;
+
+      if (setlocale (LC_ALL, tests[i].locale))
+        {
+          skipped = FALSE;
+          all_skipped = FALSE;
+          match = g_str_match_string (tests[i].prefix, tests[i].string, TRUE);
+          ok = (match == tests[i].should_match);
+        }
+      else
+        {
+          skipped = TRUE;
+          g_test_message ("Locale '%s' is unavailable", tests[i].locale);
+        }
 
       g_debug ("'%s' - '%s' %s: %s", tests[i].prefix, tests[i].string,
           tests[i].should_match ? "should match" : "should NOT match",
-          ok ? "OK" : "FAILED");
+          skipped ? "SKIPPED" : ok ? "OK" : "FAILED");
 
-      g_assert (ok);
+      g_assert (skipped || ok);
     }
+
+  if (all_skipped)
+    g_test_skip ("No locales for the test set are available");
 }
 
 int
 main (int argc,
       char **argv)
 {
+  gchar *user_locale;
+
   g_test_init (&argc, &argv, NULL);
 
-  g_test_add_func ("/search", test_search);
+  setlocale (LC_ALL, "");
+  user_locale = setlocale (LC_ALL, NULL);
+  g_debug ("Current user locale: %s", user_locale);
+
+  g_test_add_data_func ("/search/basic", basic, test_search);
+  g_test_add_data_func ("/search/composed", composed, test_search);
+  g_test_add_data_func ("/search/decomposed", decomposed, test_search);
+  g_test_add_data_func ("/search/turkish", turkish, test_search);
+  g_test_add_data_func ("/search/c_locale_unicode", c_locale_unicode, test_search);
+  g_test_add_data_func ("/search/multi_words", multi_words, test_search);
 
   return g_test_run ();
 }
index 8e74d09..db7d2a5 100644 (file)
@@ -1416,4 +1416,3 @@ main (int argc,
 
   return g_test_run ();
 }
-
index 1f81743..7c17573 100644 (file)
@@ -249,6 +249,9 @@ test_slist_remove_all (void)
 static void
 test_slist_insert (void)
 {
+  gpointer a = "a";
+  gpointer b = "b";
+  gpointer c = "c";
   GSList *slist = NULL;
   GSList *st;
   gint   nums[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
@@ -274,23 +277,23 @@ test_slist_insert (void)
 
   g_slist_free (slist);
 
-  slist = g_slist_insert (NULL, "a", 1);
-  g_assert (slist->data == (gpointer)"a");
+  slist = g_slist_insert (NULL, a, 1);
+  g_assert (slist->data == a);
   g_assert (slist->next == NULL);
   g_slist_free (slist);
 
-  slist = g_slist_append (NULL, "a");
-  slist = g_slist_append (slist, "b");
-  slist = g_slist_insert (slist, "c", 5);
+  slist = g_slist_append (NULL, a);
+  slist = g_slist_append (slist, b);
+  slist = g_slist_insert (slist, c, 5);
 
-  g_assert (slist->next->next->data == (gpointer)"c");
+  g_assert (slist->next->next->data == c);
   g_assert (slist->next->next->next == NULL);
   g_slist_free (slist);
 
-  slist = g_slist_append (NULL, "a");
-  slist = g_slist_insert_before (slist, slist, "b");
-  g_assert (slist->data == (gpointer)"b");
-  g_assert (slist->next->data == (gpointer)"a");
+  slist = g_slist_append (NULL, a);
+  slist = g_slist_insert_before (slist, slist, b);
+  g_assert (slist->data == b);
+  g_assert (slist->next->data == a);
   g_assert (slist->next->next == NULL);
   g_slist_free (slist);
 }
@@ -334,17 +337,19 @@ test_slist_position (void)
 static void
 test_slist_concat (void)
 {
+  gpointer a = "a";
+  gpointer b = "b";
   GSList *s1, *s2, *s;
 
-  s1 = g_slist_append (NULL, "a");
-  s2 = g_slist_append (NULL, "b");
+  s1 = g_slist_append (NULL, a);
+  s2 = g_slist_append (NULL, b);
   s = g_slist_concat (s1, s2);
-  g_assert (s->data == (gpointer)"a");
-  g_assert (s->next->data == (gpointer)"b");
+  g_assert (s->data == a);
+  g_assert (s->next->data == b);
   g_assert (s->next->next == NULL);
   g_slist_free (s);
 
-  s1 = g_slist_append (NULL, "a");
+  s1 = g_slist_append (NULL, a);
 
   s = g_slist_concat (NULL, s1);
   g_assert_cmpint (g_slist_length (s), ==, 1);
index 7aa27c8..c2923b9 100644 (file)
@@ -125,4 +125,3 @@ main (int argc, char *argv[])
 
   return g_test_run ();
 }
-
index ab449eb..15f03a0 100644 (file)
@@ -166,7 +166,7 @@ test_spawn_async (void)
  * Routine if the file descriptor does not exist.
  */
 static void
-safe_close (int fd)
+sane_close (int fd)
 {
   if (fd >= 0)
     close (fd);
@@ -252,10 +252,10 @@ test_spawn_async_with_fds (void)
                              test_pipe[0][0], test_pipe[1][1], test_pipe[2][1],
                              &error);
       g_assert_no_error (error);
-      safe_close (test_pipe[0][0]);
-      safe_close (test_pipe[1][1]);
+      sane_close (test_pipe[0][0]);
+      sane_close (test_pipe[1][1]);
       if (fd_info[2] != STDOUT_PIPE)
-        safe_close (test_pipe[2][1]);
+        sane_close (test_pipe[2][1]);
 
       data.loop = loop;
       data.stdout_done = FALSE;
@@ -297,10 +297,10 @@ test_spawn_async_with_fds (void)
 
       g_main_context_unref (context);
       g_main_loop_unref (loop);
-      safe_close (test_pipe[0][1]);
-      safe_close (test_pipe[1][0]);
+      sane_close (test_pipe[0][1]);
+      sane_close (test_pipe[1][0]);
       if (fd_info[2] != STDOUT_PIPE)
-        safe_close (test_pipe[2][0]);
+        sane_close (test_pipe[2][0]);
     }
 
   g_ptr_array_free (argv, TRUE);
index 486ae6d..dd11074 100644 (file)
@@ -413,7 +413,7 @@ test_f (void)
   gchar buf[128];
   gint res;
 
-  /* %f, basic formattting */
+  /* %f, basic formatting */
 
   res = g_snprintf (buf, 128, "%f", G_PI);
   g_assert_cmpint (res, ==, 8);
index d0ce2c1..ed4c8d6 100644 (file)
@@ -108,6 +108,27 @@ test_assertions_bad_cmpfloat_epsilon (void)
   exit (0);
 }
 
+/* Emulates something like rmdir() failing. */
+static int
+return_errno (void)
+{
+  errno = ERANGE;  /* arbitrary non-zero value */
+  return -1;
+}
+
+/* Emulates something like rmdir() succeeding. */
+static int
+return_no_errno (void)
+{
+  return 0;
+}
+
+static void
+test_assertions_bad_no_errno (void)
+{
+  g_assert_no_errno (return_errno ());
+}
+
 static void
 test_assertions (void)
 {
@@ -137,6 +158,7 @@ test_assertions (void)
   g_assert_cmpmem (NULL, 0, NULL, 0);
   g_assert_cmpmem (NULL, 0, "foot", 0);
   g_assert_cmpmem ("foo", 0, NULL, 0);
+  g_assert_no_errno (return_no_errno ());
 
   v1 = g_variant_new_parsed ("['hello', 'there']");
   v2 = g_variant_new_parsed ("['hello', 'there']");
@@ -179,6 +201,10 @@ test_assertions (void)
   g_test_trap_subprocess ("/misc/assertions/subprocess/bad_cmpfloat_epsilon", 0, 0);
   g_test_trap_assert_failed ();
   g_test_trap_assert_stderr ("*assertion failed*");
+
+  g_test_trap_subprocess ("/misc/assertions/subprocess/bad_no_errno", 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*assertion failed*");
 }
 
 /* test g_test_timer* API */
@@ -1282,6 +1308,7 @@ main (int   argc,
   g_test_add_func ("/misc/assertions/subprocess/bad_cmpmem_data", test_assertions_bad_cmpmem_data);
   g_test_add_func ("/misc/assertions/subprocess/bad_cmpmem_null", test_assertions_bad_cmpmem_null);
   g_test_add_func ("/misc/assertions/subprocess/bad_cmpfloat_epsilon", test_assertions_bad_cmpfloat_epsilon);
+  g_test_add_func ("/misc/assertions/subprocess/bad_no_errno", test_assertions_bad_no_errno);
   g_test_add_data_func ("/misc/test-data", (void*) 0xc0c0baba, test_data_test);
   g_test_add ("/misc/primetoul", Fixturetest, (void*) 0xc0cac01a, fixturetest_setup, fixturetest_test, fixturetest_teardown);
   if (g_test_perf())
index a00e9ab..b7c79c4 100644 (file)
@@ -463,4 +463,3 @@ main (int argc, char *argv[])
 
   return g_test_run ();
 }
-
index abfe9c9..d42cf7a 100644 (file)
@@ -331,6 +331,10 @@ test_unichar_script (void)
     { G_UNICODE_SCRIPT_NANDINAGARI,            0x119A0 },
     { G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG, 0x1E100 },
     { G_UNICODE_SCRIPT_WANCHO,                 0x1E2C0 },
+    { G_UNICODE_SCRIPT_CHORASMIAN,             0x10FB0 },
+    { G_UNICODE_SCRIPT_DIVES_AKURU,            0x11900 },
+    { G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT,    0x18B00 },
+    { G_UNICODE_SCRIPT_YEZIDI,                 0x10E80 },
   };
   for (i = 0; i < G_N_ELEMENTS (examples); i++)
     g_assert_cmpint (g_unichar_get_script (examples[i].c), ==, examples[i].script);
@@ -1567,6 +1571,12 @@ test_iso15924 (void)
     { G_UNICODE_SCRIPT_NANDINAGARI,            "Nand" },
     { G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG, "Hmnp" },
     { G_UNICODE_SCRIPT_WANCHO,                 "Wcho" },
+
+    /* Unicode 13.0 additions */
+    { G_UNICODE_SCRIPT_CHORASMIAN,             "Chrs" },
+    { G_UNICODE_SCRIPT_DIVES_AKURU,            "Diak" },
+    { G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT,    "Kits" },
+    { G_UNICODE_SCRIPT_YEZIDI,                 "Yezi" },
   };
   guint i;
 
index a6ba4e2..97e5887 100644 (file)
@@ -112,13 +112,13 @@ static void
 test_veh_debug (void)
 {
   /* Run a test that crashes and runs a debugger */
-  g_test_trap_subprocess ("/win32/subprocess/debugee", 0, 0);
+  g_test_trap_subprocess ("/win32/subprocess/debuggee", 0, 0);
   g_test_trap_assert_failed ();
   g_test_trap_assert_stderr ("Exception code=0xc0000005*Debugger invoked, attaching to*");
 }
 
 static void
-test_veh_debugee (void)
+test_veh_debuggee (void)
 {
   /* Set up a debugger to be run on crash */
   gchar *command = g_strdup_printf ("%s %s", argv0, "%p %e");
@@ -139,7 +139,7 @@ veh_debugger (int argc, char *argv[])
   char *end;
   DWORD pid = strtoul (argv[1], &end, 10);
   guintptr event = (guintptr) _strtoui64 (argv[2], &end, 10);
-  /* Unfreeze the debugee and announce ourselves */
+  /* Unfreeze the debuggee and announce ourselves */
   SetEvent ((HANDLE) event);
   CloseHandle ((HANDLE) event);
   g_fprintf (stderr, "Debugger invoked, attaching to %lu and signalling %" G_GUINTPTR_FORMAT, pid, event);
@@ -165,7 +165,7 @@ main (int   argc,
   g_test_add_func ("/win32/veh/illegal_instruction", test_veh_crash_illegal_instruction);
   g_test_add_func ("/win32/veh/debug", test_veh_debug);
 
-  g_test_add_func ("/win32/subprocess/debugee", test_veh_debugee);
+  g_test_add_func ("/win32/subprocess/debuggee", test_veh_debuggee);
   g_test_add_func ("/win32/subprocess/access_violation", test_access_violation);
   g_test_add_func ("/win32/subprocess/illegal_instruction", test_illegal_instruction);
 
index dece03d..0e558dd 100644 (file)
@@ -40,7 +40,7 @@ cd pcre
 # pcre_chartables.c is generated by dfatables.
 # We do not want to compile and execute dfatables.c every time, because
 # this could be a problem (e.g. when cross-compiling), so now generate
-# the file and then distribuite it with GRegex.
+# the file and then distribute it with GRegex.
 echo "Generating pcre_chartables.c"
 cp -R "${PCRE}" tmp-build
 cd tmp-build
index 30ccceb..a7f1f56 100644 (file)
@@ -89,7 +89,7 @@
         || (__VALGRIND_MAJOR__ == 3 && __VALGRIND_MINOR__ >= 6))
 */
 #define __VALGRIND_MAJOR__    3
-#define __VALGRIND_MINOR__    13
+#define __VALGRIND_MINOR__    15
 
 
 #include <stdarg.h>
       || defined(__CYGWIN32__) \
       || (defined(_WIN32) && defined(_M_IX86))
 #  define PLAT_x86_win32 1
-#elif (defined(__MINGW64__) && defined(__x86_64__)) \
-      || (defined(_WIN64) && defined(_M_X64))
+#elif (defined(__MINGW32__) && defined(__x86_64__)) \
+      || (defined(_WIN32) && defined(_M_X64))
+/* __MINGW32__ and _WIN32 are defined in 64 bit mode as well. */
 #  define PLAT_amd64_win64 1
 #elif defined(__linux__) && defined(__i386__)
 #  define PLAT_x86_linux 1
@@ -5687,15 +5688,17 @@ typedef
 "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
 "$25", "$31"
 
-/* These CALL_FN_ macros assume that on mips-linux, sizeof(unsigned
-   long) == 4. */
+/* These CALL_FN_ macros assume that on mips64-linux,
+   sizeof(long long) == 8. */
+
+#define MIPS64_LONG2REG_CAST(x) ((long long)(long)x)
 
 #define CALL_FN_W_v(lval, orig)                                   \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[1];                          \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
+      volatile unsigned long long _argvec[1];                     \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
       __asm__ volatile(                                           \
          "ld $25, 0(%1)\n\t"  /* target->t9 */                    \
          VALGRIND_CALL_NOREDIR_T9                                 \
@@ -5704,16 +5707,16 @@ typedef
          : /*in*/    "0" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_W(lval, orig, arg1)                             \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[2];                          \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
+      volatile unsigned long long _argvec[2];                     \
+      volatile unsigned long long  _res;                          \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
       __asm__ volatile(                                           \
          "ld $4, 8(%1)\n\t"   /* arg1*/                           \
          "ld $25, 0(%1)\n\t"  /* target->t9 */                    \
@@ -5723,17 +5726,17 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_WW(lval, orig, arg1,arg2)                       \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[3];                          \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
+      volatile unsigned long long _argvec[3];                     \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = _orig.nraddr;                                  \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
       __asm__ volatile(                                           \
          "ld $4, 8(%1)\n\t"                                       \
          "ld $5, 16(%1)\n\t"                                      \
@@ -5744,18 +5747,19 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
+
 #define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3)                 \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[4];                          \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
+      volatile unsigned long long _argvec[4];                     \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = _orig.nraddr;                                  \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
       __asm__ volatile(                                           \
          "ld $4, 8(%1)\n\t"                                       \
          "ld $5, 16(%1)\n\t"                                      \
@@ -5767,19 +5771,19 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4)           \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[5];                          \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
-      _argvec[4] = (unsigned long)(arg4);                         \
+      volatile unsigned long long _argvec[5];                     \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
+      _argvec[4] = MIPS64_LONG2REG_CAST(arg4);                    \
       __asm__ volatile(                                           \
          "ld $4, 8(%1)\n\t"                                       \
          "ld $5, 16(%1)\n\t"                                      \
@@ -5792,20 +5796,20 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5)        \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[6];                          \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
-      _argvec[4] = (unsigned long)(arg4);                         \
-      _argvec[5] = (unsigned long)(arg5);                         \
+      volatile unsigned long long _argvec[6];                     \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
+      _argvec[4] = MIPS64_LONG2REG_CAST(arg4);                    \
+      _argvec[5] = MIPS64_LONG2REG_CAST(arg5);                    \
       __asm__ volatile(                                           \
          "ld $4, 8(%1)\n\t"                                       \
          "ld $5, 16(%1)\n\t"                                      \
@@ -5819,21 +5823,21 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6)   \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[7];                          \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
-      _argvec[4] = (unsigned long)(arg4);                         \
-      _argvec[5] = (unsigned long)(arg5);                         \
-      _argvec[6] = (unsigned long)(arg6);                         \
+      volatile unsigned long long _argvec[7];                     \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
+      _argvec[4] = MIPS64_LONG2REG_CAST(arg4);                    \
+      _argvec[5] = MIPS64_LONG2REG_CAST(arg5);                    \
+      _argvec[6] = MIPS64_LONG2REG_CAST(arg6);                    \
       __asm__ volatile(                                           \
          "ld $4, 8(%1)\n\t"                                       \
          "ld $5, 16(%1)\n\t"                                      \
@@ -5848,23 +5852,23 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6,   \
                                  arg7)                            \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[8];                          \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
-      _argvec[4] = (unsigned long)(arg4);                         \
-      _argvec[5] = (unsigned long)(arg5);                         \
-      _argvec[6] = (unsigned long)(arg6);                         \
-      _argvec[7] = (unsigned long)(arg7);                         \
+      volatile unsigned long long _argvec[8];                     \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
+      _argvec[4] = MIPS64_LONG2REG_CAST(arg4);                    \
+      _argvec[5] = MIPS64_LONG2REG_CAST(arg5);                    \
+      _argvec[6] = MIPS64_LONG2REG_CAST(arg6);                    \
+      _argvec[7] = MIPS64_LONG2REG_CAST(arg7);                    \
       __asm__ volatile(                                           \
          "ld $4, 8(%1)\n\t"                                       \
          "ld $5, 16(%1)\n\t"                                      \
@@ -5880,24 +5884,24 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6,   \
                                  arg7,arg8)                       \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[9];                          \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
-      _argvec[4] = (unsigned long)(arg4);                         \
-      _argvec[5] = (unsigned long)(arg5);                         \
-      _argvec[6] = (unsigned long)(arg6);                         \
-      _argvec[7] = (unsigned long)(arg7);                         \
-      _argvec[8] = (unsigned long)(arg8);                         \
+      volatile unsigned long long _argvec[9];                     \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
+      _argvec[4] = MIPS64_LONG2REG_CAST(arg4);                    \
+      _argvec[5] = MIPS64_LONG2REG_CAST(arg5);                    \
+      _argvec[6] = MIPS64_LONG2REG_CAST(arg6);                    \
+      _argvec[7] = MIPS64_LONG2REG_CAST(arg7);                    \
+      _argvec[8] = MIPS64_LONG2REG_CAST(arg8);                    \
       __asm__ volatile(                                           \
          "ld $4, 8(%1)\n\t"                                       \
          "ld $5, 16(%1)\n\t"                                      \
@@ -5914,25 +5918,25 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6,   \
                                  arg7,arg8,arg9)                  \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[10];                         \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
-      _argvec[4] = (unsigned long)(arg4);                         \
-      _argvec[5] = (unsigned long)(arg5);                         \
-      _argvec[6] = (unsigned long)(arg6);                         \
-      _argvec[7] = (unsigned long)(arg7);                         \
-      _argvec[8] = (unsigned long)(arg8);                         \
-      _argvec[9] = (unsigned long)(arg9);                         \
+      volatile unsigned long long _argvec[10];                    \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
+      _argvec[4] = MIPS64_LONG2REG_CAST(arg4);                    \
+      _argvec[5] = MIPS64_LONG2REG_CAST(arg5);                    \
+      _argvec[6] = MIPS64_LONG2REG_CAST(arg6);                    \
+      _argvec[7] = MIPS64_LONG2REG_CAST(arg7);                    \
+      _argvec[8] = MIPS64_LONG2REG_CAST(arg8);                    \
+      _argvec[9] = MIPS64_LONG2REG_CAST(arg9);                    \
       __asm__ volatile(                                           \
          "dsubu $29, $29, 8\n\t"                                  \
          "ld $4, 72(%1)\n\t"                                      \
@@ -5953,26 +5957,26 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6,  \
                                   arg7,arg8,arg9,arg10)           \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[11];                         \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
-      _argvec[4] = (unsigned long)(arg4);                         \
-      _argvec[5] = (unsigned long)(arg5);                         \
-      _argvec[6] = (unsigned long)(arg6);                         \
-      _argvec[7] = (unsigned long)(arg7);                         \
-      _argvec[8] = (unsigned long)(arg8);                         \
-      _argvec[9] = (unsigned long)(arg9);                         \
-      _argvec[10] = (unsigned long)(arg10);                       \
+      volatile unsigned long long _argvec[11];                    \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
+      _argvec[4] = MIPS64_LONG2REG_CAST(arg4);                    \
+      _argvec[5] = MIPS64_LONG2REG_CAST(arg5);                    \
+      _argvec[6] = MIPS64_LONG2REG_CAST(arg6);                    \
+      _argvec[7] = MIPS64_LONG2REG_CAST(arg7);                    \
+      _argvec[8] = MIPS64_LONG2REG_CAST(arg8);                    \
+      _argvec[9] = MIPS64_LONG2REG_CAST(arg9);                    \
+      _argvec[10] = MIPS64_LONG2REG_CAST(arg10);                  \
       __asm__ volatile(                                           \
          "dsubu $29, $29, 16\n\t"                                 \
          "ld $4, 72(%1)\n\t"                                      \
@@ -5995,7 +5999,7 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,       \
@@ -6003,20 +6007,20 @@ typedef
                                   arg11)                          \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[12];                         \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
-      _argvec[4] = (unsigned long)(arg4);                         \
-      _argvec[5] = (unsigned long)(arg5);                         \
-      _argvec[6] = (unsigned long)(arg6);                         \
-      _argvec[7] = (unsigned long)(arg7);                         \
-      _argvec[8] = (unsigned long)(arg8);                         \
-      _argvec[9] = (unsigned long)(arg9);                         \
-      _argvec[10] = (unsigned long)(arg10);                       \
-      _argvec[11] = (unsigned long)(arg11);                       \
+      volatile unsigned long long _argvec[12];                    \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
+      _argvec[4] = MIPS64_LONG2REG_CAST(arg4);                    \
+      _argvec[5] = MIPS64_LONG2REG_CAST(arg5);                    \
+      _argvec[6] = MIPS64_LONG2REG_CAST(arg6);                    \
+      _argvec[7] = MIPS64_LONG2REG_CAST(arg7);                    \
+      _argvec[8] = MIPS64_LONG2REG_CAST(arg8);                    \
+      _argvec[9] = MIPS64_LONG2REG_CAST(arg9);                    \
+      _argvec[10] = MIPS64_LONG2REG_CAST(arg10);                  \
+      _argvec[11] = MIPS64_LONG2REG_CAST(arg11);                  \
       __asm__ volatile(                                           \
          "dsubu $29, $29, 24\n\t"                                 \
          "ld $4, 72(%1)\n\t"                                      \
@@ -6041,7 +6045,7 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,       \
@@ -6049,21 +6053,21 @@ typedef
                                   arg11,arg12)                    \
    do {                                                           \
       volatile OrigFn        _orig = (orig);                      \
-      volatile unsigned long _argvec[13];                         \
-      volatile unsigned long _res;                                \
-      _argvec[0] = (unsigned long)_orig.nraddr;                   \
-      _argvec[1] = (unsigned long)(arg1);                         \
-      _argvec[2] = (unsigned long)(arg2);                         \
-      _argvec[3] = (unsigned long)(arg3);                         \
-      _argvec[4] = (unsigned long)(arg4);                         \
-      _argvec[5] = (unsigned long)(arg5);                         \
-      _argvec[6] = (unsigned long)(arg6);                         \
-      _argvec[7] = (unsigned long)(arg7);                         \
-      _argvec[8] = (unsigned long)(arg8);                         \
-      _argvec[9] = (unsigned long)(arg9);                         \
-      _argvec[10] = (unsigned long)(arg10);                       \
-      _argvec[11] = (unsigned long)(arg11);                       \
-      _argvec[12] = (unsigned long)(arg12);                       \
+      volatile unsigned long long _argvec[13];                    \
+      volatile unsigned long long _res;                           \
+      _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr);            \
+      _argvec[1] = MIPS64_LONG2REG_CAST(arg1);                    \
+      _argvec[2] = MIPS64_LONG2REG_CAST(arg2);                    \
+      _argvec[3] = MIPS64_LONG2REG_CAST(arg3);                    \
+      _argvec[4] = MIPS64_LONG2REG_CAST(arg4);                    \
+      _argvec[5] = MIPS64_LONG2REG_CAST(arg5);                    \
+      _argvec[6] = MIPS64_LONG2REG_CAST(arg6);                    \
+      _argvec[7] = MIPS64_LONG2REG_CAST(arg7);                    \
+      _argvec[8] = MIPS64_LONG2REG_CAST(arg8);                    \
+      _argvec[9] = MIPS64_LONG2REG_CAST(arg9);                    \
+      _argvec[10] = MIPS64_LONG2REG_CAST(arg10);                  \
+      _argvec[11] = MIPS64_LONG2REG_CAST(arg11);                  \
+      _argvec[12] = MIPS64_LONG2REG_CAST(arg12);                  \
       __asm__ volatile(                                           \
          "dsubu $29, $29, 32\n\t"                                 \
          "ld $4, 72(%1)\n\t"                                      \
@@ -6090,7 +6094,7 @@ typedef
          : /*in*/    "r" (&_argvec[0])                            \
          : /*trash*/ "memory", __CALLER_SAVED_REGS                \
       );                                                          \
-      lval = (__typeof__(lval)) _res;                             \
+      lval = (__typeof__(lval)) (long)_res;                       \
    } while (0)
 
 #endif /* PLAT_mips64_linux */
index fab1513..bb2df68 100644 (file)
@@ -29,7 +29,7 @@
 
 #include <dlfcn.h>
 
-/* Perl includes <nlist.h> and <link.h> instead of <dlfcn.h> on some systmes? */
+/* Perl includes <nlist.h> and <link.h> instead of <dlfcn.h> on some systems? */
 
 
 /* dlerror() is not implemented on all systems
index 2aea8ba..fef4d89 100644 (file)
@@ -131,20 +131,7 @@ find_in_any_module_using_toolhelp (const gchar *symbol_name)
   /* Under UWP, Module32Next and Module32First are not available since we're
    * not allowed to search in the address space of arbitrary loaded DLLs */
 #if !defined(G_WINAPI_ONLY_APP)
-  /* https://docs.microsoft.com/en-us/windows/win32/api/tlhelp32/nf-tlhelp32-createtoolhelp32snapshot#remarks
-   * If the function fails with ERROR_BAD_LENGTH, retry the function until it succeeds. */
-  while (TRUE)
-    {
-      snapshot = CreateToolhelp32Snapshot (TH32CS_SNAPMODULE, 0);
-      if (snapshot == INVALID_HANDLE_VALUE && GetLastError () == ERROR_BAD_LENGTH)
-        {
-          g_thread_yield ();
-          continue;
-        }
-      break;
-    }
-
-  if (snapshot == INVALID_HANDLE_VALUE)
+  if ((snapshot = CreateToolhelp32Snapshot (TH32CS_SNAPMODULE, 0)) == (HANDLE) -1)
     return NULL;
 
   me32.dwSize = sizeof (me32);
index e71b07e..3c67e2e 100644 (file)
 
 /* We maintain a list of modules, so we can reference count them.
  * That's needed because some platforms don't support references counts on
- * modules. Also, the module for the program itself is kept seperately for
+ * modules. Also, the module for the program itself is kept separately for
  * faster access and because it has special semantics.
  */
 
@@ -276,7 +276,7 @@ g_module_set_error (const gchar *error)
 }
 
 
-/* --- include platform specifc code --- */
+/* --- include platform specific code --- */
 #define        SUPPORT_OR_RETURN(rv)   { g_module_set_error (NULL); }
 #if    (G_MODULE_IMPL == G_MODULE_IMPL_DL)
 #include "gmodule-dl.c"
index 8982f59..486684d 100644 (file)
@@ -101,7 +101,7 @@ const gchar *         g_module_name          (GModule      *module);
  * directory where the module file is supposed to be, or NULL or empty
  * in which case it should either be in the current directory or, on
  * some operating systems, in some standard place, for instance on the
- * PATH. Hence, to be absoultely sure to get the correct module,
+ * PATH. Hence, to be absolutely sure to get the correct module,
  * always pass in a directory. The file name consists of the directory,
  * if supplied, and 'module_name' suitably decorated according to
  * the operating system's conventions (for instance lib*.so or *.dll).
index 9801c94..b1a5a11 100644 (file)
@@ -120,3 +120,9 @@ pkg.generate(libraries : [libgmodule, export_dynamic_ldflags],
 libgmodule_dep = declare_dependency(link_with : libgmodule,
   include_directories : [gmoduleinc],
   dependencies : [libglib_dep])
+
+if meson.version().version_compare('>=0.54.0')
+  meson.override_dependency('gmodule-no-export-2.0', libgmodule_dep)
+  meson.override_dependency('gmodule-export-2.0', libgmodule_dep)
+  meson.override_dependency('gmodule-2.0', libgmodule_dep)
+endif
index 12475bc..015889b 100644 (file)
@@ -540,7 +540,7 @@ g_binding_get_property (GObject    *gobject,
 
     case PROP_SOURCE_PROPERTY:
       /* @source_property is interned, so we don’t need to take a copy */
-      g_value_set_static_string (value, binding->source_property);
+      g_value_set_interned_string (value, binding->source_property);
       break;
 
     case PROP_TARGET:
@@ -549,7 +549,7 @@ g_binding_get_property (GObject    *gobject,
 
     case PROP_TARGET_PROPERTY:
       /* @target_property is interned, so we don’t need to take a copy */
-      g_value_set_static_string (value, binding->target_property);
+      g_value_set_interned_string (value, binding->target_property);
       break;
 
     case PROP_FLAGS:
index 87cc5d2..a4c2c38 100644 (file)
@@ -256,8 +256,7 @@ boxed_proxy_lcopy_value (const GValue *value,
 {
   gpointer *boxed_p = collect_values[0].v_pointer;
 
-  if (!boxed_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+  g_return_val_if_fail (boxed_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
 
   if (!value->data[0].v_pointer)
     *boxed_p = NULL;
index 472f037..7caf9c4 100644 (file)
@@ -659,7 +659,7 @@ g_closure_unref (GClosure *closure)
  * g_source_set_closure (source, g_cclosure_new (cb_func, cb_data));
  * ]|
  *
- * Generally, this function is used together with g_closure_ref(). Ane example
+ * Generally, this function is used together with g_closure_ref(). An example
  * of storing a closure for later notification looks like:
  * |[<!-- language="C" --> 
  * static GClosure *notify_closure = NULL;
@@ -690,7 +690,7 @@ g_closure_sink (GClosure *closure)
   /* floating is basically a kludge to avoid creating closures
    * with a ref_count of 0. so the initial ref_count a closure has
    * is unowned. with invoking g_closure_sink() code may
-   * indicate that it takes over that intiial ref_count.
+   * indicate that it takes over that initial ref_count.
    */
   if (closure->floating)
     {
index a5c1c3f..a0f91f5 100644 (file)
@@ -202,7 +202,7 @@ struct _GClosure
 
   /* invariants/constraints:
    * - ->marshal and ->data are _invalid_ as soon as ->is_invalid==TRUE
-   * - invocation of all inotifiers occours prior to fnotifiers
+   * - invocation of all inotifiers occurs prior to fnotifiers
    * - order of inotifiers is random
    *   inotifiers may _not_ free/invalidate parameter values (e.g. ->data)
    * - order of fnotifiers is random
index f783700..7fb2521 100644 (file)
@@ -167,10 +167,9 @@ value_flags_enum_lcopy_value (const GValue *value,
                              guint         collect_flags)
 {
   gint *int_p = collect_values[0].v_pointer;
-  
-  if (!int_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-  
+
+  g_return_val_if_fail (int_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
+
   *int_p = value->data[0].v_long;
   
   return NULL;
index 91ad779..a44efed 100755 (executable)
@@ -130,6 +130,7 @@ option_lowercase_name = ''  # DEPRECATED.  A lower case name to use as part
                             # one that we guess. For instance, when an enum
                             # uses abnormal capitalization and we can not
                             # guess where to put the underscores.
+option_since = ''           # User provided version info for the enum.
 seenbitshift = 0        # Have we seen bitshift operators?
 enum_prefix = None        # Prefix for this enumeration
 enumname = ''            # Name for this enumeration
@@ -256,6 +257,7 @@ help_epilog = '''Production text substitutions:
   \u0040ENUMNAME\u0040            PREFIX_THE_XENUM
   \u0040ENUMSHORT\u0040           THE_XENUM
   \u0040ENUMPREFIX\u0040          PREFIX
+  \u0040enumsince\u0040           the user-provided since value given
   \u0040VALUENAME\u0040           PREFIX_THE_XVALUE
   \u0040valuenick\u0040           the-xvalue
   \u0040valuenum\u0040            the integer value (limited support, Since: 2.26)
@@ -515,11 +517,13 @@ def process_file(curfilename):
                         flags = int(flags)
                 option_lowercase_name = options.get('lowercase_name', None)
                 option_underscore_name = options.get('underscore_name', None)
+                option_since = options.get('since', None)
             else:
                 enum_prefix = None
                 flags = None
                 option_lowercase_name = None
                 option_underscore_name = None
+                option_since = None
 
             if option_lowercase_name is not None:
                 if option_underscore_name is not None:
@@ -620,6 +624,11 @@ def process_file(curfilename):
                 enumlong = enumname_prefix + "_" + enumshort
                 enumsym = enumlong.lower()
 
+            if option_since is not None:
+                enumsince = option_since
+            else:
+                enumsince = ""
+
             if firstenum:
                 firstenum = False
 
@@ -641,6 +650,7 @@ def process_file(curfilename):
                 prod = prod.replace('\u0040ENUMSHORT\u0040', enumshort)
                 prod = prod.replace('\u0040ENUMNAME\u0040', enumlong)
                 prod = prod.replace('\u0040ENUMPREFIX\u0040', enumname_prefix)
+                prod = prod.replace('\u0040enumsince\u0040', enumsince)
                 if flags:
                     prod = prod.replace('\u0040type\u0040', 'flags')
                 else:
@@ -663,6 +673,7 @@ def process_file(curfilename):
                 prod = prod.replace('\u0040ENUMSHORT\u0040', enumshort)
                 prod = prod.replace('\u0040ENUMNAME\u0040', enumlong)
                 prod = prod.replace('\u0040ENUMPREFIX\u0040', enumname_prefix)
+                prod = prod.replace('\u0040enumsince\u0040', enumsince)
                 if flags:
                     prod = prod.replace('\u0040type\u0040', 'flags')
                 else:
@@ -729,6 +740,7 @@ def process_file(curfilename):
                 prod = prod.replace('\u0040ENUMSHORT\u0040', enumshort)
                 prod = prod.replace('\u0040ENUMNAME\u0040', enumlong)
                 prod = prod.replace('\u0040ENUMPREFIX\u0040', enumname_prefix)
+                prod = prod.replace('\u0040enumsince\u0040', enumsince)
                 if flags:
                     prod = prod.replace('\u0040type\u0040', 'flags')
                 else:
index 07752cf..ef95523 100644 (file)
@@ -620,7 +620,7 @@ validate_and_install_class_property (GObjectClass *class,
         class->construct_properties = g_slist_append (class->construct_properties, pspec);
 
       /* for property overrides of construct properties, we have to get rid
-       * of the overidden inherited construct property
+       * of the overridden inherited construct property
        */
       pspec = g_param_spec_pool_lookup (pspec_pool, pspec->name, parent_type, TRUE);
       if (pspec && pspec->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY))
@@ -1617,7 +1617,7 @@ object_interface_check_properties (gpointer check_data,
 
       /* We do a number of checks on the properties of an interface to
        * make sure that all classes implementing the interface are
-       * overriding the properties correctly.
+       * overriding the properties in a sane way.
        *
        * We do the checks in order of importance so that we can give
        * more useful error messages first.
@@ -3361,11 +3361,13 @@ gpointer
 {
   GObject *object = _object;
   gint old_val;
+  gboolean object_already_finalized;
 
   g_return_val_if_fail (G_IS_OBJECT (object), NULL);
   
   old_val = g_atomic_int_add (&object->ref_count, 1);
-  g_return_val_if_fail (old_val > 0, NULL);
+  object_already_finalized = (old_val <= 0);
+  g_return_val_if_fail (!object_already_finalized, NULL);
 
   if (old_val == 1 && OBJECT_HAS_TOGGLE_REF (object))
     toggle_refs_notify (object, FALSE);
@@ -3568,7 +3570,7 @@ g_object_get_qdata (GObject *object,
  * @data: (nullable): An opaque user data pointer
  *
  * This sets an opaque, named pointer on an object.
- * The name is specified through a #GQuark (retrived e.g. via
+ * The name is specified through a #GQuark (retrieved e.g. via
  * g_quark_from_static_string()), and the pointer
  * can be gotten back from the @object with g_object_get_qdata()
  * until the @object is finalized.
@@ -3717,7 +3719,7 @@ g_object_set_qdata_full (GObject       *object,
  * {
  *   // the quark, naming the object data
  *   GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
- *   // retrive the old string list
+ *   // retrieve the old string list
  *   GList *list = g_object_steal_qdata (object, quark_string_list);
  *
  *   // prepend new string
@@ -4019,9 +4021,8 @@ g_value_object_lcopy_value (const GValue *value,
                            guint        collect_flags)
 {
   GObject **object_p = collect_values[0].v_pointer;
-  
-  if (!object_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+
+  g_return_val_if_fail (object_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
 
   if (!value->data[0].v_pointer)
     *object_p = NULL;
index 2e07fa7..499329a 100644 (file)
@@ -320,7 +320,7 @@ struct  _GObjectClass
   GSList      *construct_properties;
 
   /*< public >*/
-  /* seldom overidden */
+  /* seldom overridden */
   GObject*   (*constructor)     (GType                  type,
                                  guint                  n_construct_properties,
                                  GObjectConstructParam *construct_properties);
@@ -335,7 +335,7 @@ struct  _GObjectClass
                                          GParamSpec     *pspec);
   void       (*dispose)                        (GObject        *object);
   void       (*finalize)               (GObject        *object);
-  /* seldom overidden */
+  /* seldom overridden */
   void       (*dispatch_properties_changed) (GObject      *object,
                                             guint         n_pspecs,
                                             GParamSpec  **pspecs);
@@ -838,7 +838,7 @@ static inline void
  *
  * Updates a pointer to weakly refer to @new_object. It assigns @new_object
  * to @weak_pointer_location and ensures that @weak_pointer_location will
- * automaticaly be set to %NULL if @new_object gets destroyed. The assignment
+ * automatically be set to %NULL if @new_object gets destroyed. The assignment
  * is not atomic. The weak reference is not thread-safe, see
  * g_object_add_weak_pointer() for details.
  *
index b336125..f2bc1a0 100644 (file)
@@ -41,8 +41,8 @@
  *
  * ## Parameter names # {#canonical-parameter-names}
  *
- * A property name consists of segments consisting of ASCII letters and
- * digits, separated by either the `-` or `_` character. The first
+ * A property name consists of one or more segments consisting of ASCII letters
+ * and digits, separated by either the `-` or `_` character. The first
  * character of a property name must be a letter. These are the same rules as
  * for signal naming (see g_signal_new()).
  *
@@ -381,20 +381,34 @@ is_canonical (const gchar *key)
   return (strchr (key, '_') == NULL);
 }
 
-static gboolean
-is_valid_property_name (const gchar *key)
+/**
+ * g_param_spec_is_valid_name:
+ * @name: the canonical name of the property
+ *
+ * Validate a property name for a #GParamSpec. This can be useful for
+ * dynamically-generated properties which need to be validated at run-time
+ * before actually trying to create them.
+ *
+ * See [canonical parameter names][canonical-parameter-names] for details of
+ * the rules for valid names.
+ *
+ * Returns: %TRUE if @name is a valid property name, %FALSE otherwise.
+ * Since: 2.66
+ */
+gboolean
+g_param_spec_is_valid_name (const gchar *name)
 {
   const gchar *p;
 
   /* First character must be a letter. */
-  if ((key[0] < 'A' || key[0] > 'Z') &&
-      (key[0] < 'a' || key[0] > 'z'))
+  if ((name[0] < 'A' || name[0] > 'Z') &&
+      (name[0] < 'a' || name[0] > 'z'))
     return FALSE;
 
-  for (p = key; *p != 0; p++)
+  for (p = name; *p != 0; p++)
     {
       const gchar c = *p;
-      
+
       if (c != '-' && c != '_' &&
           (c < '0' || c > '9') &&
           (c < 'A' || c > 'Z') &&
@@ -439,7 +453,7 @@ g_param_spec_internal (GType        param_type,
   
   g_return_val_if_fail (G_TYPE_IS_PARAM (param_type) && param_type != G_TYPE_PARAM, NULL);
   g_return_val_if_fail (name != NULL, NULL);
-  g_return_val_if_fail (is_valid_property_name (name), NULL);
+  g_return_val_if_fail (g_param_spec_is_valid_name (name), NULL);
   g_return_val_if_fail (!(flags & G_PARAM_STATIC_NAME) || is_canonical (name), NULL);
   
   pspec = (gpointer) g_type_create_instance (param_type);
@@ -693,7 +707,7 @@ g_param_value_validate (GParamSpec *pspec,
 /**
  * g_param_value_convert:
  * @pspec: a valid #GParamSpec
- * @src_value: souce #GValue
+ * @src_value: source #GValue
  * @dest_value: destination #GValue of correct type for @pspec
  * @strict_validation: %TRUE requires @dest_value to conform to @pspec
  * without modifications
@@ -857,8 +871,7 @@ value_param_lcopy_value (const GValue *value,
 {
   GParamSpec **param_p = collect_values[0].v_pointer;
 
-  if (!param_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+  g_return_val_if_fail (param_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
 
   if (!value->data[0].v_pointer)
     *param_p = NULL;
index b6a5546..7294ed5 100644 (file)
@@ -395,6 +395,9 @@ GLIB_AVAILABLE_IN_ALL
 GType  g_param_type_register_static    (const gchar              *name,
                                         const GParamSpecTypeInfo *pspec_info);
 
+GLIB_AVAILABLE_IN_2_66
+gboolean g_param_spec_is_valid_name    (const gchar              *name);
+
 /* For registering builting types */
 GType  _g_param_type_register_static_constant (const gchar              *name,
                                               const GParamSpecTypeInfo *pspec_info,
index d0e4d59..9aac2c4 100644 (file)
@@ -927,7 +927,7 @@ struct _GParamSpecObject
  * another paramspec.  All operations other than getting or
  * setting the value are redirected, including accessing the nick and
  * blurb, validating a value, and so forth. See
- * g_param_spec_get_redirect_target() for retrieving the overidden
+ * g_param_spec_get_redirect_target() for retrieving the overridden
  * property. #GParamSpecOverride is used in implementing
  * g_object_class_override_property(), and will not be directly useful
  * unless you are implementing a new base type similar to GObject.
index 45effa9..12c725a 100644 (file)
@@ -367,33 +367,29 @@ is_canonical (const gchar *key)
   return (strchr (key, '_') == NULL);
 }
 
-static gboolean
-is_valid_signal_name (const gchar *key)
+/**
+ * g_signal_is_valid_name:
+ * @name: the canonical name of the signal
+ *
+ * Validate a signal name. This can be useful for dynamically-generated signals
+ * which need to be validated at run-time before actually trying to create them.
+ *
+ * See [canonical parameter names][canonical-parameter-names] for details of
+ * the rules for valid names. The rules for signal names are the same as those
+ * for property names.
+ *
+ * Returns: %TRUE if @name is a valid signal name, %FALSE otherwise.
+ * Since: 2.66
+ */
+gboolean
+g_signal_is_valid_name (const gchar *name)
 {
-  const gchar *p;
-
   /* FIXME: We allow this, against our own documentation (the leading `-` is
    * invalid), because GTK has historically used this. */
-  if (g_str_equal (key, "-gtk-private-changed"))
+  if (g_str_equal (name, "-gtk-private-changed"))
     return TRUE;
 
-  /* First character must be a letter. */
-  if ((key[0] < 'A' || key[0] > 'Z') &&
-      (key[0] < 'a' || key[0] > 'z'))
-    return FALSE;
-
-  for (p = key; *p != 0; p++)
-    {
-      const gchar c = *p;
-
-      if (c != '-' && c != '_' &&
-          (c < '0' || c > '9') &&
-          (c < 'A' || c > 'Z') &&
-          (c < 'a' || c > 'z'))
-        return FALSE;
-    }
-
-  return TRUE;
+  return g_param_spec_is_valid_name (name);
 }
 
 static inline guint
@@ -1325,7 +1321,7 @@ g_signal_lookup (const gchar *name,
       if (!g_type_name (itype))
        g_warning (G_STRLOC ": unable to look up signal \"%s\" for invalid type id '%"G_GSIZE_FORMAT"'",
                   name, itype);
-      else if (!is_valid_signal_name (name))
+      else if (!g_signal_is_valid_name (name))
         g_warning (G_STRLOC ": unable to look up invalid signal name \"%s\" on type '%s'",
                    name, g_type_name (itype));
     }
@@ -1549,7 +1545,7 @@ g_signal_new (const gchar  *signal_name,
  * of a class offset for the signal's class handler. This function
  * doesn't need a function pointer exposed in the class structure of
  * an object definition, instead the function pointer is passed
- * directly and can be overriden by derived classes with
+ * directly and can be overridden by derived classes with
  * g_signal_override_class_closure() or
  * g_signal_override_class_handler()and chained to with
  * g_signal_chain_from_overridden() or
@@ -1712,7 +1708,7 @@ g_signal_newv (const gchar       *signal_name,
   GSignalCVaMarshaller va_marshaller;
   
   g_return_val_if_fail (signal_name != NULL, 0);
-  g_return_val_if_fail (is_valid_signal_name (signal_name), 0);
+  g_return_val_if_fail (g_signal_is_valid_name (signal_name), 0);
   g_return_val_if_fail (G_TYPE_IS_INSTANTIATABLE (itype) || G_TYPE_IS_INTERFACE (itype), 0);
   if (n_params)
     g_return_val_if_fail (param_types != NULL, 0);
@@ -2291,7 +2287,7 @@ g_signal_chain_from_overridden_handler (gpointer instance,
               g_free (error);
 
               /* we purposely leak the value here, it might not be
-               * in a correct state if an error condition occurred
+               * in a sane state if an error condition occurred
                */
               while (i--)
                 g_value_unset (param_values + i);
@@ -2347,7 +2343,7 @@ g_signal_chain_from_overridden_handler (gpointer instance,
               g_free (error);
 
               /* we purposely leak the value here, it might not be
-               * in a correct state if an error condition occurred
+               * in a sane state if an error condition occurred
                */
             }
         }
@@ -2627,7 +2623,7 @@ g_signal_connect_data (gpointer       instance,
  *
  * Blocks a handler of an instance so it will not be called during any
  * signal emissions unless it is unblocked again. Thus "blocking" a
- * signal handler means to temporarily deactive it, a signal handler
+ * signal handler means to temporarily deactivate it, a signal handler
  * has to be unblocked exactly the same amount of times it has been
  * blocked before to become active again.
  *
@@ -3446,7 +3442,7 @@ g_signal_emit_valist (gpointer instance,
                  g_warning ("%s: %s", G_STRLOC, error);
                  g_free (error);
                  /* we purposely leak the value here, it might not be
-                  * in a correct state if an error condition occurred
+                  * in a sane state if an error condition occurred
                   */
                }
            }
@@ -3483,7 +3479,7 @@ g_signal_emit_valist (gpointer instance,
          g_free (error);
 
          /* we purposely leak the value here, it might not be
-          * in a correct state if an error condition occurred
+          * in a sane state if an error condition occurred
           */
          while (i--)
            g_value_unset (param_values + i);
@@ -3519,7 +3515,7 @@ g_signal_emit_valist (gpointer instance,
          g_free (error);
          
          /* we purposely leak the value here, it might not be
-          * in a correct state if an error condition occurred
+          * in a sane state if an error condition occurred
           */
        }
     }
index 59f94d5..5cc2b6d 100644 (file)
@@ -338,6 +338,8 @@ void                  g_signal_query        (guint               signal_id,
 GLIB_AVAILABLE_IN_ALL
 guint*                g_signal_list_ids     (GType               itype,
                                             guint              *n_ids);
+GLIB_AVAILABLE_IN_2_66
+gboolean              g_signal_is_valid_name (const gchar      *name);
 GLIB_AVAILABLE_IN_ALL
 gboolean             g_signal_parse_name   (const gchar        *detailed_signal,
                                             GType               itype,
index b5ef2d1..723675d 100644 (file)
@@ -1027,7 +1027,7 @@ check_add_interface_L (GType instance_type,
   if (entry && entry->vtable == NULL && !type_iface_peek_holder_L (iface, NODE_TYPE (node)))
     {
       /* ok, we do conform to this interface already, but the interface vtable was not
-       * yet intialized, and we just conform to the interface because it got added to
+       * yet initialized, and we just conform to the interface because it got added to
        * one of our parents. so we allow overriding of holder info here.
        */
       return TRUE;
@@ -1477,7 +1477,7 @@ type_add_interface_Wm (TypeNode             *node,
   type_node_add_iface_entry_W (node, NODE_TYPE (iface), NULL);
   
   /* if the class is already (partly) initialized, we may need to base
-   * initalize and/or initialize the new interface.
+   * initialize and/or initialize the new interface.
    */
   if (node->data)
     {
@@ -1769,7 +1769,7 @@ type_iface_blow_holder_info_Wm (TypeNode *iface,
  * and structure setups for instances: actual instance creation should
  * happen through functions supplied by the type's fundamental type
  * implementation.  So use of g_type_create_instance() is reserved for
- * implementators of fundamental types only. E.g. instances of the
+ * implementers of fundamental types only. E.g. instances of the
  * #GObject hierarchy should be created via g_object_new() and never
  * directly through g_type_create_instance() which doesn't handle things
  * like singleton objects or object construction.
@@ -3189,7 +3189,7 @@ g_type_interface_peek_parent (gpointer g_iface)
  * and returns the default interface vtable for the type.
  *
  * If the type is not currently in use, then the default vtable
- * for the type will be created and initalized by calling
+ * for the type will be created and initialized by calling
  * the base interface init and default vtable init functions for
  * the type (the @base_init and @class_init members of #GTypeInfo).
  * Calling g_type_default_interface_ref() is useful when you
@@ -4907,4 +4907,3 @@ g_type_ensure (GType type)
   if (G_UNLIKELY (type == (GType)-1))
     g_error ("can't happen");
 }
-
index 479b405..8917841 100644 (file)
@@ -1178,17 +1178,13 @@ struct _GInterfaceInfo
  *  array.  To deviate from our string example for a moment, and taking
  *  a look at an exemplary implementation for collect_value() of
  *  #GObject:
- *  |[<!-- language="C" -->
- *  if (collect_values[0].v_pointer)
- *  {
+ *  |[<!-- language="C" --> 
  *    GObject *object = G_OBJECT (collect_values[0].v_pointer);
+ *    g_return_val_if_fail (object != NULL,
+ *       g_strdup_printf ("Object passed as invalid NULL pointer"));
  *    // never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types
  *    value->data[0].v_pointer = g_object_ref (object);
  *    return NULL;
- *  }
- *  else
- *    return g_strdup_printf ("Object passed as invalid NULL pointer");
- *  }
  *  ]|
  *  The reference count for valid objects is always incremented,
  *  regardless of @collect_flags. For invalid objects, the example
@@ -1220,8 +1216,8 @@ struct _GInterfaceInfo
  *  To complete the string example:
  *  |[<!-- language="C" -->
  *  gchar **string_p = collect_values[0].v_pointer;
- *  if (!string_p)
- *    return g_strdup_printf ("string location passed as NULL");
+ *  g_return_val_if_fail (string_p != NULL,
+ *      g_strdup_printf ("string location passed as NULL"));
  *  if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
  *    *string_p = value->data[0].v_pointer;
  *  else
@@ -1231,8 +1227,8 @@ struct _GInterfaceInfo
  *  reference-counted types:
  *  |[<!-- language="C" -->
  *  GObject **object_p = collect_values[0].v_pointer;
- *  if (!object_p)
- *    return g_strdup_printf ("object location passed as NULL");
+ *  g_return_val_if_fail (object_p != NULL,
+ *    g_strdup_printf ("object location passed as NULL"));
  *  if (!value->data[0].v_pointer)
  *    *object_p = NULL;
  *  else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) // always honour
index 468da2e..c30501a 100644 (file)
@@ -376,7 +376,7 @@ g_value_set_instance (GValue  *value,
       g_free (error_msg);
       
       /* we purposely leak the value here, it might not be
-       * in a correct state if an error condition occurred
+       * in a sane state if an error condition occurred
        */
       value_meminit (value, g_type);
       value_table->value_init (value);
@@ -440,7 +440,7 @@ g_value_init_from_instance (GValue  *value,
           g_free (error_msg);
 
           /* we purposely leak the value here, it might not be
-           * in a correct state if an error condition occurred
+           * in a sane state if an error condition occurred
            */
           value_meminit (value, g_type);
           value_table->value_init (value);
index 9d8f034..1c6d737 100644 (file)
@@ -176,6 +176,16 @@ void       g_value_register_transform_func (GType           src_type,
 #define G_VALUE_NOCOPY_CONTENTS (1 << 27)
 
 /**
+ * G_VALUE_INTERNED_STRING:
+ *
+ * For string values, indicates that the string contained is canonical and will
+ * exist for the duration of the process. See g_value_set_interned_string().
+ *
+ * Since: 2.66
+ */
+#define G_VALUE_INTERNED_STRING (1 << 28) GLIB_AVAILABLE_MACRO_IN_2_66
+
+/**
  * G_VALUE_INIT:
  *
  * A #GValue must be initialized before it can be used. This macro can
index 177aa3d..b130459 100644 (file)
@@ -141,7 +141,7 @@ G_STMT_START {                                                                              \
  * va_list variables cannot be passed by reference.
  *
  * Note: If you are creating the @value argument just before calling this macro,
- * you should use the #G_VALUE_COLLECT_INIT variant and pass the unitialized
+ * you should use the #G_VALUE_COLLECT_INIT variant and pass the uninitialized
  * #GValue. That variant is faster than #G_VALUE_COLLECT.
  */
 #define G_VALUE_COLLECT(value, var_args, flags, __error) G_STMT_START {                        \
index 35b85c6..9eaba43 100644 (file)
@@ -55,10 +55,9 @@ value_lcopy_char (const GValue *value,
                  guint         collect_flags)
 {
   gint8 *int8_p = collect_values[0].v_pointer;
-  
-  if (!int8_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-  
+
+  g_return_val_if_fail (int8_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
+
   *int8_p = value->data[0].v_int;
   
   return NULL;
@@ -71,10 +70,9 @@ value_lcopy_boolean (const GValue *value,
                     guint         collect_flags)
 {
   gboolean *bool_p = collect_values[0].v_pointer;
-  
-  if (!bool_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-  
+
+  g_return_val_if_fail (bool_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
+
   *bool_p = value->data[0].v_int;
   
   return NULL;
@@ -98,10 +96,9 @@ value_lcopy_int (const GValue *value,
                 guint         collect_flags)
 {
   gint *int_p = collect_values[0].v_pointer;
-  
-  if (!int_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-  
+
+  g_return_val_if_fail (int_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
+
   *int_p = value->data[0].v_int;
   
   return NULL;
@@ -125,10 +122,9 @@ value_lcopy_long (const GValue *value,
                  guint         collect_flags)
 {
   glong *long_p = collect_values[0].v_pointer;
-  
-  if (!long_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-  
+
+  g_return_val_if_fail (long_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
+
   *long_p = value->data[0].v_long;
   
   return NULL;
@@ -165,10 +161,9 @@ value_lcopy_int64 (const GValue *value,
                   guint         collect_flags)
 {
   gint64 *int64_p = collect_values[0].v_pointer;
-  
-  if (!int64_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-  
+
+  g_return_val_if_fail (int64_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
+
   *int64_p = value->data[0].v_int64;
   
   return NULL;
@@ -205,10 +200,9 @@ value_lcopy_float (const GValue *value,
                   guint         collect_flags)
 {
   gfloat *float_p = collect_values[0].v_pointer;
-  
-  if (!float_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-  
+
+  g_return_val_if_fail (float_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
+
   *float_p = value->data[0].v_float;
   
   return NULL;
@@ -245,10 +239,9 @@ value_lcopy_double (const GValue *value,
                    guint         collect_flags)
 {
   gdouble *double_p = collect_values[0].v_pointer;
-  
-  if (!double_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-  
+
+  g_return_val_if_fail (double_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
+
   *double_p = value->data[0].v_double;
   
   return NULL;
@@ -271,7 +264,16 @@ static void
 value_copy_string (const GValue *src_value,
                   GValue       *dest_value)
 {
-  dest_value->data[0].v_pointer = g_strdup (src_value->data[0].v_pointer);
+  if (src_value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS)
+    {
+      dest_value->data[0].v_pointer = src_value->data[0].v_pointer;
+      dest_value->data[1].v_uint = src_value->data[1].v_uint;
+    }
+  else
+    {
+      dest_value->data[0].v_pointer = g_strdup (src_value->data[0].v_pointer);
+      dest_value->data[1].v_uint = src_value->data[1].v_uint;
+    }
 }
 
 static gchar*
@@ -300,10 +302,9 @@ value_lcopy_string (const GValue *value,
                    guint         collect_flags)
 {
   gchar **string_p = collect_values[0].v_pointer;
-  
-  if (!string_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
-  
+
+  g_return_val_if_fail (string_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
+
   if (!value->data[0].v_pointer)
     *string_p = NULL;
   else if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
@@ -352,8 +353,7 @@ value_lcopy_pointer (const GValue *value,
 {
   gpointer *pointer_p = collect_values[0].v_pointer;
 
-  if (!pointer_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+  g_return_val_if_fail (pointer_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
 
   *pointer_p = value->data[0].v_pointer;
 
@@ -405,8 +405,7 @@ value_lcopy_variant (const GValue *value,
 {
   GVariant **variant_p = collect_values[0].v_pointer;
 
-  if (!variant_p)
-    return g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+  g_return_val_if_fail (variant_p != NULL, g_strdup_printf ("value location for '%s' passed as NULL", G_VALUE_TYPE_NAME (value)));
 
   if (!value->data[0].v_pointer)
     *variant_p = NULL;
@@ -1053,6 +1052,9 @@ g_value_set_string (GValue        *value,
  * Set the contents of a %G_TYPE_STRING #GValue to @v_string.
  * The string is assumed to be static, and is thus not duplicated
  * when setting the #GValue.
+ *
+ * If the the string is a canonical string, using g_value_set_interned_string()
+ * is more appropriate.
  */
 void
 g_value_set_static_string (GValue      *value,
@@ -1067,6 +1069,29 @@ g_value_set_static_string (GValue      *value,
 }
 
 /**
+ * g_value_set_interned_string:
+ * @value: a valid #GValue of type %G_TYPE_STRING
+ * @v_string: (nullable): static string to be set
+ *
+ * Set the contents of a %G_TYPE_STRING #GValue to @v_string.  The string is
+ * assumed to be static and interned (canonical, for example from
+ * g_intern_string()), and is thus not duplicated when setting the #GValue.
+ *
+ * Since: 2.66
+ */
+void
+g_value_set_interned_string (GValue *value,
+                             const gchar *v_string)
+{
+  g_return_if_fail (G_VALUE_HOLDS_STRING (value));
+
+  if (!(value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS))
+    g_free (value->data[0].v_pointer);
+  value->data[1].v_uint = G_VALUE_NOCOPY_CONTENTS | G_VALUE_INTERNED_STRING;
+  value->data[0].v_pointer = (gchar *) v_string;
+}
+
+/**
  * g_value_set_string_take_ownership:
  * @value: a valid #GValue of type %G_TYPE_STRING
  * @v_string: (nullable): duplicated unowned string to be set
index 9274435..df2f0aa 100644 (file)
@@ -137,6 +137,19 @@ G_BEGIN_DECLS
  */
 #define G_VALUE_HOLDS_STRING(value)     (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_STRING))
 /**
+ * G_VALUE_IS_INTERNED_STRING:
+ * @value: a valid #GValue structure
+ *
+ * Checks whether @value contains a string which is canonical.
+ *
+ * Returns: %TRUE if the value contains a string in its canonical
+ * representation, as returned by g_intern_string(). See also
+ * g_value_set_interned_string().
+ *
+ * Since: 2.66
+ */
+#define G_VALUE_IS_INTERNED_STRING(value) (G_VALUE_HOLDS_STRING (value) && ((value)->data[1].v_uint & G_VALUE_INTERNED_STRING)) GLIB_AVAILABLE_MACRO_IN_2_66
+/**
  * G_VALUE_HOLDS_POINTER:
  * @value: a valid #GValue structure
  * 
@@ -241,6 +254,9 @@ void                      g_value_set_string        (GValue       *value,
 GLIB_AVAILABLE_IN_ALL
 void                 g_value_set_static_string (GValue       *value,
                                                 const gchar  *v_string);
+GLIB_AVAILABLE_IN_2_66
+void                 g_value_set_interned_string (GValue      *value,
+                                                  const gchar  *v_string);
 GLIB_AVAILABLE_IN_ALL
 const gchar *         g_value_get_string       (const GValue *value);
 GLIB_AVAILABLE_IN_ALL
index 85e283b..536f153 100644 (file)
@@ -143,6 +143,10 @@ libgobject_dep = declare_dependency(link_with : libgobject,
   include_directories : [gobjectinc],
   dependencies : [libglib_dep, glib_enumtypes_dep])
 
+if meson.version().version_compare('>=0.54.0')
+  meson.override_dependency('gobject-2.0', libgobject_dep)
+endif
+
 executable('gobject-query', 'gobject-query.c',
   install : true,
   dependencies : [libglib_dep, libgobject_dep])
index 59a5aeb..7a9e9e4 100644 (file)
@@ -166,7 +166,7 @@ static gpointer
 ref_unref_thread (gpointer data)
 {
   gint i;
-  /* first, syncronize with other threads,
+  /* first, synchronize with other threads,
    */
   if (g_test_verbose())
     g_printerr ("WAITING!\n");
index 569f42d..4d0053e 100644 (file)
@@ -379,7 +379,7 @@ derived_object_class_init (DerivedObjectClass *class)
   object_class->set_property = derived_object_set_property;
   object_class->get_property = derived_object_get_property;
 
-  /* Overriding a property that is itself overridding an interface property */
+  /* Overriding a property that is itself overriding an interface property */
   g_object_class_override_property (object_class, DERIVED_PROP3, "prop3");
 
   /* Overriding a property not from an interface */
index 1d0ef4a..8837f1a 100644 (file)
@@ -105,7 +105,7 @@ foreach test_name, extra_args : gobject_tests
 
   # FIXME: https://gitlab.gnome.org/GNOME/glib/issues/1316
   # aka https://bugs.debian.org/880883
-  if test_name == 'closure-refcount' and ['arm', 'aarch64'].contains(host_cpu_family)
+  if test_name == 'closure-refcount' and ['arm', 'aarch64'].contains(host_machine.cpu_family())
     timeout = timeout * 10
   endif
 
index 5f28b9c..22a1005 100644 (file)
@@ -153,6 +153,7 @@ enum_name: @enum_name@
 ENUMNAME: @ENUMNAME@
 ENUMSHORT: @ENUMSHORT@
 ENUMPREFIX: @ENUMPREFIX@
+enumsince: @enumsince@
 type: @type@
 Type: @Type@
 TYPE: @TYPE@
@@ -165,6 +166,7 @@ enum_name: @enum_name@
 ENUMNAME: @ENUMNAME@
 ENUMSHORT: @ENUMSHORT@
 ENUMPREFIX: @ENUMPREFIX@
+enumsince: @enumsince@
 type: @type@
 Type: @Type@
 TYPE: @TYPE@
@@ -187,6 +189,7 @@ enum_name: @enum_name@
 ENUMNAME: @ENUMNAME@
 ENUMSHORT: @ENUMSHORT@
 ENUMPREFIX: @ENUMPREFIX@
+enumsince: @enumsince@
 type: @type@
 Type: @Type@
 TYPE: @TYPE@
@@ -225,7 +228,7 @@ file-tail
 
     def assertSingleEnum(self, result, enum_name_camel, enum_name_lower,
                          enum_name_upper, enum_name_short, enum_prefix,
-                         type_lower, type_camel, type_upper,
+                         enum_since, type_lower, type_camel, type_upper,
                          value_name, value_nick, value_num):
         """Assert that out (from runMkenumsWithHeader()) contains a single
            enum and value matching the given arguments."""
@@ -235,6 +238,7 @@ file-tail
             'enum_name_upper': enum_name_upper,
             'enum_name_short': enum_name_short,
             'enum_prefix': enum_prefix,
+            'enum_since': enum_since,
             'type_lower': type_lower,
             'type_camel': type_camel,
             'type_upper': type_upper,
@@ -258,6 +262,7 @@ enum_name: {enum_name_lower}
 ENUMNAME: {enum_name_upper}
 ENUMSHORT: {enum_name_short}
 ENUMPREFIX: {enum_prefix}
+enumsince: {enum_since}
 type: {type_lower}
 Type: {type_camel}
 TYPE: {type_upper}
@@ -267,6 +272,7 @@ enum_name: {enum_name_lower}
 ENUMNAME: {enum_name_upper}
 ENUMSHORT: {enum_name_short}
 ENUMPREFIX: {enum_prefix}
+enumsince: {enum_since}
 type: {type_lower}
 Type: {type_camel}
 TYPE: {type_upper}
@@ -283,6 +289,7 @@ enum_name: {enum_name_lower}
 ENUMNAME: {enum_name_upper}
 ENUMSHORT: {enum_name_short}
 ENUMPREFIX: {enum_prefix}
+enumsince: {enum_since}
 type: {type_lower}
 Type: {type_camel}
 TYPE: {type_upper}
@@ -360,7 +367,7 @@ comment: {standard_bottom_comment}
         self.assertEqual('', result.err)
         self.assertSingleEnum(result, 'SomeEnumIdentifier',
                               'some_enum_identifier', 'SOME_ENUM_IDENTIFIER',
-                              'ENUM_IDENTIFIER', 'SOME', 'enum', 'Enum',
+                              'ENUM_IDENTIFIER', 'SOME', '', 'enum', 'Enum',
                               'ENUM', 'ENUM_VALUE', 'value', '0')
 
     def test_non_utf8_encoding(self):
@@ -375,7 +382,7 @@ comment: {standard_bottom_comment}
         self.assertIn('WARNING: UnicodeWarning: ', result.err)
         self.assertSingleEnum(result, 'SomeEnumIdentifier',
                               'some_enum_identifier', 'SOME_ENUM_IDENTIFIER',
-                              'ENUM_IDENTIFIER', 'SOME', 'enum', 'Enum',
+                              'ENUM_IDENTIFIER', 'SOME', '', 'enum', 'Enum',
                               'ENUM', 'ENUM_VALUE', 'value', '0')
 
     def test_reproducible(self):
@@ -430,7 +437,7 @@ comment: {standard_bottom_comment}
         self.assertEqual('', result.err)
         self.assertSingleEnum(result, 'GeglSamplerType',
                               'gegl_sampler_type', 'GEGL_SAMPLER_TYPE',
-                              'SAMPLER_TYPE', 'GEGL', 'enum', 'Enum',
+                              'SAMPLER_TYPE', 'GEGL', '', 'enum', 'Enum',
                               'ENUM', 'GEGL_SAMPLER_NEAREST', 'nearest', '0')
 
     def test_filename_basename_in_fhead_ftail(self):
@@ -477,6 +484,20 @@ comment
 comment: {standard_bottom_comment}
 '''.format(**result.subs).strip(), result.out)
 
+    def test_since(self):
+        """Test user-provided 'since' version handling
+        https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1492"""
+        h_contents = '''
+        typedef enum { /*< since=1.0 >*/
+            QMI_WMS_MESSAGE_PROTOCOL_CDMA = 0,
+        } QmiWmsMessageProtocol;
+        '''
+        result = self.runMkenumsWithHeader(h_contents)
+        self.assertEqual('', result.err)
+        self.assertSingleEnum(result, 'QmiWmsMessageProtocol',
+                              'qmi_wms_message_protocol', 'QMI_WMS_MESSAGE_PROTOCOL',
+                              'WMS_MESSAGE_PROTOCOL', 'QMI', '1.0', 'enum', 'Enum',
+                              'ENUM', 'QMI_WMS_MESSAGE_PROTOCOL_CDMA', 'cdma', '0')
 
 class TestRspMkenums(TestMkenums):
     '''Run all tests again in @rspfile mode'''
index 93c3f4b..44faef1 100644 (file)
@@ -126,7 +126,7 @@ test_param_invalid_name (gconstpointer test_data)
 
   g_test_trap_subprocess (NULL, 0, 0);
   g_test_trap_assert_failed ();
-  g_test_trap_assert_stderr ("*CRITICAL*is_valid_property_name (name)*");
+  g_test_trap_assert_stderr ("*CRITICAL*g_param_spec_is_valid_name (name)*");
 }
 
 static void
@@ -846,6 +846,32 @@ test_param_default (void)
   g_param_spec_unref (param);
 }
 
+static void
+test_param_is_valid_name (void)
+{
+  const gchar *valid_names[] =
+    {
+      "property",
+      "i",
+      "multiple-segments",
+      "segment0-SEGMENT1",
+      "using_underscores",
+    };
+  const gchar *invalid_names[] =
+    {
+      "",
+      "7zip",
+      "my_int:hello",
+    };
+  gsize i;
+
+  for (i = 0; i < G_N_ELEMENTS (valid_names); i++)
+    g_assert_true (g_param_spec_is_valid_name (valid_names[i]));
+
+  for (i = 0; i < G_N_ELEMENTS (invalid_names); i++)
+    g_assert_false (g_param_spec_is_valid_name (invalid_names[i]));
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -881,6 +907,7 @@ main (int argc, char *argv[])
 
   g_test_add_func ("/value/transform", test_value_transform);
   g_test_add_func ("/param/default", test_param_default);
+  g_test_add_func ("/param/is-valid-name", test_param_is_valid_name);
 
   return g_test_run ();
 }
index 1e48e33..23d507c 100644 (file)
@@ -87,7 +87,7 @@ test_object_finalize (GObject *gobject)
 
   /* When the ref_count of an object is zero it is still
    * possible to notify the property, but it should do
-   * nothing and silenty quit (bug #705570)
+   * nothing and silently quit (bug #705570)
    */
   g_object_notify (gobject, "foo");
   g_object_notify_by_pspec (gobject, properties[PROP_BAR]);
@@ -223,54 +223,54 @@ typedef struct {
 static void
 on_notify (GObject           *gobject,
            GParamSpec        *pspec,
-           TestNotifyClosure *clos)
+           TestNotifyClosure *closure)
 {
-  g_assert (clos->pspec == pspec);
-  g_assert_cmpstr (clos->name, ==, pspec->name);
-  clos->fired = TRUE;
+  g_assert (closure->pspec == pspec);
+  g_assert_cmpstr (closure->name, ==, pspec->name);
+  closure->fired = TRUE;
 }
 
 static void
 properties_notify (void)
 {
   TestObject *obj = g_object_new (test_object_get_type (), NULL);
-  TestNotifyClosure clos;
+  TestNotifyClosure closure;
 
   g_assert (properties[PROP_FOO] != NULL);
   g_assert (properties[PROP_QUUX] != NULL);
-  g_signal_connect (obj, "notify", G_CALLBACK (on_notify), &clos);
+  g_signal_connect (obj, "notify", G_CALLBACK (on_notify), &closure);
 
-  clos.name = "foo";
-  clos.pspec = properties[PROP_FOO];
+  closure.name = "foo";
+  closure.pspec = properties[PROP_FOO];
 
-  clos.fired = FALSE;
+  closure.fired = FALSE;
   g_object_set (obj, "foo", 47, NULL);
-  g_assert (clos.fired);
+  g_assert (closure.fired);
 
-  clos.name = "baz";
-  clos.pspec = properties[PROP_BAZ];
+  closure.name = "baz";
+  closure.pspec = properties[PROP_BAZ];
 
-  clos.fired = FALSE;
+  closure.fired = FALSE;
   g_object_set (obj, "baz", "something new", NULL);
-  g_assert (clos.fired);
+  g_assert (closure.fired);
 
   /* baz lacks explicit notify, so we will see this twice */
-  clos.fired = FALSE;
+  closure.fired = FALSE;
   g_object_set (obj, "baz", "something new", NULL);
-  g_assert (clos.fired);
+  g_assert (closure.fired);
 
   /* quux on the other hand, ... */
-  clos.name = "quux";
-  clos.pspec = properties[PROP_QUUX];
+  closure.name = "quux";
+  closure.pspec = properties[PROP_QUUX];
 
-  clos.fired = FALSE;
+  closure.fired = FALSE;
   g_object_set (obj, "quux", "something new", NULL);
-  g_assert (clos.fired);
+  g_assert (closure.fired);
 
   /* no change; no notify */
-  clos.fired = FALSE;
+  closure.fired = FALSE;
   g_object_set (obj, "quux", "something new", NULL);
-  g_assert (!clos.fired);
+  g_assert (!closure.fired);
 
 
   g_object_unref (obj);
index ae8bd9d..08b54d0 100644 (file)
@@ -1449,7 +1449,33 @@ test_signals_invalid_name (gconstpointer test_data)
 
   g_test_trap_subprocess (NULL, 0, 0);
   g_test_trap_assert_failed ();
-  g_test_trap_assert_stderr ("*CRITICAL*is_valid_signal_name (signal_name)*");
+  g_test_trap_assert_stderr ("*CRITICAL*g_signal_is_valid_name (signal_name)*");
+}
+
+static void
+test_signal_is_valid_name (void)
+{
+  const gchar *valid_names[] =
+    {
+      "signal",
+      "i",
+      "multiple-segments",
+      "segment0-SEGMENT1",
+      "using_underscores",
+    };
+  const gchar *invalid_names[] =
+    {
+      "",
+      "7zip",
+      "my_int:hello",
+    };
+  gsize i;
+
+  for (i = 0; i < G_N_ELEMENTS (valid_names); i++)
+    g_assert_true (g_signal_is_valid_name (valid_names[i]));
+
+  for (i = 0; i < G_N_ELEMENTS (invalid_names); i++)
+    g_assert_false (g_signal_is_valid_name (invalid_names[i]));
 }
 
 /* --- */
@@ -1485,6 +1511,7 @@ main (int argc,
   g_test_add_data_func ("/gobject/signals/invalid-name/colon", "my_int:hello", test_signals_invalid_name);
   g_test_add_data_func ("/gobject/signals/invalid-name/first-char", "7zip", test_signals_invalid_name);
   g_test_add_data_func ("/gobject/signals/invalid-name/empty", "", test_signals_invalid_name);
+  g_test_add_func ("/gobject/signals/is-valid-name", test_signal_is_valid_name);
 
   return g_test_run ();
 }
index bb57bd4..f7042c8 100644 (file)
@@ -94,7 +94,7 @@ tester_init_thread (gpointer data)
 {
   const GInterfaceInfo face2_interface_info = { (GInterfaceInitFunc) interface_per_class_init, NULL, NULL };
   gpointer klass;
-  /* first, syncronize with other threads,
+  /* first, synchronize with other threads,
    * then run interface and class initializers,
    * using unsafe_call_counter concurrently
    */
index b5a1364..af918dd 100644 (file)
@@ -31,6 +31,184 @@ test_value_basic (void)
   g_assert_false (G_VALUE_HOLDS_INT (&value));
 }
 
+static void
+test_value_string (void)
+{
+  const gchar *static1 = "static1";
+  const gchar *static2 = "static2";
+  const gchar *storedstr;
+  const gchar *copystr;
+  gchar *str1, *str2;
+  GValue value = G_VALUE_INIT;
+  GValue copy = G_VALUE_INIT;
+
+  g_test_summary ("Test that G_TYPE_STRING GValue copy properly");
+
+  /*
+   * Regular strings (ownership not passed)
+   */
+
+  /* Create a regular string gvalue and make sure it copies the provided string */
+  g_value_init (&value, G_TYPE_STRING);
+  g_assert_true (G_VALUE_HOLDS_STRING (&value));
+
+  /* The string contents should be empty at this point */
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr == NULL);
+
+  g_value_set_string (&value, static1);
+  /* The contents should be a copy of the same string */
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr != static1);
+  g_assert_cmpstr (storedstr, ==, static1);
+  /* Check g_value_dup_string() provides a copy */
+  str1 = g_value_dup_string (&value);
+  g_assert_true (storedstr != str1);
+  g_assert_cmpstr (str1, ==, static1);
+  g_free (str1);
+
+  /* Copying a regular string gvalue should copy the contents */
+  g_value_init (&copy, G_TYPE_STRING);
+  g_value_copy (&value, &copy);
+  copystr = g_value_get_string (&copy);
+  g_assert_true (copystr != storedstr);
+  g_assert_cmpstr (copystr, ==, static1);
+  g_value_unset (&copy);
+
+  /* Setting a new string should change the contents */
+  g_value_set_string (&value, static2);
+  /* The contents should be a copy of that *new* string */
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr != static2);
+  g_assert_cmpstr (storedstr, ==, static2);
+
+  /* Setting a static string over that should also change it (test for
+   * coverage and valgrind) */
+  g_value_set_static_string (&value, static1);
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr != static2);
+  g_assert_cmpstr (storedstr, ==, static1);
+
+  /* Giving a string directly (ownership passed) should replace the content */
+  str2 = g_strdup (static2);
+  g_value_take_string (&value, str2);
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr != static2);
+  g_assert_cmpstr (storedstr, ==, str2);
+
+  g_value_unset (&value);
+
+  /*
+   * Regular strings (ownership passed)
+   */
+
+  g_value_init (&value, G_TYPE_STRING);
+  g_assert_true (G_VALUE_HOLDS_STRING (&value));
+  str1 = g_strdup (static1);
+  g_value_take_string (&value, str1);
+  /* The contents should be the string we provided */
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr == str1);
+  /* But g_value_dup_string() should provide a copy */
+  str2 = g_value_dup_string (&value);
+  g_assert_true (storedstr != str2);
+  g_assert_cmpstr (str2, ==, static1);
+  g_free (str2);
+
+  /* Copying a regular string gvalue (even with ownership passed) should copy
+   * the contents */
+  g_value_init (&copy, G_TYPE_STRING);
+  g_value_copy (&value, &copy);
+  copystr = g_value_get_string (&copy);
+  g_assert_true (copystr != storedstr);
+  g_assert_cmpstr (copystr, ==, static1);
+  g_value_unset (&copy);
+
+  /* Setting a new regular string should change the contents */
+  g_value_set_string (&value, static2);
+  /* The contents should be a copy of that *new* string */
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr != static2);
+  g_assert_cmpstr (storedstr, ==, static2);
+
+  g_value_unset (&value);
+
+  /*
+   * Static strings
+   */
+  g_value_init (&value, G_TYPE_STRING);
+  g_assert_true (G_VALUE_HOLDS_STRING (&value));
+  g_value_set_static_string (&value, static1);
+  /* The contents should be the string we provided */
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr == static1);
+  /* But g_value_dup_string() should provide a copy */
+  str2 = g_value_dup_string (&value);
+  g_assert_true (storedstr != str2);
+  g_assert_cmpstr (str2, ==, static1);
+  g_free (str2);
+
+  /* Copying a static string gvalue should *not* copy the contents */
+  g_value_init (&copy, G_TYPE_STRING);
+  g_value_copy (&value, &copy);
+  copystr = g_value_get_string (&copy);
+  g_assert_true (copystr == static1);
+  g_value_unset (&copy);
+
+  /* Setting a new string should change the contents */
+  g_value_set_static_string (&value, static2);
+  /* The contents should be a copy of that *new* string */
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr != static1);
+  g_assert_cmpstr (storedstr, ==, static2);
+
+  g_value_unset (&value);
+
+  /*
+   * Interned/Canonical strings
+   */
+  static1 = g_intern_static_string (static1);
+  g_value_init (&value, G_TYPE_STRING);
+  g_assert_true (G_VALUE_HOLDS_STRING (&value));
+  g_value_set_interned_string (&value, static1);
+  g_assert_true (G_VALUE_IS_INTERNED_STRING (&value));
+  /* The contents should be the string we provided */
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr == static1);
+  /* But g_value_dup_string() should provide a copy */
+  str2 = g_value_dup_string (&value);
+  g_assert_true (storedstr != str2);
+  g_assert_cmpstr (str2, ==, static1);
+  g_free (str2);
+
+  /* Copying an interned string gvalue should *not* copy the contents
+   * and should still be an interned string */
+  g_value_init (&copy, G_TYPE_STRING);
+  g_value_copy (&value, &copy);
+  g_assert_true (G_VALUE_IS_INTERNED_STRING (&copy));
+  copystr = g_value_get_string (&copy);
+  g_assert_true (copystr == static1);
+  g_value_unset (&copy);
+
+  /* Setting a new interned string should change the contents */
+  static2 = g_intern_static_string (static2);
+  g_value_set_interned_string (&value, static2);
+  g_assert_true (G_VALUE_IS_INTERNED_STRING (&value));
+  /* The contents should be the interned string */
+  storedstr = g_value_get_string (&value);
+  g_assert_cmpstr (storedstr, ==, static2);
+
+  /* Setting a new regular string should change the contents */
+  g_value_set_string (&value, static2);
+  g_assert_false (G_VALUE_IS_INTERNED_STRING (&value));
+  /* The contents should be a copy of that *new* string */
+  storedstr = g_value_get_string (&value);
+  g_assert_true (storedstr != static2);
+  g_assert_cmpstr (storedstr, ==, static2);
+
+  g_value_unset (&value);
+}
+
 static gint
 cmpint (gconstpointer a, gconstpointer b)
 {
@@ -89,6 +267,7 @@ main (int argc, char *argv[])
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/value/basic", test_value_basic);
+  g_test_add_func ("/value/string", test_value_string);
   g_test_add_func ("/value/array/basic", test_valuearray_basic);
 
   return g_test_run ();
index d4fca40..808e889 100644 (file)
@@ -34,3 +34,7 @@ pkg.generate(libgthread,
 )
 
 libgthread_dep = declare_dependency(link_with : libgthread)
+
+if meson.version().version_compare('>=0.54.0')
+  meson.override_dependency('gthread-2.0', libgthread_dep)
+endif
index 7491f1b..d36a0ce 100644 (file)
@@ -90,7 +90,7 @@ AC_ARG_ENABLE(glibtest, [  --disable-glibtest      do not try to compile and run
       CFLAGS="$CFLAGS $GLIB_CFLAGS"
       LIBS="$GLIB_LIBS $LIBS"
 dnl
-dnl Now check if the installed GLIB is sufficiently new. (Also sanity
+dnl Now check if the installed GLib is sufficiently new. (Also sanity
 dnl checks the results of pkg-config to some extent)
 dnl
       rm -f conf.glibtest
@@ -120,7 +120,7 @@ main (void)
              glib_major_version, glib_minor_version, glib_micro_version);
       printf ("*** was found! If pkg-config was correct, then it is best\n");
       printf ("*** to remove the old version of GLib. You may also be able to fix the error\n");
-      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** by modifying your LD_LIBRARY_PATH environment variable, or by editing\n");
       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
       printf("*** required on your system.\n");
       printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
@@ -130,7 +130,7 @@ main (void)
           (glib_minor_version != GLIB_MINOR_VERSION) ||
            (glib_micro_version != GLIB_MICRO_VERSION))
     {
-      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
+      printf("*** GLib header files (version %d.%d.%d) do not match\n",
             GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
       printf("*** library (version %d.%d.%d)\n",
             glib_major_version, glib_minor_version, glib_micro_version);
@@ -145,18 +145,18 @@ main (void)
        }
      else
       {
-        printf("\n*** An old version of GLIB (%u.%u.%u) was found.\n",
+        printf("\n*** An old version of GLib (%u.%u.%u) was found.\n",
                glib_major_version, glib_minor_version, glib_micro_version);
-        printf("*** You need a version of GLIB newer than %u.%u.%u. The latest version of\n",
+        printf("*** You need a version of GLib newer than %u.%u.%u. The latest version of\n",
               major, minor, micro);
-        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
+        printf("*** GLib is always available from ftp://ftp.gtk.org.\n");
         printf("***\n");
         printf("*** If you have already installed a sufficiently new version, this error\n");
         printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
         printf("*** being found. The easiest way to fix this is to remove the old version\n");
-        printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n");
+        printf("*** of GLib, but you can also set the PKG_CONFIG environment to point to the\n");
         printf("*** correct copy of pkg-config. (In this case, you will have to\n");
-        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf\n");
         printf("*** so that the correct libraries are found at run-time))\n");
       }
     }
@@ -179,7 +179,7 @@ main (void)
        if test -f conf.glibtest ; then
         :
        else
-          echo "*** Could not run GLIB test program, checking why..."
+          echo "*** Could not run GLib test program, checking why..."
           ac_save_CFLAGS="$CFLAGS"
           ac_save_LIBS="$LIBS"
           CFLAGS="$CFLAGS $GLIB_CFLAGS"
@@ -189,8 +189,8 @@ main (void)
 #include <stdio.h>
 ],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
         [ echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
-          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
+          echo "*** that the run-time linker is not finding GLib or finding the wrong"
+          echo "*** version of GLib. If it is not finding GLib, you'll need to set your"
           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
           echo "*** is required on your system"
@@ -198,7 +198,7 @@ main (void)
           echo "*** If you have an old version installed, it is best to remove it, although"
           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
         [ echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means GLIB is incorrectly installed."])
+          echo "*** exact error that occurred. This usually means GLib is incorrectly installed."])
           CFLAGS="$ac_save_CFLAGS"
           LIBS="$ac_save_LIBS"
        fi
index b2a03ce..79726d2 100644 (file)
@@ -1,5 +1,5 @@
 project('glib', 'c', 'cpp',
-  version : '2.64.6',
+  version : '2.65.0',
   # NOTE: We keep this pinned at 0.49 because that's what Debian 10 ships
   meson_version : '>= 0.49.2',
   default_options : [
@@ -33,6 +33,16 @@ endif
 
 host_system = host_machine.system()
 
+if host_system == 'darwin'
+  ios_test_code = '''#include <TargetConditionals.h>
+  #if ! TARGET_OS_IPHONE
+  #error "Not iOS/tvOS/watchOS/iPhoneSimulator"
+  #endif'''
+  if cc.compiles(ios_test_code, name : 'building for iOS')
+    host_system = 'ios'
+  endif
+endif
+
 glib_version = meson.project_version()
 glib_api_version = '2.0'
 version_arr = glib_version.split('.')
@@ -210,15 +220,37 @@ else
 endif
 glibconfig_conf.set('glib_os', glib_os)
 
-# We need to know the build type to determine what .lib files we need on Visual Studio
-# for dependencies that don't normally come with pkg-config files for Visual Studio builds
-buildtype = get_option('buildtype')
+# We need to know the CRT being used to determine what .lib files we need on
+# Visual Studio for dependencies that don't normally come with pkg-config files
+vs_crt = 'release'
+vs_crt_opt = get_option('b_vscrt')
+if vs_crt_opt in ['mdd', 'mtd']
+  vs_crt = 'debug'
+elif vs_crt_opt == 'from_buildtype'
+  if get_option('buildtype') == 'debug'
+    vs_crt = 'debug'
+  endif
+endif
 
+# Use debug/optimization flags to determine whether to enable debug or disable
+# cast checks
 glib_debug_cflags = []
-if buildtype.startswith('debug')
+if get_option('debug')
   glib_debug_cflags += ['-DG_ENABLE_DEBUG']
-elif buildtype == 'release'
+  message('Enabling various debug infrastructure')
+elif get_option('optimization') in ['2', '3', 's']
   glib_debug_cflags += ['-DG_DISABLE_CAST_CHECKS']
+  message('Disabling cast checks')
+endif
+
+if not get_option('glib_assert')
+  glib_debug_cflags += ['-DG_DISABLE_ASSERT']
+  message('Disabling GLib asserts')
+endif
+
+if not get_option('glib_checks')
+  glib_debug_cflags += ['-DG_DISABLE_CHECKS']
+  message('Disabling GLib checks')
 endif
 
 add_project_arguments(glib_debug_cflags, language: 'c')
@@ -480,9 +512,14 @@ functions = [
   'wcslen',
   'wcsnlen',
   'sysctlbyname',
-  '_NSGetEnviron',
 ]
 
+# _NSGetEnviron is available on iOS too, but its usage gets apps rejected from
+# the app store since it's considered 'private API'
+if host_system == 'darwin'
+  functions += ['_NSGetEnviron']
+endif
+
 if glib_conf.has('HAVE_SYS_STATVFS_H')
   functions += ['statvfs']
 else
@@ -547,6 +584,19 @@ if host_system != 'windows' and cc.has_function('stpcpy', prefix : '#include <st
   glib_conf.set('HAVE_STPCPY', 1)
 endif
 
+# When building for Android-20 and earlier, require Meson 0.54.2 or newer.
+# This is needed, because Meson build versions prior to 0.54.2 return false
+# positive for stpcpy has_function check when building for legacy Android.
+if host_system.startswith('android-')
+    android_is_older = cc.compiles('''#if __ANDROID_API__ >= 21
+                                        #error Android is 21 or newer
+                                    #endif''')
+    if android_is_older and meson.version().version_compare('< 0.54.2')
+      error('Compiling for <Android-21 requires Meson 0.54.2 or newer')
+    endif
+endif
+
+
 # Check that posix_memalign() is usable; must use header
 if host_system != 'windows' and cc.has_function('posix_memalign', prefix : '#include <stdlib.h>')
   glib_conf.set('HAVE_POSIX_MEMALIGN', 1)
@@ -834,15 +884,6 @@ if host_system == 'windows' and (cc.get_id() == 'msvc' or cc.get_id() == 'clang-
   glib_conf.set('HAVE_C99_SNPRINTF', false)
   glib_conf.set('HAVE_C99_VSNPRINTF', false)
   glib_conf.set('HAVE_UNIX98_PRINTF', false)
-elif not cc_can_run and host_system in ['ios', 'darwin']
-  # All these are true when compiling natively on macOS, so we should use good
-  # defaults when building for iOS and tvOS.
-  glib_conf.set('HAVE_C99_SNPRINTF', true)
-  glib_conf.set('HAVE_C99_VSNPRINTF', true)
-  glib_conf.set('HAVE_UNIX98_PRINTF', true)
-  have_good_vsnprintf = true
-  have_good_snprintf = true
-  have_good_printf = true
 else
   vsnprintf_c99_test_code = '''
 #include <stdio.h>
@@ -1663,18 +1704,6 @@ foreach d : inet_defines
   glibconfig_conf.set(d[1], val)
 endforeach
 
-# We need a more robust approach here...
-host_cpu_family = host_machine.cpu_family()
-if host_cpu_family == 'x86' or host_cpu_family == 'x86_64' or host_cpu_family == 's390' or host_cpu_family == 's390x' or host_cpu_family.startswith('arm') or host_cpu_family == 'aarch64' or host_cpu_family.startswith('crisv32') or host_cpu_family.startswith('etrax')
-  glib_memory_barrier_needed = false
-elif host_cpu_family.startswith('sparc') or host_cpu_family.startswith('alpha') or host_cpu_family.startswith('powerpc') or host_cpu_family == 'ia64'
-  glib_memory_barrier_needed = true
-else
-  warning('Unknown host cpu: ' + host_cpu_family)
-  glib_memory_barrier_needed = true
-endif
-glibconfig_conf.set('G_ATOMIC_OP_MEMORY_BARRIER_NEEDED', glib_memory_barrier_needed)
-
 # We need to decide at configure time if GLib will use real atomic
 # operations ("lock free") or emulated ones with a mutex.  This is
 # because we must put this information in glibconfig.h so we know if
@@ -1869,7 +1898,7 @@ else
     # MSVC: Search for the PCRE library by the configuration, which corresponds
     # to the output of CMake builds of PCRE.  Note that debugoptimized
     # is really a Release build with .PDB files.
-      if buildtype == 'debug'
+      if vs_crt == 'debug'
         pcre = cc.find_library('pcred', required : false)
       else
         pcre = cc.find_library('pcre', required : false)
@@ -1925,17 +1954,40 @@ endif
 # proxy-libintl subproject.
 # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
 # implementations. This could be extended if issues are found in some platforms.
+libintl_deps = []
 if cc.has_function('ngettext')
-  libintl = []
   have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset')
 else
+  # First just find the bare library.
   libintl = cc.find_library('intl', required : false)
+  # The bare library probably won't link without help if it's static.
+  if libintl.found() and not cc.has_function('ngettext', dependencies : libintl)
+     libintl_iconv = cc.find_library('iconv', required : false)
+     # libintl supports different threading APIs, which may not
+     # require additional flags, but it defaults to using pthreads if
+     # found. Meson's "threads" dependency does not allow you to
+     # prefer pthreads. We may not be using pthreads for glib itself
+     # either so just link the library to satisfy libintl rather than
+     # also defining the macros with the -pthread flag.
+     libintl_pthread = cc.find_library('pthread', required : false)
+     # Try linking with just libiconv.
+     if libintl_iconv.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_iconv])
+       libintl_deps += [libintl_iconv]
+     # Then also try linking with pthreads.
+     elif libintl_iconv.found() and libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_iconv, libintl_pthread])
+       libintl_deps += [libintl_iconv, libintl_pthread]
+     else
+       libintl = disabler()
+     endif
+  endif
   if not libintl.found()
     libintl = subproject('proxy-libintl').get_variable('intl_dep')
+    libintl_deps = [libintl] + libintl_deps
     have_bind_textdomain_codeset = true  # proxy-libintl supports it
   else
+    libintl_deps = [libintl] + libintl_deps
     have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset',
-                                                   dependencies : libintl)
+                                                   dependencies : libintl_deps)
   endif
 endif
 
@@ -2034,8 +2086,6 @@ cmdline_test_code = '''
 #include <sys/stat.h>
 #include <stdio.h>
 #include <stdlib.h>
-#undef NDEBUG
-#include <assert.h>
 
 static int
 __getcmdline (void)
@@ -2049,16 +2099,24 @@ __getcmdline (void)
   struct stat stat_buf;
 
   int fd = open ("/proc/self/cmdline", O_RDONLY|O_BINARY);
-  assert (fd >= 0);
-  assert (fstat (fd, &stat_buf) == 0);
+  if (fd < 0)
+    exit (1);
+  if (fstat (fd, &stat_buf))
+    exit (1);
 
   if (stat_buf.st_size > 0 && S_ISREG (stat_buf.st_mode))
-    assert (read (fd, result, BUFSIZE) > 0);
+    {
+      if (read (fd, result, BUFSIZE) <= 0)
+        exit (1);
+    }
   else
     {
       FILE *f = fdopen (fd, "r");
-      assert (f != NULL);
-      assert (fread (result, 1, BUFSIZE, f) > 0);
+      if (f == NULL)
+        exit (1);
+
+      if (fread (result, 1, BUFSIZE, f) <= 0)
+        exit (1);
     }
 
   return 0;
@@ -2112,7 +2170,7 @@ if host_system == 'windows'
   export_dynamic_ldflags = []
 elif host_system == 'cygwin'
   export_dynamic_ldflags = ['-Wl,--export-all-symbols']
-elif host_system == 'darwin'
+elif host_system in ['darwin', 'ios']
   export_dynamic_ldflags = []
 elif host_system == 'sunos'
   export_dynamic_ldflags = []
index 6c72168..80a1d9d 100644 (file)
@@ -94,3 +94,15 @@ option('oss_fuzz',
        type : 'feature',
        value : 'disabled',
        description : 'Indicate oss-fuzz build environment')
+
+option('glib_assert',
+       type : 'boolean',
+       value : true,
+       yield : true,
+       description : 'Enable GLib assertion (see docs/macros.txt)')
+
+option('glib_checks',
+       type : 'boolean',
+       value : true,
+       yield : true,
+       description : 'Enable GLib checks such as API guards (see docs/macros.txt)')
index a761fe3..c9b967f 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -2569,7 +2569,7 @@ msgstr "<choices> no està permès per a claus del tipus «%s»"
 #: gio/glib-compile-schemas.c:528
 #, c-format
 msgid "<choice value='%s'/> already given"
-msgstr "ja està especificat <choice value='%s'>"
+msgstr "ja està especificat <choice value='%s'/>"
 
 #: gio/glib-compile-schemas.c:543
 #, c-format
index bad8bfe..0c6265e 100644 (file)
@@ -2543,7 +2543,7 @@ msgstr "<choices> no està permés per a claus del tipus «%s»"
 #: ../gio/glib-compile-schemas.c:529
 #, c-format
 msgid "<choice value='%s'/> already given"
-msgstr "ja està especificat <choice value='%s'>"
+msgstr "ja està especificat <choice value='%s'/>"
 
 #: ../gio/glib-compile-schemas.c:544
 #, c-format
index 50bfc97..92c132f 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,19 +7,19 @@
 # Andre Klapper <ak-47@gmx.net>, 2007, 2008.
 # Philipp Kerling <k.philipp@gmail.com>, 2008.
 # Mario Blättermann <mario.blaettermann@gmail.com>, 2010-2013, 2015-2018.
-# Wolfgang Stöggl <c72578@yahoo.de>, 2011, 2015-2016, 2020.
+# Wolfgang Stöggl <c72578@yahoo.de>, 2011, 2015-2016.
 # Christian Kirbach <Christian.Kirbach@gmail.com>, 2009, 2010, 2012.
 # Tobias Endrigkeit <tobiasendrigkeit@googlemail.com>, 2012.
 # Bernd Homuth <dev@hmt.im>, 2015.
-# Tim Sabsch <tim@sabsch.com>, 2019.
+# Tim Sabsch <tim@sabsch.com>, 2019-2020.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: glib master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-04-03 16:42+0000\n"
-"PO-Revision-Date: 2020-04-07 21:17+0200\n"
-"Last-Translator: Wolfgang Stoeggl <c72578@yahoo.de>\n"
+"POT-Creation-Date: 2020-03-04 15:36+0000\n"
+"PO-Revision-Date: 2020-03-05 20:30+0100\n"
+"Last-Translator: Tim Sabsch <tim@sabsch.com>\n"
 "Language-Team: Deutsch <gnome-de@gnome.org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
@@ -984,7 +984,7 @@ msgid ""
 "Cannot invoke method; proxy is for the well-known name %s without an owner, "
 "and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
 msgstr ""
-"Die Methode kann nicht aufgerufen werden; Der Proxy ist für den allgemein "
+"Die Methode kann nicht aufgerufen werden; Der Proxy ist fürden allgemein "
 "bekannten Namen %s ohne Besitzer, und der Proxy wurde mit dem Flag "
 "»G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START« erstellt"
 
@@ -1352,12 +1352,12 @@ msgstr "Laufwerk unterstützt keinen Startvorgang"
 msgid "drive doesn’t implement stop"
 msgstr "Laufwerk unterstützt keinen Stoppvorgang"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
+#: gio/gdummytlsbackend.c:509
 msgid "TLS support is not available"
 msgstr "TLS-Unterstützung ist nicht verfügbar"
 
-#: gio/gdummytlsbackend.c:423
+#: gio/gdummytlsbackend.c:419
 msgid "DTLS support is not available"
 msgstr "DTLS-Unterstützung ist nicht verfügbar"
 
@@ -1769,7 +1769,7 @@ msgstr "Niemals symbolischen Verknüpfungen folgen"
 
 #: gio/gio-tool-copy.c:49
 msgid "Use default permissions for the destination"
-msgstr "Voreingestellte Berechtigungen für das Ziel verwenden"
+msgstr "Standardberechtigungen für das Ziel verwenden"
 
 #: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
 #, c-format
@@ -1872,12 +1872,12 @@ msgstr "Adresse: %s\n"
 #: gio/gio-tool-info.c:172
 #, c-format
 msgid "local path: %s\n"
-msgstr "lokaler Pfad: %s\n"
+msgstr "Lokaler Pfad: %s\n"
 
 #: gio/gio-tool-info.c:199
 #, c-format
 msgid "unix mount: %s%s %s %s %s\n"
-msgstr "Unix-Einbindung: %s%s %s %s %s\n"
+msgstr "Unix-Einhängepunkt: %s%s %s %s %s\n"
 
 #: gio/gio-tool-info.c:279
 msgid "Settable attributes:\n"
@@ -2060,11 +2060,11 @@ msgstr "Als einhängbar einbinden"
 
 #: gio/gio-tool-mount.c:64
 msgid "Mount volume with device file, or other identifier"
-msgstr "Datenträger über Gerätedatei, oder anderem Bezeichner einhängen"
+msgstr "Datenträger über Gerätedatei oder anderen Bezeichner einhängen"
 
 #: gio/gio-tool-mount.c:64
 msgid "ID"
-msgstr "KENNUNG"
+msgstr "Kennung"
 
 #: gio/gio-tool-mount.c:65
 msgid "Unmount"
@@ -2139,7 +2139,7 @@ msgstr "Kein Laufwerk für Gerätedatei"
 
 #: gio/gio-tool-mount.c:1014
 msgid "No volume for given ID"
-msgstr "Kein Datenträger für die genannte KENNUG"
+msgstr "Kein Datenträger für angegebene Kennung"
 
 #: gio/gio-tool-mount.c:1203
 msgid "Mount or unmount the locations."
@@ -2424,7 +2424,7 @@ msgid ""
 "Don’t embed resource data in the C file; assume it's linked externally "
 "instead"
 msgstr ""
-"Ressourcendaten nicht in der C-Datei einbetten; stattdessen externe "
+"Ressourcendaten nicht in der C-Datei einbetten; stattdesssen externe "
 "Verlinkung voraussetzen"
 
 #: gio/glib-compile-resources.c:749
@@ -2509,7 +2509,7 @@ msgstr "<range> ist für Schlüssel des Typs »%s« nicht erlaubt"
 #: gio/glib-compile-schemas.c:407
 #, c-format
 msgid "<range> specified minimum is greater than maximum"
-msgstr "<range> angegebenes Minimum ist größer als das Maximum"
+msgstr "<range> angebenenes Minimum ist größer als das Maximum"
 
 #: gio/glib-compile-schemas.c:432
 #, c-format
@@ -2550,7 +2550,7 @@ msgstr "<choices> ist für Schlüssel des Typs »%s« nicht erlaubt"
 #: gio/glib-compile-schemas.c:528
 #, c-format
 msgid "<choice value='%s'/> already given"
-msgstr "<choice value='%s'> wurde bereits angegeben"
+msgstr "<choice value='%s'/> wurde bereits angegeben"
 
 #: gio/glib-compile-schemas.c:543
 #, c-format
@@ -2588,7 +2588,7 @@ msgstr ""
 #: gio/glib-compile-schemas.c:594
 #, c-format
 msgid "<alias value='%s'/> already specified"
-msgstr "<alias value='%s'> bereits angegeben"
+msgstr "<alias value='%s'/> bereits angegeben"
 
 #: gio/glib-compile-schemas.c:604
 #, c-format
@@ -4009,15 +4009,15 @@ msgstr "Der Server ist kein SOCKSv4-Proxy-Server."
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr "Verbindung durch SOCKSv4-Server wurde abgewiesen"
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "Der Server ist kein SOCKSv5-Proxy-Server."
 
-#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
+#: gio/gsocks5proxy.c:167
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr "Der SOCKSv5-Proxy erfordert Legitimierung."
 
-#: gio/gsocks5proxy.c:191
+#: gio/gsocks5proxy.c:177
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
@@ -4025,54 +4025,54 @@ msgstr ""
 "Der SOCKSv5 erfordert eine Legitimierungsmethode, die durch GLib nicht "
 "unterstützt wird."
 
-#: gio/gsocks5proxy.c:220
+#: gio/gsocks5proxy.c:206
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr "Benutzername oder Passwort ist zu lang für das SOCKSv5-Protokoll."
 
-#: gio/gsocks5proxy.c:250
+#: gio/gsocks5proxy.c:236
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr ""
 "SOCKSv5-Legitimierung scheiterte wegen falschen Benutzernamens oder "
 "Passworts."
 
-#: gio/gsocks5proxy.c:300
+#: gio/gsocks5proxy.c:286
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv5 protocol"
 msgstr "Rechnername »%s« ist zu lang für das SOCKSv5-Protokoll"
 
-#: gio/gsocks5proxy.c:362
+#: gio/gsocks5proxy.c:348
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr "Der SOCKSv5-Proxy-Server verwendet einen unbekannten Adresstyp."
 
-#: gio/gsocks5proxy.c:369
+#: gio/gsocks5proxy.c:355
 msgid "Internal SOCKSv5 proxy server error."
 msgstr "Interner Fehler des SOCKSv5-Proxy-Servers."
 
-#: gio/gsocks5proxy.c:375
+#: gio/gsocks5proxy.c:361
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr "SOCKSv5-Verbindung ist aufgrund des Regelwerks nicht erlaubt."
 
-#: gio/gsocks5proxy.c:382
+#: gio/gsocks5proxy.c:368
 msgid "Host unreachable through SOCKSv5 server."
 msgstr "Rechner ist über den SOCKSv5-Server nicht erreichbar."
 
-#: gio/gsocks5proxy.c:388
+#: gio/gsocks5proxy.c:374
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr "Das Netzwerk ist durch den SOCKSv5-Proxy nicht erreichbar."
 
-#: gio/gsocks5proxy.c:394
+#: gio/gsocks5proxy.c:380
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr "Verbindung wurde durch SOCKSv5-Proxy abgewiesen."
 
-#: gio/gsocks5proxy.c:400
+#: gio/gsocks5proxy.c:386
 msgid "SOCKSv5 proxy does not support “connect” command."
 msgstr "SOCKSv5-Proxy unterstützt den Befehl »connect« nicht."
 
-#: gio/gsocks5proxy.c:406
+#: gio/gsocks5proxy.c:392
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr "SOCKSv5-Proxy unterstützt den angegebenen Adresstyp nicht."
 
-#: gio/gsocks5proxy.c:412
+#: gio/gsocks5proxy.c:398
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Unbekannter Fehler im SOCKSv5-Proxy."
 
@@ -4203,12 +4203,12 @@ msgstr "Kontrollnachricht wurde nicht erwartet, %d wurde erhalten"
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "Fehler beim Deaktivieren von SO_PASSCRED: %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:362 gio/gunixinputstream.c:383
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "Fehler beim Lesen aus dem Dateideskriptor: %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
+#: gio/gunixinputstream.c:416 gio/gunixoutputstream.c:525
 #: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
@@ -4218,9 +4218,9 @@ msgstr "Fehler beim Schließen des Dateideskriptors: %s"
 msgid "Filesystem root"
 msgstr "Wurzelordner des Dateisystems"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:362 gio/gunixoutputstream.c:382
+#: gio/gunixoutputstream.c:469 gio/gunixoutputstream.c:489
+#: gio/gunixoutputstream.c:635
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "Fehler beim Schreiben in den Dateideskriptor: %s"
@@ -5177,7 +5177,7 @@ msgstr ""
 #: glib/gmarkup.c:1346
 #, c-format
 msgid "Too many attributes in element “%s”"
-msgstr "Zu viele Attribute im Elements »%s«"
+msgstr "Zu viele Attribute im Element »%s«"
 
 #: glib/gmarkup.c:1366
 #, c-format
index cfba3ad..66c9ade 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -14,8 +14,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib.master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-02-03 13:14+0000\n"
-"PO-Revision-Date: 2020-02-04 10:50+0100\n"
+"POT-Creation-Date: 2020-03-31 14:16+0000\n"
+"PO-Revision-Date: 2020-04-30 12:07+0200\n"
 "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
 "Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
 "Language: es_ES\n"
@@ -23,7 +23,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Gtranslator 3.34.0\n"
+"X-Generator: Gtranslator 3.36.0\n"
 
 #: gio/gapplication.c:500
 msgid "GApplication options"
@@ -290,7 +290,7 @@ msgstr "El flujo ya se cerró"
 msgid "Truncate not supported on base stream"
 msgstr "No se soporta el truncado en el flujo base"
 
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1871 gio/gdbusprivate.c:1411
+#: gio/gcancellable.c:319 gio/gdbusconnection.c:1862 gio/gdbusprivate.c:1411
 #: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
 #, c-format
 msgid "Operation was cancelled"
@@ -310,13 +310,13 @@ msgstr "No hay suficiente espacio en el destino"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:447 glib/gconvert.c:877
-#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2453
+#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2461
 #: glib/gutf8.c:875 glib/gutf8.c:1328
 msgid "Invalid byte sequence in conversion input"
 msgstr "Hay una secuencia de bytes no válida en la entrada de conversión"
 
 #: gio/gcharsetconverter.c:347 glib/gconvert.c:455 glib/gconvert.c:791
-#: glib/giochannel.c:1571 glib/giochannel.c:2465
+#: glib/giochannel.c:1571 glib/giochannel.c:2473
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Falló durante la conversión: %s"
@@ -530,7 +530,7 @@ msgstr ""
 "No se puede determinar la dirección del bus de sesión (no implementado para "
 "este SO)"
 
-#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7191
+#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7190
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -539,7 +539,7 @@ msgstr ""
 "No se puede determinar la dirección del bus desde la variable de entorno "
 "DBUS_STARTER_BUS_TYPE; variable «%s» desconocida"
 
-#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7200
+#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7199
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -655,22 +655,22 @@ msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
 msgstr ""
 "(Adicionalmente, también falló la liberación del bloqueo para «%s»: %s)"
 
-#: gio/gdbusconnection.c:604 gio/gdbusconnection.c:2400
+#: gio/gdbusconnection.c:595 gio/gdbusconnection.c:2391
 msgid "The connection is closed"
 msgstr "La conexión está cerrada"
 
-#: gio/gdbusconnection.c:1901
+#: gio/gdbusconnection.c:1892
 msgid "Timeout was reached"
 msgstr "Se alcanzó el tiempo de expiración"
 
-#: gio/gdbusconnection.c:2522
+#: gio/gdbusconnection.c:2513
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 "Se encontraron opciones no soportadas al construir la conexión del lado del "
 "cliente"
 
-#: gio/gdbusconnection.c:4162 gio/gdbusconnection.c:4509
+#: gio/gdbusconnection.c:4161 gio/gdbusconnection.c:4508
 #, c-format
 msgid ""
 "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -678,75 +678,75 @@ msgstr ""
 "No existe la interfaz «org.freedesktop.DBus.Properties» en el objeto en la "
 "ruta %s"
 
-#: gio/gdbusconnection.c:4304
+#: gio/gdbusconnection.c:4303
 #, c-format
 msgid "No such property “%s”"
 msgstr "No existe la propiedad «%s»"
 
-#: gio/gdbusconnection.c:4316
+#: gio/gdbusconnection.c:4315
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "No se puede leer la propiedad «%s»"
 
-#: gio/gdbusconnection.c:4327
+#: gio/gdbusconnection.c:4326
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "No se puede escribir la propiedad «%s»"
 
-#: gio/gdbusconnection.c:4347
+#: gio/gdbusconnection.c:4346
 #, c-format
 msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
 msgstr ""
 "Error al establecer la propiedad «%s». Se esperaba el tipo «%s» pero se "
 "obtuvo «%s»."
 
-#: gio/gdbusconnection.c:4452 gio/gdbusconnection.c:4660
-#: gio/gdbusconnection.c:6631
+#: gio/gdbusconnection.c:4451 gio/gdbusconnection.c:4659
+#: gio/gdbusconnection.c:6630
 #, c-format
 msgid "No such interface “%s”"
 msgstr "La interfaz «%s» no existe"
 
-#: gio/gdbusconnection.c:4878 gio/gdbusconnection.c:7140
+#: gio/gdbusconnection.c:4877 gio/gdbusconnection.c:7139
 #, c-format
 msgid "No such interface “%s” on object at path %s"
 msgstr "No existe la interfaz «%s» en el objeto en la ruta %s"
 
-#: gio/gdbusconnection.c:4976
+#: gio/gdbusconnection.c:4975
 #, c-format
 msgid "No such method “%s”"
 msgstr "No existe el método «%s»"
 
-#: gio/gdbusconnection.c:5007
+#: gio/gdbusconnection.c:5006
 #, c-format
 msgid "Type of message, “%s”, does not match expected type “%s”"
 msgstr "El tipo de mensaje, «%s», no coincide con el tipo esperado «%s»"
 
-#: gio/gdbusconnection.c:5205
+#: gio/gdbusconnection.c:5204
 #, c-format
 msgid "An object is already exported for the interface %s at %s"
 msgstr "Ya existe un objeto exportado para la interfaz %s en %s"
 
-#: gio/gdbusconnection.c:5431
+#: gio/gdbusconnection.c:5430
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "No se pudo obtener la propiedad %s.%s"
 
-#: gio/gdbusconnection.c:5487
+#: gio/gdbusconnection.c:5486
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "No se pudo establecer la propiedad %s.%s"
 
-#: gio/gdbusconnection.c:5665
+#: gio/gdbusconnection.c:5664
 #, c-format
 msgid "Method “%s” returned type “%s”, but expected “%s”"
 msgstr "El método «%s» devolvió el tipo «%s» pero se esperaba «%s»"
 
-#: gio/gdbusconnection.c:6742
+#: gio/gdbusconnection.c:6741
 #, c-format
 msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
 msgstr "El método «%s» con interfaz «%s» y firma «%s» no existe"
 
-#: gio/gdbusconnection.c:6863
+#: gio/gdbusconnection.c:6862
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "Ya se ha exportado un subárbol para %s"
@@ -981,17 +981,17 @@ msgstr "No se pudo obtener el perfil de hardware: %s"
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "No se puede cargar /var/lib/dbus/machine-id o /etc/machine-id: "
 
-#: gio/gdbusproxy.c:1625
+#: gio/gdbusproxy.c:1562
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Error al llamar StartSereviceByName para %s: "
 
-#: gio/gdbusproxy.c:1648
+#: gio/gdbusproxy.c:1585
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Respuesta %d no esperada del método StartServiceByName(«%s»)"
 
-#: gio/gdbusproxy.c:2748 gio/gdbusproxy.c:2883
+#: gio/gdbusproxy.c:2685 gio/gdbusproxy.c:2820
 #, c-format
 msgid ""
 "Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1050,13 +1050,13 @@ msgstr ""
 "Use «%s COMANDO --help» para obtener ayuda de cada comando.\n"
 
 #: gio/gdbus-tool.c:197 gio/gdbus-tool.c:264 gio/gdbus-tool.c:336
-#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:846 gio/gdbus-tool.c:1183
-#: gio/gdbus-tool.c:1668
+#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:850 gio/gdbus-tool.c:1187
+#: gio/gdbus-tool.c:1672
 #, c-format
 msgid "Error: %s\n"
 msgstr "Error: %s\n"
 
-#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1684
+#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1688
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr "Error al analizar la introspección XML: %s\n"
@@ -1086,17 +1086,17 @@ msgstr "Opciones de conexión del extremo:"
 msgid "Options specifying the connection endpoint"
 msgstr "Opciones para especificar la conexión del extremo:"
 
-#: gio/gdbus-tool.c:429
+#: gio/gdbus-tool.c:430
 #, c-format
 msgid "No connection endpoint specified"
 msgstr "No se especificó ningún punto de conexión extremo"
 
-#: gio/gdbus-tool.c:439
+#: gio/gdbus-tool.c:440
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr "Se especificaron varios puntos de conexión extremos"
 
-#: gio/gdbus-tool.c:509
+#: gio/gdbus-tool.c:513
 #, c-format
 msgid ""
 "Warning: According to introspection data, interface “%s” does not exist\n"
@@ -1104,7 +1104,7 @@ msgstr ""
 "Advertencia: según la introspección de los datos, la interfaz «%s» no "
 "existe\n"
 
-#: gio/gdbus-tool.c:518
+#: gio/gdbus-tool.c:522
 #, c-format
 msgid ""
 "Warning: According to introspection data, method “%s” does not exist on "
@@ -1113,162 +1113,162 @@ msgstr ""
 "Advertencia: según la introspección de los datos, el método «%s» no existe "
 "en la interfaz «%s»\n"
 
-#: gio/gdbus-tool.c:580
+#: gio/gdbus-tool.c:584
 msgid "Optional destination for signal (unique name)"
 msgstr "Destino opcional para la señal (nombre único)"
 
-#: gio/gdbus-tool.c:581
+#: gio/gdbus-tool.c:585
 msgid "Object path to emit signal on"
 msgstr "Ruta del objeto sobre el que emitir la señal"
 
-#: gio/gdbus-tool.c:582
+#: gio/gdbus-tool.c:586
 msgid "Signal and interface name"
 msgstr "Nombres de la interfaz y señal"
 
-#: gio/gdbus-tool.c:615
+#: gio/gdbus-tool.c:619
 msgid "Emit a signal."
 msgstr "Emitir una señal."
 
-#: gio/gdbus-tool.c:670 gio/gdbus-tool.c:977 gio/gdbus-tool.c:1771
-#: gio/gdbus-tool.c:2003 gio/gdbus-tool.c:2223
+#: gio/gdbus-tool.c:674 gio/gdbus-tool.c:981 gio/gdbus-tool.c:1775
+#: gio/gdbus-tool.c:2007 gio/gdbus-tool.c:2227
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "Error al conectar: %s\n"
 
-#: gio/gdbus-tool.c:690
+#: gio/gdbus-tool.c:694
 #, c-format
 msgid "Error: %s is not a valid unique bus name.\n"
 msgstr "Error: %s no es un nombre de bus único válido.\n"
 
-#: gio/gdbus-tool.c:709 gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1814
+#: gio/gdbus-tool.c:713 gio/gdbus-tool.c:1024 gio/gdbus-tool.c:1818
 msgid "Error: Object path is not specified\n"
 msgstr "Error: no se especificó la ruta del objeto\n"
 
-#: gio/gdbus-tool.c:732 gio/gdbus-tool.c:1040 gio/gdbus-tool.c:1834
-#: gio/gdbus-tool.c:2074
+#: gio/gdbus-tool.c:736 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1838
+#: gio/gdbus-tool.c:2078
 #, c-format
 msgid "Error: %s is not a valid object path\n"
 msgstr "Error: %s no es una ruta de objeto válida\n"
 
-#: gio/gdbus-tool.c:752
+#: gio/gdbus-tool.c:756
 msgid "Error: Signal name is not specified\n"
 msgstr "Error: no se especificó el nombre de la señal\n"
 
-#: gio/gdbus-tool.c:766
+#: gio/gdbus-tool.c:770
 #, c-format
 msgid "Error: Signal name “%s” is invalid\n"
 msgstr "Error: el nombre de la señal «%s» no es válido\n"
 
-#: gio/gdbus-tool.c:778
+#: gio/gdbus-tool.c:782
 #, c-format
 msgid "Error: %s is not a valid interface name\n"
 msgstr "Error: %s no es un nombre de interfaz válida\n"
 
-#: gio/gdbus-tool.c:784
+#: gio/gdbus-tool.c:788
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr "Error: %s no es un nombre de miembro válido\n"
 
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:821 gio/gdbus-tool.c:1152
+#: gio/gdbus-tool.c:825 gio/gdbus-tool.c:1156
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr "Error al analizar el parámetro %d: %s\n"
 
-#: gio/gdbus-tool.c:853
+#: gio/gdbus-tool.c:857
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr "Error al limpiar la conexión: %s\n"
 
-#: gio/gdbus-tool.c:880
+#: gio/gdbus-tool.c:884
 msgid "Destination name to invoke method on"
 msgstr "Nombre del detino sobre el que invocar elmétodo"
 
-#: gio/gdbus-tool.c:881
+#: gio/gdbus-tool.c:885
 msgid "Object path to invoke method on"
 msgstr "Ruta del objeto sobre la que invocar el método"
 
-#: gio/gdbus-tool.c:882
+#: gio/gdbus-tool.c:886
 msgid "Method and interface name"
 msgstr "Nombre de la interfaz y método"
 
-#: gio/gdbus-tool.c:883
+#: gio/gdbus-tool.c:887
 msgid "Timeout in seconds"
 msgstr "Tiempo de expiración en segundos"
 
-#: gio/gdbus-tool.c:922
+#: gio/gdbus-tool.c:926
 msgid "Invoke a method on a remote object."
 msgstr "Invocar un método en un objeto remoto."
 
-#: gio/gdbus-tool.c:994 gio/gdbus-tool.c:1788 gio/gdbus-tool.c:2028
+#: gio/gdbus-tool.c:998 gio/gdbus-tool.c:1792 gio/gdbus-tool.c:2032
 msgid "Error: Destination is not specified\n"
 msgstr "Error: el destino no está especificado\n"
 
-#: gio/gdbus-tool.c:1005 gio/gdbus-tool.c:1805 gio/gdbus-tool.c:2039
+#: gio/gdbus-tool.c:1009 gio/gdbus-tool.c:1809 gio/gdbus-tool.c:2043
 #, c-format
 msgid "Error: %s is not a valid bus name\n"
 msgstr "Error: %s no es un nombre de bus válido\n"
 
-#: gio/gdbus-tool.c:1055
+#: gio/gdbus-tool.c:1059
 msgid "Error: Method name is not specified\n"
 msgstr "Error: no se especificó el nombre del método\n"
 
-#: gio/gdbus-tool.c:1066
+#: gio/gdbus-tool.c:1070
 #, c-format
 msgid "Error: Method name “%s” is invalid\n"
 msgstr "Error: el nombre del método «%s» no es válido\n"
 
-#: gio/gdbus-tool.c:1144
+#: gio/gdbus-tool.c:1148
 #, c-format
 msgid "Error parsing parameter %d of type “%s”: %s\n"
 msgstr "Error al analizar el parámetro %d del tipo «%s»: %s\n"
 
-#: gio/gdbus-tool.c:1630
+#: gio/gdbus-tool.c:1634
 msgid "Destination name to introspect"
 msgstr "Nombre de destino que introspeccionar"
 
-#: gio/gdbus-tool.c:1631
+#: gio/gdbus-tool.c:1635
 msgid "Object path to introspect"
 msgstr "Ruta del objeto que introspeccionar"
 
-#: gio/gdbus-tool.c:1632
+#: gio/gdbus-tool.c:1636
 msgid "Print XML"
 msgstr "Imprimir XML"
 
-#: gio/gdbus-tool.c:1633
+#: gio/gdbus-tool.c:1637
 msgid "Introspect children"
 msgstr "Introspeccionar hijo"
 
-#: gio/gdbus-tool.c:1634
+#: gio/gdbus-tool.c:1638
 msgid "Only print properties"
 msgstr "Solo mostrar propiedades"
 
-#: gio/gdbus-tool.c:1723
+#: gio/gdbus-tool.c:1727
 msgid "Introspect a remote object."
 msgstr "Introspeccionar un objeto remoto."
 
-#: gio/gdbus-tool.c:1929
+#: gio/gdbus-tool.c:1933
 msgid "Destination name to monitor"
 msgstr "Nombre de destino para monitorizar"
 
-#: gio/gdbus-tool.c:1930
+#: gio/gdbus-tool.c:1934
 msgid "Object path to monitor"
 msgstr "Ruta objeto para monitorizar"
 
-#: gio/gdbus-tool.c:1955
+#: gio/gdbus-tool.c:1959
 msgid "Monitor a remote object."
 msgstr "Monitorizar un objeto remoto."
 
-#: gio/gdbus-tool.c:2013
+#: gio/gdbus-tool.c:2017
 msgid "Error: can’t monitor a non-message-bus connection\n"
 msgstr ""
 "Error: no se puede monitorizar una conexión que no sea de mensajes del bus\n"
 
-#: gio/gdbus-tool.c:2137
+#: gio/gdbus-tool.c:2141
 msgid "Service to activate before waiting for the other one (well-known name)"
 msgstr "Servicio que activar antes de esperar a otro (nombre conocido)"
 
-#: gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:2144
 msgid ""
 "Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
 "(default)"
@@ -1276,65 +1276,65 @@ msgstr ""
 "Tiempo que esperar antes de salir con un error (en segundos); 0 para que no "
 "haya tiempo de expiración (predeterminado)"
 
-#: gio/gdbus-tool.c:2188
+#: gio/gdbus-tool.c:2192
 msgid "[OPTION…] BUS-NAME"
 msgstr "[OPCIÓN…] NOMBRE-BUS"
 
-#: gio/gdbus-tool.c:2189
+#: gio/gdbus-tool.c:2193
 msgid "Wait for a bus name to appear."
 msgstr "Esperar a que aparezca el nombre del bus."
 
-#: gio/gdbus-tool.c:2265
+#: gio/gdbus-tool.c:2269
 msgid "Error: A service to activate for must be specified.\n"
 msgstr "Error: se debe especificar un servicio que activar.\n"
 
-#: gio/gdbus-tool.c:2270
+#: gio/gdbus-tool.c:2274
 msgid "Error: A service to wait for must be specified.\n"
 msgstr "Error: se debe especificar un servicio al que esperar.\n"
 
-#: gio/gdbus-tool.c:2275
+#: gio/gdbus-tool.c:2279
 msgid "Error: Too many arguments.\n"
 msgstr "Demasiados argumentos.\n"
 
-#: gio/gdbus-tool.c:2283 gio/gdbus-tool.c:2290
+#: gio/gdbus-tool.c:2287 gio/gdbus-tool.c:2294
 #, c-format
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "Error: %s no es un nombre de bus conocido válido\n"
 
-#: gio/gdesktopappinfo.c:2072 gio/gdesktopappinfo.c:4870
+#: gio/gdesktopappinfo.c:2071 gio/gdesktopappinfo.c:4877
 msgid "Unnamed"
 msgstr "Sin nombre"
 
-#: gio/gdesktopappinfo.c:2482
+#: gio/gdesktopappinfo.c:2481
 msgid "Desktop file didn’t specify Exec field"
 msgstr "El archivo de escritorio no especificó el campo Exec"
 
-#: gio/gdesktopappinfo.c:2754
+#: gio/gdesktopappinfo.c:2761
 msgid "Unable to find terminal required for application"
 msgstr "Imposible encontrar el terminal requerido por la aplicación"
 
-#: gio/gdesktopappinfo.c:3406
+#: gio/gdesktopappinfo.c:3413
 #, c-format
 msgid "Can’t create user application configuration folder %s: %s"
 msgstr ""
 "No se puede crear la carpeta de configuración de la aplicación %s del "
 "usuario: %s"
 
-#: gio/gdesktopappinfo.c:3410
+#: gio/gdesktopappinfo.c:3417
 #, c-format
 msgid "Can’t create user MIME configuration folder %s: %s"
 msgstr "No se puede crear la carpeta de configuración MIME %s del usuario: %s"
 
-#: gio/gdesktopappinfo.c:3650 gio/gdesktopappinfo.c:3674
+#: gio/gdesktopappinfo.c:3657 gio/gdesktopappinfo.c:3681
 msgid "Application information lacks an identifier"
 msgstr "La información de la aplicación carece de un identificador"
 
-#: gio/gdesktopappinfo.c:3908
+#: gio/gdesktopappinfo.c:3915
 #, c-format
 msgid "Can’t create user desktop file %s"
 msgstr "No se puede crear el archivo de escritorio %s del usuario"
 
-#: gio/gdesktopappinfo.c:4042
+#: gio/gdesktopappinfo.c:4049
 #, c-format
 msgid "Custom definition for %s"
 msgstr "Definición personalizada para %s"
@@ -1362,12 +1362,12 @@ msgstr "la unidad no implementa reproducir"
 msgid "drive doesn’t implement stop"
 msgstr "la unidad no implementa detener"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
-#: gio/gdummytlsbackend.c:509
+#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
+#: gio/gdummytlsbackend.c:513
 msgid "TLS support is not available"
 msgstr "El soporte de TSL no está disponible"
 
-#: gio/gdummytlsbackend.c:419
+#: gio/gdummytlsbackend.c:423
 msgid "DTLS support is not available"
 msgstr "Soporte de DTSL no disponible"
 
@@ -3076,97 +3076,141 @@ msgstr "No se soporta mover archivos entre puntos de montaje"
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "No se pudo determinar el uso de disco de %s: %s"
 
-#: gio/glocalfileinfo.c:755
+#: gio/glocalfileinfo.c:760
 msgid "Attribute value must be non-NULL"
 msgstr "El valor del atributo de ser no nulo"
 
-#: gio/glocalfileinfo.c:762
+#: gio/glocalfileinfo.c:767
 msgid "Invalid attribute type (string expected)"
 msgstr "Tipo de atributo no válido (se esperaba una cadena)"
 
-#: gio/glocalfileinfo.c:769
+#: gio/glocalfileinfo.c:774
 msgid "Invalid extended attribute name"
 msgstr "Nombre extendido del atributo no válido"
 
-#: gio/glocalfileinfo.c:809
+#: gio/glocalfileinfo.c:814
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Error al establecer el atributo extendido «%s»: %s"
 
-#: gio/glocalfileinfo.c:1637
+#: gio/glocalfileinfo.c:1650
 msgid " (invalid encoding)"
 msgstr " (codificación no válida)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1814 gio/glocalfileoutputstream.c:909
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "Error al obtener la información del archivo «%s»: %s"
 
-#: gio/glocalfileinfo.c:2071
+#: gio/glocalfileinfo.c:2084
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Error al obtener la información del descriptor del archivo: %s"
 
-#: gio/glocalfileinfo.c:2116
+#: gio/glocalfileinfo.c:2129
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Tipo de atributo no válido (se esperaba uint32)"
 
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2147
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Tipo de atributo no válido (se esperaba uint64)"
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: gio/glocalfileinfo.c:2166 gio/glocalfileinfo.c:2185
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Tipo de atributo no válido (se esperaba una cadena byte)"
 
-#: gio/glocalfileinfo.c:2219
+#: gio/glocalfileinfo.c:2232
 msgid "Cannot set permissions on symlinks"
 msgstr "No se pueden establecer permisos en enlaces simbólicos"
 
-#: gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2248
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Error al establecer permisos: %s"
 
-#: gio/glocalfileinfo.c:2286
+#: gio/glocalfileinfo.c:2299
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Error al establecer el propietario: %s"
 
-#: gio/glocalfileinfo.c:2309
+#: gio/glocalfileinfo.c:2322
 msgid "symlink must be non-NULL"
 msgstr "el enlace simbólico debe ser no nulo"
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
+#: gio/glocalfileinfo.c:2362
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Error al establecer el enlace simbólico: %s"
 
-#: gio/glocalfileinfo.c:2328
+#: gio/glocalfileinfo.c:2341
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 "Error al establecer el enlace simbólico: el archivo no es un enlace simbólico"
 
-#: gio/glocalfileinfo.c:2454
+#: gio/glocalfileinfo.c:2413
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr ""
+"Los %d nanosegundos adicionales para la marca de tiempo UNIX %lld son "
+"negativos"
+
+#: gio/glocalfileinfo.c:2422
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr ""
+"Los %d nanosegundos adicionales para la marca de tiempo UNIX %lld alcanzan 1 "
+"segundo"
+
+#: gio/glocalfileinfo.c:2432
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr "La marca de tiempo UNIX %lld no cabe en 64 bits"
+
+#: gio/glocalfileinfo.c:2443
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr ""
+"La marca de tiempo UNIX %lld está fuera del rango soportado por Windows"
+
+#: gio/glocalfileinfo.c:2507
+#, c-format
+#| msgid "Value “%s” cannot be interpreted as a number."
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr "El nombre de archivo «%s» no se puede convertir a UTF-16"
+
+#: gio/glocalfileinfo.c:2526
+#, c-format
+#| msgid "Value “%s” cannot be interpreted as a number."
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr "No se puede abrir el archivo «%s»: error de Windows %lu"
+
+#: gio/glocalfileinfo.c:2539
+#, c-format
+#| msgid "Error setting modification or access time: %s"
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr ""
+"Error al establecer o modificar la hora de acceso para el archivo %s: %lu"
+
+#: gio/glocalfileinfo.c:2640
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Error al establecer o modificar el tiempo de acceso: %s"
 
-#: gio/glocalfileinfo.c:2477
+#: gio/glocalfileinfo.c:2663
 msgid "SELinux context must be non-NULL"
 msgstr "El contexto SELinux debe ser no nulo"
 
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2678
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Error al establecer el contexto SELinux: %s"
 
-#: gio/glocalfileinfo.c:2499
+#: gio/glocalfileinfo.c:2685
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux no está activado en este sistema"
 
-#: gio/glocalfileinfo.c:2591
+#: gio/glocalfileinfo.c:2777
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Establecer el atributo %s no está soportado"
@@ -3959,11 +4003,11 @@ msgstr "No se pudo conectar a %s: "
 msgid "Could not connect: "
 msgstr "No se pudo conectar: "
 
-#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1764
+#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1866
 msgid "Unknown error on connect"
 msgstr "Error desconocido al conectar"
 
-#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1672
+#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1668
 msgid "Proxying over a non-TCP connection is not supported."
 msgstr ""
 "No se soporta intentar hacer de proxy sobre una conexión que no es TCP."
@@ -4004,71 +4048,71 @@ msgstr "El servidor no es un servidor proxy SOCKSv4."
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr "Se rechazó la conexión a través del servidor SOCKSv4"
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
+#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "El servidor no es un servidor proxy SOCKSv5."
 
-#: gio/gsocks5proxy.c:167
+#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr "El servidor proxy SOCKSv5 requiere autenticación."
 
-#: gio/gsocks5proxy.c:177
+#: gio/gsocks5proxy.c:191
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
 msgstr ""
 "El servidor SOCKSv5 requiere un método de autenticación que GLib no soporta."
 
-#: gio/gsocks5proxy.c:206
+#: gio/gsocks5proxy.c:220
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr ""
 "El nombre de usuario o la contraseña son demasiado largos para el protocolo "
 "SOCKSv5."
 
-#: gio/gsocks5proxy.c:236
+#: gio/gsocks5proxy.c:250
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr ""
 "Falló la autenticación SOCKSv5 debido a un nombre de usuario o contraseña "
 "incorrecta."
 
-#: gio/gsocks5proxy.c:286
+#: gio/gsocks5proxy.c:300
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv5 protocol"
 msgstr "El nombre de equipo «%s» es demasiado largo para el protocolo SOCKSv5"
 
-#: gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:362
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr "El servidor proxy SOCKSv5 usa un tipo de dirección desconocido."
 
-#: gio/gsocks5proxy.c:355
+#: gio/gsocks5proxy.c:369
 msgid "Internal SOCKSv5 proxy server error."
 msgstr "Error interno de SOCKSv5 del servidor proxy."
 
-#: gio/gsocks5proxy.c:361
+#: gio/gsocks5proxy.c:375
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr "El conjunto de reglas no permite la conexión SOCKSv5."
 
-#: gio/gsocks5proxy.c:368
+#: gio/gsocks5proxy.c:382
 msgid "Host unreachable through SOCKSv5 server."
 msgstr "El servidor no es alcanzable a través del servidor SOCKSv5."
 
-#: gio/gsocks5proxy.c:374
+#: gio/gsocks5proxy.c:388
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr "La red no es alcanzable a través del proxy SOCKSv5."
 
-#: gio/gsocks5proxy.c:380
+#: gio/gsocks5proxy.c:394
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr "Se rechazó la conexión a través del proxy SOCKSv5."
 
-#: gio/gsocks5proxy.c:386
+#: gio/gsocks5proxy.c:400
 msgid "SOCKSv5 proxy does not support “connect” command."
 msgstr "El proxy SOCKSv5 no soporta el comando «connect»."
 
-#: gio/gsocks5proxy.c:392
+#: gio/gsocks5proxy.c:406
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr "El proxy SOCKSv5 no soporta el tipo de dirección proporcionado."
 
-#: gio/gsocks5proxy.c:398
+#: gio/gsocks5proxy.c:412
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Error desconocido del proxy SOCKSv5."
 
@@ -4198,24 +4242,24 @@ msgstr "No se esperaba un mensaje de control, pero se obtuvo %d"
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "Error al desactivar SO_PASSCRED: %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:362 gio/gunixinputstream.c:383
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "Error al leer del descriptor del archivo: %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
+#: gio/gunixinputstream.c:416 gio/gunixoutputstream.c:525
 #: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr "Error al cerrar el descriptor del archivo: %s"
 
-#: gio/gunixmounts.c:2664 gio/gunixmounts.c:2717
+#: gio/gunixmounts.c:2709 gio/gunixmounts.c:2762
 msgid "Filesystem root"
 msgstr "Sistema de archivos raíz"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:362 gio/gunixoutputstream.c:382
+#: gio/gunixoutputstream.c:469 gio/gunixoutputstream.c:489
+#: gio/gunixoutputstream.c:635
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "Error al escribir en el descriptor del archivo: %s"
@@ -4921,20 +4965,20 @@ msgstr "Falló al leer el enlace simbólico «%s»: %s"
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "No se pudo abrir el conversor de «%s» a «%s»: %s"
 
-#: glib/giochannel.c:1741
+#: glib/giochannel.c:1749
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr ""
 "No se puede hacer una lectura en bruto (raw) en g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1788 glib/giochannel.c:2046 glib/giochannel.c:2133
+#: glib/giochannel.c:1796 glib/giochannel.c:2054 glib/giochannel.c:2141
 msgid "Leftover unconverted data in read buffer"
 msgstr "Se han dejado datos no convertidos en el búfer de lectura"
 
-#: glib/giochannel.c:1869 glib/giochannel.c:1946
+#: glib/giochannel.c:1877 glib/giochannel.c:1954
 msgid "Channel terminates in a partial character"
 msgstr "El canal termina en un carácter parcial"
 
-#: glib/giochannel.c:1932
+#: glib/giochannel.c:1940
 msgid "Can’t do a raw read in g_io_channel_read_to_end"
 msgstr ""
 "No se puede hacer una lectura en bruto (raw) en g_io_channel_read_to_end"
index fde1c51..b6de776 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -2504,7 +2504,7 @@ msgstr "Valeur numérique non valide"
 #: gio/glib-compile-schemas.c:111
 #, c-format
 msgid "<value nick='%s'/> already specified"
-msgstr "<value nick='%s'> est déjà défini"
+msgstr "<value nick='%s'/> est déjà défini"
 
 #: gio/glib-compile-schemas.c:119
 #, c-format
@@ -2592,7 +2592,7 @@ msgstr "<choices> non autorisés pour des clés du type « %s »"
 #: gio/glib-compile-schemas.c:528
 #, c-format
 msgid "<choice value='%s'/> already given"
-msgstr "<choice value='%s'> a déjà été défini"
+msgstr "<choice value='%s'/> a déjà été défini"
 
 #: gio/glib-compile-schemas.c:543
 #, c-format
index 5e8de13..12ddfae 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -2543,7 +2543,7 @@ msgstr "<choices> non permitidas para as chaves do tipo “%s”"
 #: gio/glib-compile-schemas.c:528
 #, c-format
 msgid "<choice value='%s'/> already given"
-msgstr "<choice value='%s'> xa fornecido"
+msgstr "<choice value='%s'/> xa fornecido"
 
 #: gio/glib-compile-schemas.c:543
 #, c-format
index 50f2023..7cbca2a 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
 msgid ""
 msgstr ""
 "Project-Id-Version: glib 0\n"
-"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-08-22 13:31+0000\n"
-"PO-Revision-Date: 2020-09-05 23:54+0200\n"
-"Last-Translator: gogo <trebelnik2@gmail.com>\n"
+"Report-Msgid-Bugs-To: "
+"http://bugzilla.gnome.org/enter_bug.cgi?product=glib&keywords=I18N+L10N&compo"
+"nent=general\n"
+"POT-Creation-Date: 2012-07-14 18:53-0400\n"
+"PO-Revision-Date: 2011-10-23 20:51+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
-"Language: hr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 "X-Launchpad-Export-Date: 2014-01-06 11:59+0000\n"
-"X-Generator: Poedit 2.4.1\n"
-
-#: gio/gapplication.c:500
-msgid "GApplication options"
-msgstr "Mogućnosti GAplikacije"
-
-#: gio/gapplication.c:500
-msgid "Show GApplication options"
-msgstr "Prikaži mogućnosti GAplikacije"
-
-#: gio/gapplication.c:545
-msgid "Enter GApplication service mode (use from D-Bus service files)"
-msgstr "Uđi u servisni način GAplikacije (koristi se iz datoteka D-Bus usluge)"
-
-#: gio/gapplication.c:557
-msgid "Override the application’s ID"
-msgstr "Zaobiđi ID aplikacije"
-
-#: gio/gapplication.c:569
-msgid "Replace the running instance"
-msgstr "Zamijeni pokrenuti primjerak"
-
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:493 gio/gsettings-tool.c:567
-msgid "Print help"
-msgstr "Prikaži pomoć"
-
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:494 gio/gresource-tool.c:562
-msgid "[COMMAND]"
-msgstr "[NAREDBA]"
-
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
-msgid "Print version"
-msgstr "Prikaži inačicu"
-
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:573
-msgid "Print version information and exit"
-msgstr "Prikaži informaciju inačice i izađi"
-
-#: gio/gapplication-tool.c:52
-msgid "List applications"
-msgstr "Prikaži apliakcije"
-
-#: gio/gapplication-tool.c:53
-msgid "List the installed D-Bus activatable applications (by .desktop files)"
-msgstr ""
-"Prikaži instalirane aplikacije koje se pokreću D-Bus aktivacijom (po ."
-"desktop datotekama)"
-
-#: gio/gapplication-tool.c:55
-msgid "Launch an application"
-msgstr "Pokreni program"
-
-#: gio/gapplication-tool.c:56
-msgid "Launch the application (with optional files to open)"
-msgstr "Pokreni program (s neobaveznim datotekama za otvaranje)"
-
-#: gio/gapplication-tool.c:57
-msgid "APPID [FILE…]"
-msgstr "IDAPLIKACIJE [DATOTEKA…]]"
-
-#: gio/gapplication-tool.c:59
-msgid "Activate an action"
-msgstr "Aktiviraj radnju"
-
-#: gio/gapplication-tool.c:60
-msgid "Invoke an action on the application"
-msgstr ""
-
-#: gio/gapplication-tool.c:61
-msgid "APPID ACTION [PARAMETER]"
-msgstr ""
-
-#: gio/gapplication-tool.c:63
-msgid "List available actions"
-msgstr ""
-
-#: gio/gapplication-tool.c:64
-msgid "List static actions for an application (from .desktop file)"
-msgstr ""
-
-#: gio/gapplication-tool.c:65 gio/gapplication-tool.c:71
-msgid "APPID"
-msgstr "IDAPLIKACIJE"
-
-#: gio/gapplication-tool.c:70 gio/gapplication-tool.c:133 gio/gdbus-tool.c:102
-#: gio/gio-tool.c:224
-msgid "COMMAND"
-msgstr "NAREDBA"
-
-#: gio/gapplication-tool.c:70
-msgid "The command to print detailed help for"
-msgstr ""
-
-#: gio/gapplication-tool.c:71
-msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
-msgstr ""
-
-#: gio/gapplication-tool.c:72 gio/glib-compile-resources.c:738
-#: gio/glib-compile-resources.c:744 gio/glib-compile-resources.c:772
-#: gio/gresource-tool.c:500 gio/gresource-tool.c:566
-msgid "FILE"
-msgstr "DATOTEKA"
-
-#: gio/gapplication-tool.c:72
-msgid "Optional relative or absolute filenames, or URIs to open"
-msgstr ""
-
-#: gio/gapplication-tool.c:73
-msgid "ACTION"
-msgstr "RADNJA"
-
-#: gio/gapplication-tool.c:73
-msgid "The action name to invoke"
-msgstr ""
-
-#: gio/gapplication-tool.c:74
-msgid "PARAMETER"
-msgstr "PARAMETAR"
-
-#: gio/gapplication-tool.c:74
-msgid "Optional parameter to the action invocation, in GVariant format"
-msgstr ""
-
-#: gio/gapplication-tool.c:96 gio/gresource-tool.c:531 gio/gsettings-tool.c:659
-#, c-format
-msgid ""
-"Unknown command %s\n"
-"\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:101
-msgid "Usage:\n"
-msgstr "Upotreba:\n"
-
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:556
-#: gio/gsettings-tool.c:694
-msgid "Arguments:\n"
-msgstr "Argumenti:\n"
-
-#: gio/gapplication-tool.c:133 gio/gio-tool.c:224
-msgid "[ARGS…]"
-msgstr "[ARGUMENTI…]"
-
-#: gio/gapplication-tool.c:134
-#, c-format
-msgid "Commands:\n"
-msgstr "Naredbe:\n"
-
-#. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:146
-#, c-format
-msgid ""
-"Use “%s help COMMAND” to get detailed help.\n"
-"\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:165
-#, c-format
-msgid ""
-"%s command requires an application id to directly follow\n"
-"\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:171
-#, c-format
-msgid "invalid application id: “%s”\n"
-msgstr ""
-
-#. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:182
-#, c-format
-msgid ""
-"“%s” takes no arguments\n"
-"\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:266
-#, c-format
-msgid "unable to connect to D-Bus: %s\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:286
-#, c-format
-msgid "error sending %s message to application: %s\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:317
-msgid "action name must be given after application id\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:325
-#, c-format
-msgid ""
-"invalid action name: “%s”\n"
-"action names must consist of only alphanumerics, “-” and “.”\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:344
-#, c-format
-msgid "error parsing action parameter: %s\n"
-msgstr "greška obrade parametara radnje: %s\n"
-
-#: gio/gapplication-tool.c:356
-msgid "actions accept a maximum of one parameter\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:411
-msgid "list-actions command takes only the application id"
-msgstr ""
-
-#: gio/gapplication-tool.c:421
-#, c-format
-msgid "unable to find desktop file for application %s\n"
-msgstr ""
-
-#: gio/gapplication-tool.c:466
-#, c-format
-msgid ""
-"unrecognised command: %s\n"
-"\n"
-msgstr ""
+"X-Generator: Launchpad (build 16877)\n"
+"Language: hr\n"
 
-#: gio/gbufferedinputstream.c:420 gio/gbufferedinputstream.c:498
-#: gio/ginputstream.c:179 gio/ginputstream.c:379 gio/ginputstream.c:617
-#: gio/ginputstream.c:1019 gio/goutputstream.c:223 gio/goutputstream.c:1049
-#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:277
+#: ../gio/gbufferedinputstream.c:422 ../gio/gbufferedinputstream.c:501
+#: ../gio/ginputstream.c:175 ../gio/ginputstream.c:367
+#: ../gio/ginputstream.c:605 ../gio/ginputstream.c:823
+#: ../gio/goutputstream.c:202 ../gio/goutputstream.c:826
+#: ../gio/gpollableinputstream.c:207 ../gio/gpollableoutputstream.c:208
 #, c-format
 msgid "Too large count value passed to %s"
 msgstr ""
 
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
-msgid "Seek not supported on base stream"
-msgstr ""
-
-#: gio/gbufferedinputstream.c:937
-msgid "Cannot truncate GBufferedInputStream"
-msgstr ""
-
-#: gio/gbufferedinputstream.c:982 gio/ginputstream.c:1208 gio/giostream.c:300
-#: gio/goutputstream.c:2198
+#: ../gio/gbufferedinputstream.c:985 ../gio/ginputstream.c:1013
+#: ../gio/giostream.c:280 ../gio/goutputstream.c:1468
 msgid "Stream is already closed"
 msgstr ""
 
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
-msgid "Truncate not supported on base stream"
-msgstr ""
-
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1862 gio/gdbusprivate.c:1413
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: ../gio/gcancellable.c:314 ../gio/gdbusconnection.c:1893
+#: ../gio/gdbusconnection.c:1985 ../gio/gdbusprivate.c:1418
+#: ../gio/glocalfile.c:2183 ../gio/gsimpleasyncresult.c:836
+#: ../gio/gsimpleasyncresult.c:862
 #, c-format
 msgid "Operation was cancelled"
-msgstr "Radnja je prekinuta"
+msgstr ""
 
-#: gio/gcharsetconverter.c:260
+#: ../gio/gcharsetconverter.c:262
 msgid "Invalid object, not initialized"
 msgstr ""
 
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: ../gio/gcharsetconverter.c:283 ../gio/gcharsetconverter.c:311
 msgid "Incomplete multibyte sequence in input"
 msgstr ""
 
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: ../gio/gcharsetconverter.c:317 ../gio/gcharsetconverter.c:326
 msgid "Not enough space in destination"
-msgstr "Nema dovoljno prostora u odredištu"
+msgstr ""
 
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:448 glib/gconvert.c:878
-#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2461
-#: glib/gutf8.c:875 glib/gutf8.c:1328
+#: ../gio/gcharsetconverter.c:344 ../gio/gdatainputstream.c:849
+#: ../gio/gdatainputstream.c:1259 ../glib/gconvert.c:464
+#: ../glib/gconvert.c:856 ../glib/giochannel.c:1582 ../glib/giochannel.c:1624
+#: ../glib/giochannel.c:2468 ../glib/gutf8.c:843 ../glib/gutf8.c:1303
 msgid "Invalid byte sequence in conversion input"
 msgstr "Neispravna sekvenca bajtova u izlazu konverzije"
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:456 glib/gconvert.c:792
-#: glib/giochannel.c:1571 glib/giochannel.c:2473
+#: ../gio/gcharsetconverter.c:349 ../glib/gconvert.c:472
+#: ../glib/gconvert.c:781 ../glib/giochannel.c:1589 ../glib/giochannel.c:2480
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Greška prilikom konverzije: %s"
 
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1133
+#: ../gio/gcharsetconverter.c:446 ../gio/gsocket.c:994
 msgid "Cancellable initialization not supported"
-msgstr "Prekidanje pokretanja nije podržano"
-
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:321 glib/giochannel.c:1392
-#, c-format
-msgid "Conversion from character set “%s” to “%s” is not supported"
-msgstr "Pretvaranje iz znakovnog skupa “%s” u “%s” nije podržano"
+msgstr ""
 
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:325
+#: ../gio/gcharsetconverter.c:457 ../glib/gconvert.c:344
+#: ../glib/giochannel.c:1410
 #, c-format
-msgid "Could not open converter from “%s” to “%s”"
-msgstr "Nemoguće je otvoriti pretvornik iz “%s” u “%s”"
+msgid "Conversion from character set '%s' to '%s' is not supported"
+msgstr "Pretvaranje iz znakovnog skupa '%s' u '%s' nije podržana"
 
-#: gio/gcontenttype.c:452
+#: ../gio/gcharsetconverter.c:461 ../glib/gconvert.c:348
 #, c-format
-msgid "%s type"
-msgstr "%s vrsta"
+msgid "Could not open converter from '%s' to '%s'"
+msgstr "Ne mogu otvoriti pretvornik iz %s' u '%s'"
 
-#: gio/gcontenttype-win32.c:192
+#: ../gio/gcontenttype-win32.c:162
 msgid "Unknown type"
-msgstr "Nepoznata vrsta"
+msgstr ""
 
-#: gio/gcontenttype-win32.c:194
+#: ../gio/gcontenttype-win32.c:163
 #, c-format
 msgid "%s filetype"
-msgstr "%s vrsta datoteke"
+msgstr ""
 
-#: gio/gcredentials.c:323
-msgid "GCredentials contains invalid data"
+#: ../gio/gcontenttype.c:335
+#, c-format
+msgid "%s type"
 msgstr ""
 
-#: gio/gcredentials.c:383 gio/gcredentials.c:667
+#: ../gio/gcredentials.c:295 ../gio/gcredentials.c:546
 msgid "GCredentials is not implemented on this OS"
 msgstr ""
 
-#: gio/gcredentials.c:538 gio/gcredentials.c:556
+#: ../gio/gcredentials.c:447
 msgid "There is no GCredentials support for your platform"
 msgstr ""
 
-#: gio/gcredentials.c:607
-msgid "GCredentials does not contain a process ID on this OS"
-msgstr ""
-
-#: gio/gcredentials.c:661
-msgid "Credentials spoofing is not possible on this OS"
-msgstr ""
-
-#: gio/gdatainputstream.c:304
+#: ../gio/gdatainputstream.c:306
 msgid "Unexpected early end-of-stream"
 msgstr ""
 
-#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:232 gio/gdbusaddress.c:321
-#, c-format
-msgid "Unsupported key “%s” in address entry “%s”"
-msgstr ""
-
-#: gio/gdbusaddress.c:171
+#: ../gio/gdbusaddress.c:150 ../gio/gdbusaddress.c:238
+#: ../gio/gdbusaddress.c:319
 #, c-format
-msgid "Meaningless key/value pair combination in address entry “%s”"
+msgid "Unsupported key `%s' in address entry `%s'"
 msgstr ""
 
-#: gio/gdbusaddress.c:180
+#: ../gio/gdbusaddress.c:177
 #, c-format
 msgid ""
-"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
-"keys)"
+"Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)"
 msgstr ""
 
-#: gio/gdbusaddress.c:247 gio/gdbusaddress.c:258 gio/gdbusaddress.c:273
-#: gio/gdbusaddress.c:336 gio/gdbusaddress.c:347
+#: ../gio/gdbusaddress.c:190
 #, c-format
-msgid "Error in address “%s” — the “%s” attribute is malformed"
+msgid "Meaningless key/value pair combination in address entry `%s'"
 msgstr ""
 
-#: gio/gdbusaddress.c:417 gio/gdbusaddress.c:681
+#: ../gio/gdbusaddress.c:253 ../gio/gdbusaddress.c:334
 #, c-format
-msgid "Unknown or unsupported transport “%s” for address “%s”"
+msgid "Error in address `%s' - the port attribute is malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:461
+#: ../gio/gdbusaddress.c:264 ../gio/gdbusaddress.c:345
 #, c-format
-msgid "Address element “%s” does not contain a colon (:)"
+msgid "Error in address `%s' - the family attribute is malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:470
+#: ../gio/gdbusaddress.c:454
 #, c-format
-msgid "Transport name in address element “%s” must not be empty"
+msgid "Address element `%s', does not contain a colon (:)"
 msgstr ""
 
-#: gio/gdbusaddress.c:491
+#: ../gio/gdbusaddress.c:475
 #, c-format
 msgid ""
-"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
+"Key/Value pair %d, `%s', in address element `%s', does not contain an equal "
 "sign"
 msgstr ""
 
-#: gio/gdbusaddress.c:502
+#: ../gio/gdbusaddress.c:489
 #, c-format
 msgid ""
-"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
+"Error unescaping key or value in Key/Value pair %d, `%s', in address element "
+"`%s'"
 msgstr ""
 
-#: gio/gdbusaddress.c:516
+#: ../gio/gdbusaddress.c:567
 #, c-format
 msgid ""
-"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
-"“%s”"
+"Error in address `%s' - the unix transport requires exactly one of the keys "
+"`path' or `abstract' to be set"
 msgstr ""
 
-#: gio/gdbusaddress.c:588
+#: ../gio/gdbusaddress.c:603
 #, c-format
-msgid ""
-"Error in address “%s” — the unix transport requires exactly one of the keys "
-"“path” or “abstract” to be set"
+msgid "Error in address `%s' - the host attribute is missing or malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:624
+#: ../gio/gdbusaddress.c:617
 #, c-format
-msgid "Error in address “%s” — the host attribute is missing or malformed"
+msgid "Error in address `%s' - the port attribute is missing or malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:638
+#: ../gio/gdbusaddress.c:631
 #, c-format
-msgid "Error in address “%s” — the port attribute is missing or malformed"
+msgid ""
+"Error in address `%s' - the noncefile attribute is missing or malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:652
-#, c-format
-msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
+#: ../gio/gdbusaddress.c:652
+msgid "Error auto-launching: "
 msgstr ""
 
-#: gio/gdbusaddress.c:673
-msgid "Error auto-launching: "
+#: ../gio/gdbusaddress.c:660
+#, c-format
+msgid "Unknown or unsupported transport `%s' for address `%s'"
 msgstr ""
 
-#: gio/gdbusaddress.c:726
-#, fuzzy, c-format
-#| msgid "Error reading file '%s': %s"
-msgid "Error opening nonce file “%s”: %s"
-msgstr "Greška pri čitanju datoteke '%s': %s"
+#: ../gio/gdbusaddress.c:696
+#, c-format
+msgid "Error opening nonce file `%s': %s"
+msgstr ""
 
-#: gio/gdbusaddress.c:745
-#, fuzzy, c-format
-#| msgid "Error reading file '%s': %s"
-msgid "Error reading from nonce file “%s”: %s"
-msgstr "Greška pri čitanju datoteke '%s': %s"
+#: ../gio/gdbusaddress.c:714
+#, c-format
+msgid "Error reading from nonce file `%s': %s"
+msgstr ""
 
-#: gio/gdbusaddress.c:754
+#: ../gio/gdbusaddress.c:723
 #, c-format
-msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
+msgid "Error reading from nonce file `%s', expected 16 bytes, got %d"
 msgstr ""
 
-#: gio/gdbusaddress.c:772
+#: ../gio/gdbusaddress.c:741
 #, c-format
-msgid "Error writing contents of nonce file “%s” to stream:"
+msgid "Error writing contents of nonce file `%s' to stream:"
 msgstr ""
 
-#: gio/gdbusaddress.c:981
+#: ../gio/gdbusaddress.c:960
 msgid "The given address is empty"
 msgstr ""
 
-#: gio/gdbusaddress.c:1094
+#: ../gio/gdbusaddress.c:1037
+msgid "Cannot spawn a message bus without a machine-id: "
+msgstr ""
+
+#: ../gio/gdbusaddress.c:1079
 #, c-format
-msgid "Cannot spawn a message bus when setuid"
+msgid "Error spawning command line `%s': "
 msgstr ""
 
-#: gio/gdbusaddress.c:1101
-msgid "Cannot spawn a message bus without a machine-id: "
+#: ../gio/gdbusaddress.c:1077
+#, c-format
+msgid "Abnormal program termination spawning command line `%s': %s"
+msgstr ""
+
+#: ../gio/gdbusaddress.c:1091
+#, c-format
+msgid "Command line `%s' exited with non-zero exit status %d: %s"
 msgstr ""
 
-#: gio/gdbusaddress.c:1108
+#: ../gio/gdbusaddress.c:1296
 #, c-format
-msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
+msgid "(Type any character to close this window)\n"
 msgstr ""
 
-#: gio/gdbusaddress.c:1150
+#: ../gio/gdbusaddress.c:1427
 #, c-format
-msgid "Error spawning command line “%s”: "
+msgid "Session dbus not running, and autolaunch failed"
 msgstr ""
 
-#: gio/gdbusaddress.c:1219
+#: ../gio/gdbusaddress.c:1448
 #, c-format
 msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr ""
 
-#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7192
+#: ../gio/gdbusaddress.c:1541 ../gio/gdbusconnection.c:6757
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
-"— unknown value “%s”"
+"- unknown value `%s'"
 msgstr ""
 
-#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7201
+#: ../gio/gdbusaddress.c:1556 ../gio/gdbusconnection.c:6913
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
 msgstr ""
 
-#: gio/gdbusaddress.c:1376
+#: ../gio/gdbusaddress.c:1566
 #, c-format
 msgid "Unknown bus type %d"
 msgstr ""
 
-#: gio/gdbusauth.c:294
+#: ../gio/gdbusauth.c:295
 msgid "Unexpected lack of content trying to read a line"
 msgstr ""
 
-#: gio/gdbusauth.c:338
+#: ../gio/gdbusauth.c:339
 msgid "Unexpected lack of content trying to (safely) read a line"
 msgstr ""
 
-#: gio/gdbusauth.c:482
+#: ../gio/gdbusauth.c:510
 #, c-format
 msgid ""
 "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
 msgstr ""
 
-#: gio/gdbusauth.c:1167
+#: ../gio/gdbusauth.c:1172
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:265
-#, fuzzy, c-format
-#| msgid "Error opening directory '%s': %s"
-msgid "Error when getting information for directory “%s”: %s"
-msgstr "Greška pri otvaranju mape '%s': %s"
+#: ../gio/gdbusauthmechanismsha1.c:266
+#, c-format
+msgid "Error when getting information for directory `%s': %s"
+msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:280
+#: ../gio/gdbusauthmechanismsha1.c:278
 #, c-format
 msgid ""
-"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
+"Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:310
-#, fuzzy, c-format
-#| msgid "Error opening directory '%s': %s"
-msgid "Error creating directory “%s”: %s"
-msgstr "Greška pri otvaranju mape '%s': %s"
+#: ../gio/gdbusauthmechanismsha1.c:299
+#, c-format
+msgid "Error creating directory `%s': %s"
+msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:355
+#: ../gio/gdbusauthmechanismsha1.c:382
 #, c-format
-msgid "Error opening keyring “%s” for reading: "
+msgid "Error opening keyring `%s' for reading: "
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:378 gio/gdbusauthmechanismsha1.c:700
+#: ../gio/gdbusauthmechanismsha1.c:406 ../gio/gdbusauthmechanismsha1.c:719
 #, c-format
-msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
+msgid "Line %d of the keyring at `%s' with content `%s' is malformed"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:392 gio/gdbusauthmechanismsha1.c:714
+#: ../gio/gdbusauthmechanismsha1.c:420 ../gio/gdbusauthmechanismsha1.c:733
 #, c-format
 msgid ""
-"First token of line %d of the keyring at “%s” with content “%s” is malformed"
+"First token of line %d of the keyring at `%s' with content `%s' is malformed"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:406 gio/gdbusauthmechanismsha1.c:728
+#: ../gio/gdbusauthmechanismsha1.c:435 ../gio/gdbusauthmechanismsha1.c:747
 #, c-format
 msgid ""
-"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
+"Second token of line %d of the keyring at `%s' with content `%s' is malformed"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:430
+#: ../gio/gdbusauthmechanismsha1.c:459
 #, c-format
-msgid "Didn’t find cookie with id %d in the keyring at “%s”"
+msgid "Didn't find cookie with id %d in the keyring at `%s'"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:476
-#, fuzzy, c-format
-#| msgid "Error reading file '%s': %s"
-msgid "Error creating lock file “%s”: %s"
-msgstr "Greška pri čitanju datoteke '%s': %s"
+#: ../gio/gdbusauthmechanismsha1.c:537
+#, c-format
+msgid "Error deleting stale lock file `%s': %s"
+msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:540
-#, fuzzy, c-format
-#| msgid "Error reading file '%s': %s"
-msgid "Error deleting stale lock file “%s”: %s"
-msgstr "Greška pri čitanju datoteke '%s': %s"
+#: ../gio/gdbusauthmechanismsha1.c:569
+#, c-format
+msgid "Error creating lock file `%s': %s"
+msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:579
+#: ../gio/gdbusauthmechanismsha1.c:599
 #, c-format
-msgid "Error closing (unlinked) lock file “%s”: %s"
+msgid "Error closing (unlinked) lock file `%s': %s"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:590
-#, fuzzy, c-format
-#| msgid "Error reading file '%s': %s"
-msgid "Error unlinking lock file “%s”: %s"
-msgstr "Greška pri čitanju datoteke '%s': %s"
+#: ../gio/gdbusauthmechanismsha1.c:609
+#, c-format
+msgid "Error unlinking lock file `%s': %s"
+msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:667
+#: ../gio/gdbusauthmechanismsha1.c:686
 #, c-format
-msgid "Error opening keyring “%s” for writing: "
+msgid "Error opening keyring `%s' for writing: "
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:865
+#: ../gio/gdbusauthmechanismsha1.c:883
 #, c-format
-msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
+msgid "(Additionally, releasing the lock for `%s' also failed: %s) "
 msgstr ""
 
-#: gio/gdbusconnection.c:595 gio/gdbusconnection.c:2391
+#: ../gio/gdbusconnection.c:605 ../gio/gdbusconnection.c:2448
 msgid "The connection is closed"
-msgstr "Povezivanje je zatvoreno"
+msgstr ""
 
-#: gio/gdbusconnection.c:1892
+#: ../gio/gdbusconnection.c:1938
 msgid "Timeout was reached"
-msgstr "Vrijeme isteka dostignuto"
+msgstr ""
 
-#: gio/gdbusconnection.c:2513
+#: ../gio/gdbusconnection.c:2570
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 
-#: gio/gdbusconnection.c:4163 gio/gdbusconnection.c:4510
+#: ../gio/gdbusconnection.c:4065 ../gio/gdbusconnection.c:4381
 #, c-format
 msgid ""
-"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
-msgstr ""
-
-#: gio/gdbusconnection.c:4305
-#, c-format
-msgid "No such property “%s”"
+"No such interface `org.freedesktop.DBus.Properties' on object at path %s"
 msgstr ""
 
-#: gio/gdbusconnection.c:4317
+#: ../gio/gdbusconnection.c:4136
 #, c-format
-msgid "Property “%s” is not readable"
+msgid "Error setting property `%s': Expected type `%s' but got `%s'"
 msgstr ""
 
-#: gio/gdbusconnection.c:4328
+#: ../gio/gdbusconnection.c:4231
 #, c-format
-msgid "Property “%s” is not writable"
+msgid "No such property `%s'"
 msgstr ""
 
-#: gio/gdbusconnection.c:4348
+#: ../gio/gdbusconnection.c:4243
 #, c-format
-msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
+msgid "Property `%s' is not readable"
 msgstr ""
 
-#: gio/gdbusconnection.c:4453 gio/gdbusconnection.c:4661
-#: gio/gdbusconnection.c:6632
+#: ../gio/gdbusconnection.c:4254
 #, c-format
-msgid "No such interface “%s”"
+msgid "Property `%s' is not writable"
 msgstr ""
 
-#: gio/gdbusconnection.c:4879 gio/gdbusconnection.c:7141
+#: ../gio/gdbusconnection.c:4324 ../gio/gdbusconnection.c:6200
 #, c-format
-msgid "No such interface “%s” on object at path %s"
+msgid "No such interface `%s'"
 msgstr ""
 
-#: gio/gdbusconnection.c:4977
-#, c-format
-msgid "No such method “%s”"
+#: ../gio/gdbusconnection.c:4635
+msgid "No such interface"
 msgstr ""
 
-#: gio/gdbusconnection.c:5008
+#: ../gio/gdbusconnection.c:4726 ../gio/gdbusconnection.c:6706
 #, c-format
-msgid "Type of message, “%s”, does not match expected type “%s”"
+msgid "No such interface `%s' on object at path %s"
 msgstr ""
 
-#: gio/gdbusconnection.c:5206
+#: ../gio/gdbusconnection.c:4781
 #, c-format
-msgid "An object is already exported for the interface %s at %s"
+msgid "No such method `%s'"
 msgstr ""
 
-#: gio/gdbusconnection.c:5432
+#: ../gio/gdbusconnection.c:4812
 #, c-format
-msgid "Unable to retrieve property %s.%s"
+msgid "Type of message, `%s', does not match expected type `%s'"
 msgstr ""
 
-#: gio/gdbusconnection.c:5488
+#: ../gio/gdbusconnection.c:5179
 #, c-format
-msgid "Unable to set property %s.%s"
+msgid "An object is already exported for the interface %s at %s"
 msgstr ""
 
-#: gio/gdbusconnection.c:5666
+#: ../gio/gdbusconnection.c:5230
 #, c-format
-msgid "Method “%s” returned type “%s”, but expected “%s”"
+msgid "Method `%s' returned type `%s', but expected `%s'"
 msgstr ""
 
-#: gio/gdbusconnection.c:6743
+#: ../gio/gdbusconnection.c:6311
 #, c-format
-msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
+msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
 msgstr ""
 
-#: gio/gdbusconnection.c:6864
+#: ../gio/gdbusconnection.c:6577
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr ""
 
-#: gio/gdbusmessage.c:1255
+#: ../gio/gdbusmessage.c:1271
 msgid "type is INVALID"
 msgstr ""
 
-#: gio/gdbusmessage.c:1266
+#: ../gio/gdbusmessage.c:1282
 msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
 msgstr ""
 
-#: gio/gdbusmessage.c:1277
+#: ../gio/gdbusmessage.c:1293
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr ""
 
-#: gio/gdbusmessage.c:1289
+#: ../gio/gdbusmessage.c:1305
 msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
 msgstr ""
 
-#: gio/gdbusmessage.c:1302
+#: ../gio/gdbusmessage.c:1318
 msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
 msgstr ""
 
-#: gio/gdbusmessage.c:1310
+#: ../gio/gdbusmessage.c:1326
 msgid ""
-"SIGNAL message: The PATH header field is using the reserved value /org/"
-"freedesktop/DBus/Local"
+"SIGNAL message: The PATH header field is using the reserved value "
+"/org/freedesktop/DBus/Local"
 msgstr ""
 
-#: gio/gdbusmessage.c:1318
+#: ../gio/gdbusmessage.c:1334
 msgid ""
-"SIGNAL message: The INTERFACE header field is using the reserved value org."
-"freedesktop.DBus.Local"
+"SIGNAL message: The INTERFACE header field is using the reserved value "
+"org.freedesktop.DBus.Local"
 msgstr ""
 
-#: gio/gdbusmessage.c:1366 gio/gdbusmessage.c:1426
+#: ../gio/gdbusmessage.c:998
 #, c-format
-msgid "Wanted to read %lu byte but only got %lu"
-msgid_plural "Wanted to read %lu bytes but only got %lu"
+msgid "Wanted to read %lu byte but got EOF"
+msgid_plural "Wanted to read %lu bytes but got EOF"
 msgstr[0] ""
 msgstr[1] ""
-msgstr[2] ""
-
-#: gio/gdbusmessage.c:1380
-#, c-format
-msgid "Expected NUL byte after the string “%s” but found byte %d"
-msgstr ""
 
-#: gio/gdbusmessage.c:1399
+#: ../gio/gdbusmessage.c:1417
 #, c-format
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
-"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
+"(length of string is %d). The valid UTF-8 string up until that point was `%s'"
 msgstr ""
 
-#: gio/gdbusmessage.c:1463 gio/gdbusmessage.c:1711 gio/gdbusmessage.c:1900
-msgid "Value nested too deeply"
+#: ../gio/gdbusmessage.c:1398
+#, c-format
+msgid "Expected NUL byte after the string `%s' but found byte %d"
 msgstr ""
 
-#: gio/gdbusmessage.c:1609
+#: ../gio/gdbusmessage.c:1619
 #, c-format
-msgid "Parsed value “%s” is not a valid D-Bus object path"
+msgid "Parsed value `%s' is not a valid D-Bus object path"
 msgstr ""
 
-#: gio/gdbusmessage.c:1631
+#: ../gio/gdbusmessage.c:1643
 #, c-format
-msgid "Parsed value “%s” is not a valid D-Bus signature"
+msgid "Parsed value `%s' is not a valid D-Bus signature"
 msgstr ""
 
-#: gio/gdbusmessage.c:1678
+#: ../gio/gdbusmessage.c:1698
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -760,169 +505,149 @@ msgid_plural ""
 "Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
 msgstr[0] ""
 msgstr[1] ""
-msgstr[2] ""
-
-#: gio/gdbusmessage.c:1698
-#, c-format
-msgid ""
-"Encountered array of type “a%c”, expected to have a length a multiple of %u "
-"bytes, but found to be %u bytes in length"
-msgstr ""
 
-#: gio/gdbusmessage.c:1884
+#: ../gio/gdbusmessage.c:1851
 #, c-format
-msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
+msgid "Parsed value `%s' for variant is not a valid D-Bus signature"
 msgstr ""
 
-#: gio/gdbusmessage.c:1925
+#: ../gio/gdbusmessage.c:1875
 #, c-format
 msgid ""
-"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
+"Error deserializing GVariant with type string `%s' from the D-Bus wire format"
 msgstr ""
 
-#: gio/gdbusmessage.c:2110
+#: ../gio/gdbusmessage.c:2062
 #, c-format
 msgid ""
-"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
+"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value "
 "0x%02x"
 msgstr ""
 
-#: gio/gdbusmessage.c:2123
+#: ../gio/gdbusmessage.c:2075
 #, c-format
 msgid "Invalid major protocol version. Expected 1 but found %d"
 msgstr ""
 
-#: gio/gdbusmessage.c:2177 gio/gdbusmessage.c:2773
-msgid "Signature header found but is not of type signature"
-msgstr ""
-
-#: gio/gdbusmessage.c:2189
+#: ../gio/gdbusmessage.c:2131
 #, c-format
-msgid "Signature header with signature “%s” found but message body is empty"
+msgid "Signature header with signature `%s' found but message body is empty"
 msgstr ""
 
-#: gio/gdbusmessage.c:2204
+#: ../gio/gdbusmessage.c:2145
 #, c-format
-msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
+msgid "Parsed value `%s' is not a valid D-Bus signature (for body)"
 msgstr ""
 
-#: gio/gdbusmessage.c:2236
+#: ../gio/gdbusmessage.c:2175
 #, c-format
 msgid "No signature header in message but the message body is %u byte"
-msgid_plural "No signature header in message but the message body is %u bytes"
+msgid_plural ""
+"No signature header in message but the message body is %u bytes"
 msgstr[0] ""
 msgstr[1] ""
-msgstr[2] ""
 
-#: gio/gdbusmessage.c:2246
+#: ../gio/gdbusmessage.c:2185
 msgid "Cannot deserialize message: "
 msgstr ""
 
-#: gio/gdbusmessage.c:2590
+#: ../gio/gdbusmessage.c:2506
 #, c-format
 msgid ""
-"Error serializing GVariant with type string “%s” to the D-Bus wire format"
+"Error serializing GVariant with type string `%s' to the D-Bus wire format"
 msgstr ""
 
-#: gio/gdbusmessage.c:2727
+#: ../gio/gdbusmessage.c:2643
 #, c-format
 msgid ""
-"Number of file descriptors in message (%d) differs from header field (%d)"
+"Message has %d file descriptors but the header field indicates %d file "
+"descriptors"
 msgstr ""
 
-#: gio/gdbusmessage.c:2735
+#: ../gio/gdbusmessage.c:2651
 msgid "Cannot serialize message: "
 msgstr ""
 
-#: gio/gdbusmessage.c:2788
+#: ../gio/gdbusmessage.c:2695
 #, c-format
-msgid "Message body has signature “%s” but there is no signature header"
+msgid "Message body has signature `%s' but there is no signature header"
 msgstr ""
 
-#: gio/gdbusmessage.c:2798
+#: ../gio/gdbusmessage.c:2705
 #, c-format
 msgid ""
-"Message body has type signature “%s” but signature in the header field is "
-"“%s”"
+"Message body has type signature `%s' but signature in the header field is "
+"`%s'"
 msgstr ""
 
-#: gio/gdbusmessage.c:2814
+#: ../gio/gdbusmessage.c:2721
 #, c-format
-msgid "Message body is empty but signature in the header field is “(%s)”"
+msgid "Message body is empty but signature in the header field is `(%s)'"
 msgstr ""
 
-#: gio/gdbusmessage.c:3367
+#: ../gio/gdbusmessage.c:3271
 #, c-format
-msgid "Error return with body of type “%s”"
+msgid "Error return with body of type `%s'"
 msgstr ""
 
-#: gio/gdbusmessage.c:3375
+#: ../gio/gdbusmessage.c:3279
 msgid "Error return with empty body"
 msgstr ""
 
-#: gio/gdbusprivate.c:2244
-#, c-format
-msgid "(Type any character to close this window)\n"
-msgstr ""
-
-#: gio/gdbusprivate.c:2418
-#, c-format
-msgid "Session dbus not running, and autolaunch failed"
-msgstr ""
-
-#: gio/gdbusprivate.c:2441
+#: ../gio/gdbusprivate.c:2066
 #, c-format
 msgid "Unable to get Hardware profile: %s"
 msgstr ""
 
-#: gio/gdbusprivate.c:2486
+#: ../gio/gdbusprivate.c:2111
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr ""
 
-#: gio/gdbusproxy.c:1562
+#: ../gio/gdbusproxy.c:1638
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr ""
 
-#: gio/gdbusproxy.c:1585
+#: ../gio/gdbusproxy.c:1661
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr ""
 
-#: gio/gdbusproxy.c:2688 gio/gdbusproxy.c:2823
-#, c-format
+#: ../gio/gdbusproxy.c:2762 ../gio/gdbusproxy.c:2899
 msgid ""
-"Cannot invoke method; proxy is for the well-known name %s without an owner, "
-"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
+"Cannot invoke method; proxy is for a well-known name without an owner and "
+"proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
 msgstr ""
 
-#: gio/gdbusserver.c:755
-#, fuzzy
-#| msgid "Symbolic links not supported"
-msgid "Abstract namespace not supported"
-msgstr "Nisu podržane simboličke veze"
+#: ../gio/gdbusserver.c:710
+msgid "Abstract name space not supported"
+msgstr ""
 
-#: gio/gdbusserver.c:848
+#: ../gio/gdbusserver.c:797
 msgid "Cannot specify nonce file when creating a server"
 msgstr ""
 
-#: gio/gdbusserver.c:930
-#, fuzzy, c-format
-#| msgid "Error reading file '%s': %s"
-msgid "Error writing nonce file at “%s”: %s"
-msgstr "Greška pri čitanju datoteke '%s': %s"
+#: ../gio/gdbusserver.c:874
+#, c-format
+msgid "Error writing nonce file at `%s': %s"
+msgstr ""
 
-#: gio/gdbusserver.c:1103
+#: ../gio/gdbusserver.c:1043
 #, c-format
-msgid "The string “%s” is not a valid D-Bus GUID"
+msgid "The string `%s' is not a valid D-Bus GUID"
 msgstr ""
 
-#: gio/gdbusserver.c:1143
+#: ../gio/gdbusserver.c:1083
 #, c-format
-msgid "Cannot listen on unsupported transport “%s”"
+msgid "Cannot listen on unsupported transport `%s'"
+msgstr ""
+
+#: ../gio/gapplication-tool.c:72 ../gio/gapplication-tool.c:135
+#: ../gio/gdbus-tool.c:92
+msgid "COMMAND"
 msgstr ""
 
-#: gio/gdbus-tool.c:107
+#: ../gio/gdbus-tool.c:97
 #, c-format
 msgid ""
 "Commands:\n"
@@ -931,571 +656,479 @@ msgid ""
 "  monitor      Monitor a remote object\n"
 "  call         Invoke a method on a remote object\n"
 "  emit         Emit a signal\n"
-"  wait         Wait for a bus name to appear\n"
 "\n"
-"Use “%s COMMAND --help” to get help on each command.\n"
+"Use \"%s COMMAND --help\" to get help on each command.\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:197 gio/gdbus-tool.c:264 gio/gdbus-tool.c:336
-#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:850 gio/gdbus-tool.c:1187
-#: gio/gdbus-tool.c:1672
+#: ../gio/gdbus-tool.c:166 ../gio/gdbus-tool.c:222 ../gio/gdbus-tool.c:294
+#: ../gio/gdbus-tool.c:318 ../gio/gdbus-tool.c:701 ../gio/gdbus-tool.c:1022
+#: ../gio/gdbus-tool.c:1456
 #, c-format
 msgid "Error: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1688
+#: ../gio/gdbus-tool.c:177 ../gio/gdbus-tool.c:235 ../gio/gdbus-tool.c:1472
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:246
-#, c-format
-msgid "Error: %s is not a valid name\n"
-msgstr ""
-
-#: gio/gdbus-tool.c:394
+#: ../gio/gdbus-tool.c:352
 msgid "Connect to the system bus"
 msgstr ""
 
-#: gio/gdbus-tool.c:395
+#: ../gio/gdbus-tool.c:353
 msgid "Connect to the session bus"
 msgstr ""
 
-#: gio/gdbus-tool.c:396
+#: ../gio/gdbus-tool.c:354
 msgid "Connect to given D-Bus address"
 msgstr ""
 
-#: gio/gdbus-tool.c:406
+#: ../gio/gdbus-tool.c:364
 msgid "Connection Endpoint Options:"
 msgstr ""
 
-#: gio/gdbus-tool.c:407
+#: ../gio/gdbus-tool.c:365
 msgid "Options specifying the connection endpoint"
 msgstr ""
 
-#: gio/gdbus-tool.c:430
+#: ../gio/gdbus-tool.c:387
 #, c-format
 msgid "No connection endpoint specified"
 msgstr ""
 
-#: gio/gdbus-tool.c:440
+#: ../gio/gdbus-tool.c:397
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr ""
 
-#: gio/gdbus-tool.c:513
+#: ../gio/gdbus-tool.c:467
 #, c-format
 msgid ""
-"Warning: According to introspection data, interface “%s” does not exist\n"
+"Warning: According to introspection data, interface `%s' does not exist\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:522
+#: ../gio/gdbus-tool.c:476
 #, c-format
 msgid ""
-"Warning: According to introspection data, method “%s” does not exist on "
-"interface “%s”\n"
+"Warning: According to introspection data, method `%s' does not exist on "
+"interface `%s'\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:584
+#: ../gio/gdbus-tool.c:538
 msgid "Optional destination for signal (unique name)"
 msgstr ""
 
-#: gio/gdbus-tool.c:585
+#: ../gio/gdbus-tool.c:539
 msgid "Object path to emit signal on"
 msgstr ""
 
-#: gio/gdbus-tool.c:586
+#: ../gio/gdbus-tool.c:540
 msgid "Signal and interface name"
 msgstr ""
 
-#: gio/gdbus-tool.c:619
+#: ../gio/gdbus-tool.c:572
 msgid "Emit a signal."
 msgstr ""
 
-#: gio/gdbus-tool.c:674 gio/gdbus-tool.c:981 gio/gdbus-tool.c:1775
-#: gio/gdbus-tool.c:2007 gio/gdbus-tool.c:2227
+#: ../gio/gdbus-tool.c:606 ../gio/gdbus-tool.c:832 ../gio/gdbus-tool.c:1562
+#: ../gio/gdbus-tool.c:1794
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:694
+#: ../gio/gdbus-tool.c:618
 #, c-format
-msgid "Error: %s is not a valid unique bus name.\n"
-msgstr ""
-
-#: gio/gdbus-tool.c:713 gio/gdbus-tool.c:1024 gio/gdbus-tool.c:1818
-msgid "Error: Object path is not specified\n"
+msgid "Error: object path not specified.\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:736 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1838
-#: gio/gdbus-tool.c:2078
+#: ../gio/gdbus-tool.c:623 ../gio/gdbus-tool.c:893 ../gio/gdbus-tool.c:1620
+#: ../gio/gdbus-tool.c:1853
 #, c-format
 msgid "Error: %s is not a valid object path\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:756
-msgid "Error: Signal name is not specified\n"
-msgstr ""
-
-#: gio/gdbus-tool.c:770
+#: ../gio/gdbus-tool.c:629
 #, c-format
-msgid "Error: Signal name “%s” is invalid\n"
+msgid "Error: signal not specified.\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:782
+#: ../gio/gdbus-tool.c:644
 #, c-format
 msgid "Error: %s is not a valid interface name\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:788
+#: ../gio/gdbus-tool.c:650
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr ""
 
-#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:825 gio/gdbus-tool.c:1156
+#: ../gio/gdbus-tool.c:656
+#, c-format
+msgid "Error: %s is not a valid unique bus name.\n"
+msgstr ""
+
+#: ../gio/gdbus-tool.c:679 ../gio/gdbus-tool.c:992
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:857
+#: ../gio/gdbus-tool.c:708
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:884
+#: ../gio/gdbus-tool.c:735
 msgid "Destination name to invoke method on"
 msgstr ""
 
-#: gio/gdbus-tool.c:885
+#: ../gio/gdbus-tool.c:736
 msgid "Object path to invoke method on"
 msgstr ""
 
-#: gio/gdbus-tool.c:886
+#: ../gio/gdbus-tool.c:737
 msgid "Method and interface name"
 msgstr ""
 
-#: gio/gdbus-tool.c:887
+#: ../gio/gdbus-tool.c:738
 msgid "Timeout in seconds"
 msgstr ""
 
-#: gio/gdbus-tool.c:926
+#: ../gio/gdbus-tool.c:777
 msgid "Invoke a method on a remote object."
 msgstr ""
 
-#: gio/gdbus-tool.c:998 gio/gdbus-tool.c:1792 gio/gdbus-tool.c:2032
+#: ../gio/gdbus-tool.c:852 ../gio/gdbus-tool.c:1581 ../gio/gdbus-tool.c:1813
+#, c-format
 msgid "Error: Destination is not specified\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1009 gio/gdbus-tool.c:1809 gio/gdbus-tool.c:2043
+#: ../gio/gdbus-tool.c:873 ../gio/gdbus-tool.c:1600
 #, c-format
-msgid "Error: %s is not a valid bus name\n"
+msgid "Error: Object path is not specified\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1059
+#: ../gio/gdbus-tool.c:908
+#, c-format
 msgid "Error: Method name is not specified\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1070
+#: ../gio/gdbus-tool.c:919
 #, c-format
-msgid "Error: Method name “%s” is invalid\n"
+msgid "Error: Method name `%s' is invalid\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1148
+#: ../gio/gdbus-tool.c:984
 #, c-format
-msgid "Error parsing parameter %d of type “%s”: %s\n"
+msgid "Error parsing parameter %d of type `%s': %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1634
+#: ../gio/gdbus-tool.c:1419
 msgid "Destination name to introspect"
 msgstr ""
 
-#: gio/gdbus-tool.c:1635
+#: ../gio/gdbus-tool.c:1420
 msgid "Object path to introspect"
 msgstr ""
 
-#: gio/gdbus-tool.c:1636
+#: ../gio/gdbus-tool.c:1421
 msgid "Print XML"
 msgstr ""
 
-#: gio/gdbus-tool.c:1637
+#: ../gio/gdbus-tool.c:1422
 msgid "Introspect children"
 msgstr ""
 
-#: gio/gdbus-tool.c:1638
+#: ../gio/gdbus-tool.c:1423
 msgid "Only print properties"
 msgstr ""
 
-#: gio/gdbus-tool.c:1727
+#: ../gio/gdbus-tool.c:1514
 msgid "Introspect a remote object."
 msgstr ""
 
-#: gio/gdbus-tool.c:1933
+#: ../gio/gdbus-tool.c:1712
 msgid "Destination name to monitor"
 msgstr ""
 
-#: gio/gdbus-tool.c:1934
+#: ../gio/gdbus-tool.c:1713
 msgid "Object path to monitor"
 msgstr ""
 
-#: gio/gdbus-tool.c:1959
+#: ../gio/gdbus-tool.c:1746
 msgid "Monitor a remote object."
 msgstr ""
 
-#: gio/gdbus-tool.c:2017
-msgid "Error: can’t monitor a non-message-bus connection\n"
-msgstr ""
-
-#: gio/gdbus-tool.c:2141
-msgid "Service to activate before waiting for the other one (well-known name)"
-msgstr ""
-
-#: gio/gdbus-tool.c:2144
-msgid ""
-"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
-"(default)"
-msgstr ""
-
-#: gio/gdbus-tool.c:2192
-msgid "[OPTION…] BUS-NAME"
-msgstr ""
-
-#: gio/gdbus-tool.c:2193
-msgid "Wait for a bus name to appear."
-msgstr ""
-
-#: gio/gdbus-tool.c:2269
-msgid "Error: A service to activate for must be specified.\n"
-msgstr ""
-
-#: gio/gdbus-tool.c:2274
-msgid "Error: A service to wait for must be specified.\n"
+#: ../gio/gdesktopappinfo.c:1421 ../gio/gdesktopappinfo.c:4566
+#: ../gio/gwin32appinfo.c:221
+msgid "Unnamed"
 msgstr ""
 
-#: gio/gdbus-tool.c:2279
-msgid "Error: Too many arguments.\n"
-msgstr "Greška: previše argumenata.\n"
-
-#: gio/gdbus-tool.c:2287 gio/gdbus-tool.c:2294
-#, c-format
-msgid "Error: %s is not a valid well-known bus name.\n"
+#: ../gio/gdesktopappinfo.c:1840
+msgid "Desktop file didn't specify Exec field"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:2073 gio/gdesktopappinfo.c:4893
-msgid "Unnamed"
-msgstr "Neimenovano"
-
-#: gio/gdesktopappinfo.c:2483
-msgid "Desktop file didn’t specify Exec field"
-msgstr "Datoteka radne površine nema navedeno Exec polje"
-
-#: gio/gdesktopappinfo.c:2763
+#: ../gio/gdesktopappinfo.c:2125
 msgid "Unable to find terminal required for application"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:3414
+#: ../gio/gdesktopappinfo.c:2542
 #, c-format
-msgid "Cant create user application configuration folder %s: %s"
+msgid "Can't create user application configuration folder %s: %s"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:3418
+#: ../gio/gdesktopappinfo.c:2546
 #, c-format
-msgid "Cant create user MIME configuration folder %s: %s"
+msgid "Can't create user MIME configuration folder %s: %s"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:3660 gio/gdesktopappinfo.c:3684
+#: ../gio/gdesktopappinfo.c:2786 ../gio/gdesktopappinfo.c:2810
 msgid "Application information lacks an identifier"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:3920
+#: ../gio/gdesktopappinfo.c:3043
 #, c-format
-msgid "Cant create user desktop file %s"
+msgid "Can't create user desktop file %s"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:4056
+#: ../gio/gdesktopappinfo.c:3177
 #, c-format
 msgid "Custom definition for %s"
 msgstr ""
 
-#: gio/gdrive.c:417
-msgid "drive doesnt implement eject"
+#: ../gio/gdrive.c:394
+msgid "drive doesn't implement eject"
 msgstr ""
 
 #. Translators: This is an error
 #. * message for drive objects that
 #. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:495
-msgid "drive doesnt implement eject or eject_with_operation"
+#: ../gio/gdrive.c:472
+msgid "drive doesn't implement eject or eject_with_operation"
 msgstr ""
 
-#: gio/gdrive.c:571
-msgid "drive doesnt implement polling for media"
+#: ../gio/gdrive.c:548
+msgid "drive doesn't implement polling for media"
 msgstr ""
 
-#: gio/gdrive.c:778
-msgid "drive doesnt implement start"
+#: ../gio/gdrive.c:753
+msgid "drive doesn't implement start"
 msgstr ""
 
-#: gio/gdrive.c:880
-msgid "drive doesnt implement stop"
+#: ../gio/gdrive.c:855
+msgid "drive doesn't implement stop"
 msgstr ""
 
-#: gio/gdtlsconnection.c:1120 gio/gtlsconnection.c:921
-msgid "TLS backend does not implement TLS binding retrieval"
-msgstr ""
-
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: ../gio/gdummytlsbackend.c:191 ../gio/gdummytlsbackend.c:311
+#: ../gio/gdummytlsbackend.c:401
 msgid "TLS support is not available"
 msgstr ""
 
-#: gio/gdummytlsbackend.c:423
-msgid "DTLS support is not available"
-msgstr ""
-
-#: gio/gemblem.c:323
+#: ../gio/gemblem.c:324
 #, c-format
-msgid "Cant handle version %d of GEmblem encoding"
+msgid "Can't handle version %d of GEmblem encoding"
 msgstr ""
 
-#: gio/gemblem.c:333
+#: ../gio/gemblem.c:334
 #, c-format
 msgid "Malformed number of tokens (%d) in GEmblem encoding"
 msgstr ""
 
-#: gio/gemblemedicon.c:362
+#: ../gio/gemblemedicon.c:364
 #, c-format
-msgid "Cant handle version %d of GEmblemedIcon encoding"
+msgid "Can't handle version %d of GEmblemedIcon encoding"
 msgstr ""
 
-#: gio/gemblemedicon.c:372
+#: ../gio/gemblemedicon.c:374
 #, c-format
 msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
 msgstr ""
 
-#: gio/gemblemedicon.c:395
+#: ../gio/gemblemedicon.c:397
 msgid "Expected a GEmblem for GEmblemedIcon"
 msgstr ""
 
-#: gio/gfile.c:1044 gio/gfile.c:1282 gio/gfile.c:1420 gio/gfile.c:1658
-#: gio/gfile.c:1713 gio/gfile.c:1771 gio/gfile.c:1855 gio/gfile.c:1912
-#: gio/gfile.c:1976 gio/gfile.c:2031 gio/gfile.c:3722 gio/gfile.c:3777
-#: gio/gfile.c:4070 gio/gfile.c:4540 gio/gfile.c:4951 gio/gfile.c:5036
-#: gio/gfile.c:5126 gio/gfile.c:5223 gio/gfile.c:5310 gio/gfile.c:5411
-#: gio/gfile.c:8121 gio/gfile.c:8211 gio/gfile.c:8295
-#: gio/win32/gwinhttpfile.c:437
+#: ../gio/gfile.c:962 ../gio/gfile.c:1201 ../gio/gfile.c:1340
+#: ../gio/gfile.c:1580 ../gio/gfile.c:1635 ../gio/gfile.c:1693
+#: ../gio/gfile.c:1777 ../gio/gfile.c:1834 ../gio/gfile.c:1898
+#: ../gio/gfile.c:1953 ../gio/gfile.c:3604 ../gio/gfile.c:3659
+#: ../gio/gfile.c:3867 ../gio/gfile.c:3909 ../gio/gfile.c:4375
+#: ../gio/gfile.c:4787 ../gio/gfile.c:4872 ../gio/gfile.c:4962
+#: ../gio/gfile.c:5059 ../gio/gfile.c:5146 ../gio/gfile.c:5247
+#: ../gio/gfile.c:7758 ../gio/gfile.c:7848 ../gio/gfile.c:7932
+#: ../gio/win32/gwinhttpfile.c:439
 msgid "Operation not supported"
-msgstr "Radnja nije podržana"
+msgstr ""
 
 #. Translators: This is an error message when
 #. * trying to find the enclosing (user visible)
 #. * mount of a file, but none exists.
-#.
-#: gio/gfile.c:1543
+#. 
+#. Translators: This is an error message when trying to
+#. * find the enclosing (user visible) mount of a file, but
+#. * none exists.
+#. Translators: This is an error message when trying to find
+#. * the enclosing (user visible) mount of a file, but none
+#. * exists.
+#: ../gio/gfile.c:1464 ../gio/glocalfile.c:1105 ../gio/glocalfile.c:1116
+#: ../gio/glocalfile.c:1129
 msgid "Containing mount does not exist"
 msgstr ""
 
-#: gio/gfile.c:2590 gio/glocalfile.c:2430
-msgid "Cant copy over directory"
+#: ../gio/gfile.c:2519 ../gio/glocalfile.c:2339
+msgid "Can't copy over directory"
 msgstr ""
 
-#: gio/gfile.c:2650
-msgid "Cant copy directory over directory"
-msgstr "Nemoguće je kopiranje direktorija preko direktorija"
+#: ../gio/gfile.c:2579
+msgid "Can't copy directory over directory"
+msgstr ""
 
-#: gio/gfile.c:2658
+#: ../gio/gfile.c:2587 ../gio/glocalfile.c:2348
 msgid "Target file exists"
-msgstr "Odredišna datoteka već postoji"
+msgstr ""
 
-#: gio/gfile.c:2677
-#, fuzzy
-msgid "Can’t recursively copy directory"
-msgstr "Nije moguće kopirati strukturu stabla direktorija"
+#: ../gio/gfile.c:2606
+msgid "Can't recursively copy directory"
+msgstr ""
 
-#: gio/gfile.c:2952
+#: ../gio/gfile.c:2888
 msgid "Splice not supported"
 msgstr ""
 
-#: gio/gfile.c:2956 gio/gfile.c:3001
+#: ../gio/gfile.c:2892
 #, c-format
 msgid "Error splicing file: %s"
 msgstr ""
 
-#: gio/gfile.c:3117
-msgid "Copy (reflink/clone) between mounts is not supported"
-msgstr ""
-
-#: gio/gfile.c:3121
-msgid "Copy (reflink/clone) is not supported or invalid"
-msgstr ""
-
-#: gio/gfile.c:3126
-msgid "Copy (reflink/clone) is not supported or didn’t work"
-msgstr ""
-
-#: gio/gfile.c:3190
-msgid "Can’t copy special file"
+#: ../gio/gfile.c:3095
+msgid "Can't copy special file"
 msgstr ""
 
-#: gio/gfile.c:4003
+#: ../gio/gfile.c:3857
 msgid "Invalid symlink value given"
 msgstr ""
 
-#: gio/gfile.c:4013 glib/gfileutils.c:2349
-msgid "Symbolic links not supported"
-msgstr "Nisu podržane simboličke veze"
-
-#: gio/gfile.c:4181
+#: ../gio/gfile.c:4019
 msgid "Trash not supported"
 msgstr ""
 
-#: gio/gfile.c:4293
+#: ../gio/gfile.c:4132
 #, c-format
-msgid "File names cannot contain “%c”"
+msgid "File names cannot contain '%c'"
 msgstr ""
 
-#: gio/gfile.c:6774 gio/gvolume.c:364
-msgid "volume doesnt implement mount"
+#: ../gio/gfile.c:6549 ../gio/gvolume.c:365
+msgid "volume doesn't implement mount"
 msgstr ""
 
-#: gio/gfile.c:6888 gio/gfile.c:6936
+#: ../gio/gfile.c:6658
 msgid "No application is registered as handling this file"
 msgstr ""
 
-#: gio/gfileenumerator.c:212
+#: ../gio/gfileenumerator.c:213
 msgid "Enumerator is closed"
 msgstr ""
 
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: ../gio/gfileenumerator.c:220 ../gio/gfileenumerator.c:279
+#: ../gio/gfileenumerator.c:379 ../gio/gfileenumerator.c:479
 msgid "File enumerator has outstanding operation"
 msgstr ""
 
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: ../gio/gfileenumerator.c:370 ../gio/gfileenumerator.c:470
 msgid "File enumerator is already closed"
 msgstr ""
 
-#: gio/gfileicon.c:236
+#: ../gio/gfileicon.c:237
 #, c-format
-msgid "Cant handle version %d of GFileIcon encoding"
+msgid "Can't handle version %d of GFileIcon encoding"
 msgstr ""
 
-#: gio/gfileicon.c:246
+#: ../gio/gfileicon.c:247
 msgid "Malformed input data for GFileIcon"
 msgstr ""
 
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
-msgid "Stream doesnt support query_info"
+#: ../gio/gfileinputstream.c:151 ../gio/gfileinputstream.c:397
+#: ../gio/gfileiostream.c:169 ../gio/gfileoutputstream.c:166
+#: ../gio/gfileoutputstream.c:500
+msgid "Stream doesn't support query_info"
 msgstr ""
 
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: ../gio/gfileinputstream.c:328 ../gio/gfileiostream.c:382
+#: ../gio/gfileoutputstream.c:374
 msgid "Seek not supported on stream"
-msgstr "Premotavanje nije podržano na strujanju"
+msgstr ""
 
-#: gio/gfileinputstream.c:369
+#: ../gio/gfileinputstream.c:372
 msgid "Truncate not allowed on input stream"
 msgstr ""
 
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: ../gio/gfileiostream.c:458 ../gio/gfileoutputstream.c:450
 msgid "Truncate not supported on stream"
-msgstr "Skračivanje nije podržano na strujanju"
-
-#: gio/ghttpproxy.c:91 gio/gresolver.c:443 gio/gresolver.c:596
-#: glib/gconvert.c:1778
-msgid "Invalid hostname"
-msgstr "Neispravan naziv računala"
-
-#: gio/ghttpproxy.c:143
-msgid "Bad HTTP proxy reply"
 msgstr ""
 
-#: gio/ghttpproxy.c:159
-msgid "HTTP proxy connection not allowed"
-msgstr ""
-
-#: gio/ghttpproxy.c:164
-msgid "HTTP proxy authentication failed"
-msgstr ""
-
-#: gio/ghttpproxy.c:167
-msgid "HTTP proxy authentication required"
-msgstr ""
-
-#: gio/ghttpproxy.c:171
-#, c-format
-msgid "HTTP proxy connection failed: %i"
-msgstr ""
-
-#: gio/ghttpproxy.c:269
-msgid "HTTP proxy server closed connection unexpectedly."
-msgstr ""
-
-#: gio/gicon.c:298
+#: ../gio/gicon.c:297
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr ""
 
-#: gio/gicon.c:318
+#: ../gio/gicon.c:317
 #, c-format
 msgid "No type for class name %s"
 msgstr ""
 
-#: gio/gicon.c:328
+#: ../gio/gicon.c:327
 #, c-format
 msgid "Type %s does not implement the GIcon interface"
 msgstr ""
 
-#: gio/gicon.c:339
+#: ../gio/gicon.c:338
 #, c-format
 msgid "Type %s is not classed"
 msgstr ""
 
-#: gio/gicon.c:353
+#: ../gio/gicon.c:352
 #, c-format
 msgid "Malformed version number: %s"
 msgstr ""
 
-#: gio/gicon.c:367
+#: ../gio/gicon.c:366
 #, c-format
 msgid "Type %s does not implement from_tokens() on the GIcon interface"
 msgstr ""
 
-#: gio/gicon.c:469
-msgid "Can’t handle the supplied version of the icon encoding"
+#: ../gio/gicon.c:430
+msgid "Can't handle the supplied version the icon encoding"
 msgstr ""
 
-#: gio/ginetaddressmask.c:182
+#: ../gio/ginetaddressmask.c:183
 msgid "No address specified"
 msgstr ""
 
-#: gio/ginetaddressmask.c:190
+#: ../gio/ginetaddressmask.c:191
 #, c-format
 msgid "Length %u is too long for address"
 msgstr ""
 
-#: gio/ginetaddressmask.c:223
+#: ../gio/ginetaddressmask.c:224
 msgid "Address has bits set beyond prefix length"
 msgstr ""
 
-#: gio/ginetaddressmask.c:300
+#: ../gio/ginetaddressmask.c:301
 #, c-format
-msgid "Could not parse “%s” as IP address mask"
+msgid "Could not parse '%s' as IP address mask"
 msgstr ""
 
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:220
+#: ../gio/ginetsocketaddress.c:197 ../gio/ginetsocketaddress.c:214
+#: ../gio/gunixsocketaddress.c:211
 msgid "Not enough space for socket address"
 msgstr ""
 
-#: gio/ginetsocketaddress.c:235
+#: ../gio/ginetsocketaddress.c:229
 msgid "Unsupported socket address"
 msgstr ""
 
-#: gio/ginputstream.c:188
-msgid "Input stream doesnt implement read"
+#: ../gio/ginputstream.c:184
+msgid "Input stream doesn't implement read"
 msgstr ""
 
 #. Translators: This is an error you get if there is already an
@@ -1504,1760 +1137,851 @@ msgstr ""
 #. Translators: This is an error you get if there is
 #. * already an operation running against this stream when
 #. * you try to start one
-#: gio/ginputstream.c:1218 gio/giostream.c:310 gio/goutputstream.c:2208
+#: ../gio/ginputstream.c:1023 ../gio/giostream.c:290
+#: ../gio/goutputstream.c:1478
 msgid "Stream has outstanding operation"
 msgstr ""
 
-#: gio/gio-tool.c:160
-msgid "Copy with file"
+#: ../gio/glib-compile-resources.c:144 ../gio/glib-compile-schemas.c:1455
+#, c-format
+msgid "Element <%s> not allowed inside <%s>"
 msgstr ""
 
-#: gio/gio-tool.c:164
-msgid "Keep with file when moved"
+#: ../gio/glib-compile-resources.c:148
+#, c-format
+msgid "Element <%s> not allowed at toplevel"
 msgstr ""
 
-#: gio/gio-tool.c:205
-msgid "“version” takes no arguments"
-msgstr "“version” ne sadrži argumente"
-
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
-msgid "Usage:"
-msgstr "Upotreba:"
-
-#: gio/gio-tool.c:210
-msgid "Print version information and exit."
-msgstr "Prikaži informaciju inačice i izađi."
-
-#: gio/gio-tool.c:226
-msgid "Commands:"
-msgstr "Naredbe:"
-
-#: gio/gio-tool.c:229
-msgid "Concatenate files to standard output"
+#: ../gio/glib-compile-resources.c:238
+#, c-format
+msgid "File %s appears multiple times in the resource"
 msgstr ""
 
-#: gio/gio-tool.c:230
-msgid "Copy one or more files"
+#: ../gio/glib-compile-resources.c:251
+#, c-format
+msgid "Failed to locate '%s' in any source directory"
 msgstr ""
 
-#: gio/gio-tool.c:231
-msgid "Show information about locations"
+#: ../gio/glib-compile-resources.c:262
+#, c-format
+msgid "Failed to locate '%s' in current directory"
 msgstr ""
 
-#: gio/gio-tool.c:232
-msgid "List the contents of locations"
+#: ../gio/glib-compile-resources.c:290
+#, c-format
+msgid "Unknown processing option \"%s\""
 msgstr ""
 
-#: gio/gio-tool.c:233
-msgid "Get or set the handler for a mimetype"
+#: ../gio/glib-compile-resources.c:308 ../gio/glib-compile-resources.c:354
+#, c-format
+msgid "Failed to create temp file: %s"
 msgstr ""
 
-#: gio/gio-tool.c:234
-msgid "Create directories"
+#: ../gio/glib-compile-resources.c:340
+#, c-format
+msgid ""
+"Error processing input file with xmllint:\n"
+"%s"
 msgstr ""
 
-#: gio/gio-tool.c:235
-msgid "Monitor files and directories for changes"
+#: ../gio/glib-compile-resources.c:396
+#, c-format
+msgid ""
+"Error processing input file with to-pixdata:\n"
+"%s"
 msgstr ""
 
-#: gio/gio-tool.c:236
-msgid "Mount or unmount the locations"
+#: ../gio/glib-compile-resources.c:382
+#, c-format
+msgid "Error reading file %s: %s"
 msgstr ""
 
-#: gio/gio-tool.c:237
-msgid "Move one or more files"
+#: ../gio/glib-compile-resources.c:402
+#, c-format
+msgid "Error compressing file %s"
 msgstr ""
 
-#: gio/gio-tool.c:238
-msgid "Open files with the default application"
+#: ../gio/glib-compile-resources.c:466 ../gio/glib-compile-schemas.c:1567
+#, c-format
+msgid "text may not appear inside <%s>"
 msgstr ""
 
-#: gio/gio-tool.c:239
-msgid "Rename a file"
+#: ../gio/glib-compile-resources.c:591
+msgid "name of the output file"
 msgstr ""
 
-#: gio/gio-tool.c:240
-msgid "Delete one or more files"
+#: ../gio/gapplication-tool.c:74 ../gio/glib-compile-resources.c:591
+#: ../gio/glib-compile-resources.c:622 ../gio/gresource-tool.c:482
+#: ../gio/gresource-tool.c:548
+msgid "FILE"
 msgstr ""
 
-#: gio/gio-tool.c:241
-msgid "Read from standard input and save"
+#: ../gio/glib-compile-resources.c:592
+msgid ""
+"The directories where files are to be read from (default to current "
+"directory)"
 msgstr ""
 
-#: gio/gio-tool.c:242
-msgid "Set a file attribute"
+#: ../gio/glib-compile-resources.c:592 ../gio/glib-compile-schemas.c:1996
+#: ../gio/glib-compile-schemas.c:2025
+msgid "DIRECTORY"
 msgstr ""
 
-#: gio/gio-tool.c:243
-msgid "Move files or directories to the trash"
+#: ../gio/glib-compile-resources.c:593
+msgid ""
+"Generate output in the format selected for by the target filename extension"
 msgstr ""
 
-#: gio/gio-tool.c:244
-msgid "Lists the contents of locations in a tree"
+#: ../gio/glib-compile-resources.c:594
+msgid "Generate source header"
 msgstr ""
 
-#: gio/gio-tool.c:246
-#, c-format
-msgid "Use %s to get detailed help.\n"
+#: ../gio/glib-compile-resources.c:595
+msgid "Generate sourcecode used to link in the resource file into your code"
 msgstr ""
 
-#: gio/gio-tool-cat.c:87
-msgid "Error writing to stdout"
-msgstr "Greška zapisivanja i stdout"
-
-#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:333 gio/gio-tool-list.c:172
-#: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
-#: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:203 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
-#: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:89
-#: gio/gio-tool-trash.c:81 gio/gio-tool-tree.c:239
-msgid "LOCATION"
-msgstr "LOKACIJA"
-
-#: gio/gio-tool-cat.c:138
-msgid "Concatenate files and print to standard output."
+#: ../gio/glib-compile-resources.c:596
+msgid "Generate dependency list"
 msgstr ""
 
-#: gio/gio-tool-cat.c:140
-msgid ""
-"gio cat works just like the traditional cat utility, but using GIO\n"
-"locations instead of local files: for example, you can use something\n"
-"like smb://server/resource/file.txt as location."
+#: ../gio/glib-compile-resources.c:597
+msgid "Don't automatically create and register resource"
 msgstr ""
 
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:364 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
-msgid "No locations given"
+#: ../gio/glib-compile-resources.c:599
+msgid "C identifier name used for the generated source code"
 msgstr ""
 
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
-msgid "No target directory"
+#: ../gio/glib-compile-resources.c:625
+msgid ""
+"Compile a resource specification into a resource file.\n"
+"Resource specification files have the extension .gresource.xml,\n"
+"and the resource file have the extension called .gresource."
 msgstr ""
 
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
-msgid "Show progress"
+#: ../gio/glib-compile-resources.c:641
+#, c-format
+msgid "You should give exactly one file name\n"
 msgstr ""
 
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
-msgid "Prompt before overwrite"
+#: ../gio/glib-compile-schemas.c:774
+msgid "empty names are not permitted"
 msgstr ""
 
-#: gio/gio-tool-copy.c:46
-msgid "Preserve all attributes"
+#: ../gio/glib-compile-schemas.c:784
+#, c-format
+msgid "invalid name '%s': names must begin with a lowercase letter"
 msgstr ""
 
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
-msgid "Backup existing destination files"
+#: ../gio/glib-compile-schemas.c:796
+#, c-format
+msgid ""
+"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
+"and dash ('-') are permitted."
 msgstr ""
 
-#: gio/gio-tool-copy.c:48
-msgid "Never follow symbolic links"
+#: ../gio/glib-compile-schemas.c:805
+#, c-format
+msgid "invalid name '%s': two successive dashes ('--') are not permitted."
 msgstr ""
 
-#: gio/gio-tool-copy.c:49
-msgid "Use default permissions for the destination"
+#: ../gio/glib-compile-schemas.c:814
+#, c-format
+msgid "invalid name '%s': the last character may not be a dash ('-')."
 msgstr ""
 
-#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
+#: ../gio/glib-compile-schemas.c:822
 #, c-format
-msgid "Transferred %s out of %s (%s/s)"
+msgid "invalid name '%s': maximum length is 1024"
 msgstr ""
 
-#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
-msgid "SOURCE"
-msgstr "IZVOR"
+#: ../gio/glib-compile-schemas.c:891
+#, c-format
+msgid "<child name='%s'> already specified"
+msgstr ""
 
-#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
-msgid "DESTINATION"
-msgstr "ODREDIŠTE"
+#: ../gio/glib-compile-schemas.c:917
+msgid "cannot add keys to a 'list-of' schema"
+msgstr ""
 
-#: gio/gio-tool-copy.c:105
-msgid "Copy one or more files from SOURCE to DESTINATION."
-msgstr "Kopiraj jednu ili više datoteka iz IZVORA u ODREDIŠTE."
+#: ../gio/glib-compile-schemas.c:928
+#, c-format
+msgid "<key name='%s'> already specified"
+msgstr ""
 
-#: gio/gio-tool-copy.c:107
+#: ../gio/glib-compile-schemas.c:946
+#, c-format
 msgid ""
-"gio copy is similar to the traditional cp utility, but using GIO\n"
-"locations instead of local files: for example, you can use something\n"
-"like smb://server/resource/file.txt as location."
+"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
+"to modify value"
 msgstr ""
 
-#: gio/gio-tool-copy.c:149
+#: ../gio/glib-compile-schemas.c:957
 #, c-format
-msgid "Destination %s is not a directory"
+msgid ""
+"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute "
+"to <key>"
 msgstr ""
 
-#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
+#: ../gio/glib-compile-schemas.c:976
 #, c-format
-msgid "%s: overwrite “%s”? "
+msgid "<%s id='%s'> not (yet) defined."
 msgstr ""
 
-#: gio/gio-tool-info.c:37
-msgid "List writable attributes"
+#: ../gio/glib-compile-schemas.c:991
+#, c-format
+msgid "invalid GVariant type string '%s'"
 msgstr ""
 
-#: gio/gio-tool-info.c:38
-msgid "Get file system info"
+#: ../gio/glib-compile-schemas.c:1021
+msgid "<override> given but schema isn't extending anything"
 msgstr ""
 
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
-msgid "The attributes to get"
+#: ../gio/glib-compile-schemas.c:1034
+#, c-format
+msgid "no <key name='%s'> to override"
 msgstr ""
 
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
-msgid "ATTRIBUTES"
-msgstr "SVOJSTVA"
-
-#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
-msgid "Don’t follow symbolic links"
+#: ../gio/glib-compile-schemas.c:1042
+#, c-format
+msgid "<override name='%s'> already specified"
 msgstr ""
 
-#: gio/gio-tool-info.c:78
-msgid "attributes:\n"
+#: ../gio/glib-compile-schemas.c:1113
+#, c-format
+msgid "<schema id='%s'> already specified"
 msgstr ""
 
-#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:134
+#: ../gio/glib-compile-schemas.c:1125
 #, c-format
-msgid "display name: %s\n"
+msgid "<schema id='%s'> extends not yet existing schema '%s'"
 msgstr ""
 
-#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:139
+#: ../gio/glib-compile-schemas.c:1141
 #, c-format
-msgid "edit name: %s\n"
+msgid "<schema id='%s'> is list of not yet existing schema '%s'"
 msgstr ""
 
-#: gio/gio-tool-info.c:145
+#: ../gio/glib-compile-schemas.c:1149
 #, c-format
-msgid "name: %s\n"
+msgid "Can not be a list of a schema with a path"
 msgstr ""
 
-#: gio/gio-tool-info.c:152
+#: ../gio/glib-compile-schemas.c:1159
 #, c-format
-msgid "type: %s\n"
+msgid "Can not extend a schema with a path"
 msgstr ""
 
-#: gio/gio-tool-info.c:158
-msgid "size: "
+#: ../gio/glib-compile-schemas.c:1169
+#, c-format
+msgid ""
+"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
 msgstr ""
 
-#: gio/gio-tool-info.c:163
-msgid "hidden\n"
+#: ../gio/glib-compile-schemas.c:1179
+#, c-format
+msgid ""
+"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but '%s' "
+"does not extend '%s'"
 msgstr ""
 
-#: gio/gio-tool-info.c:166
+#: ../gio/glib-compile-schemas.c:1196
 #, c-format
-msgid "uri: %s\n"
+msgid "a path, if given, must begin and end with a slash"
 msgstr ""
 
-#: gio/gio-tool-info.c:172
+#: ../gio/glib-compile-schemas.c:1203
 #, c-format
-msgid "local path: %s\n"
+msgid "the path of a list must end with ':/'"
 msgstr ""
 
-#: gio/gio-tool-info.c:199
+#: ../gio/glib-compile-schemas.c:1235
 #, c-format
-msgid "unix mount: %s%s %s %s %s\n"
+msgid "<%s id='%s'> already specified"
 msgstr ""
 
-#: gio/gio-tool-info.c:279
-msgid "Settable attributes:\n"
+#. Translators: Do not translate "--strict".
+#: ../gio/glib-compile-schemas.c:1754 ../gio/glib-compile-schemas.c:1825
+#: ../gio/glib-compile-schemas.c:1901
+#, c-format
+msgid "--strict was specified; exiting.\n"
 msgstr ""
 
-#: gio/gio-tool-info.c:303
-msgid "Writable attribute namespaces:\n"
+#: ../gio/glib-compile-schemas.c:1762
+#, c-format
+msgid "This entire file has been ignored.\n"
 msgstr ""
 
-#: gio/gio-tool-info.c:338
-msgid "Show information about locations."
+#: ../gio/glib-compile-schemas.c:1821
+#, c-format
+msgid "Ignoring this file.\n"
 msgstr ""
 
-#: gio/gio-tool-info.c:340
-msgid ""
-"gio info is similar to the traditional ls utility, but using GIO\n"
-"locations instead of local files: for example, you can use something\n"
-"like smb://server/resource/file.txt as location. File attributes can\n"
-"be specified with their GIO name, e.g. standard::icon, or just by\n"
-"namespace, e.g. unix, or by “*”, which matches all attributes"
+#: ../gio/glib-compile-schemas.c:1864
+#, c-format
+msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
 msgstr ""
 
-#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
-msgid "Show hidden files"
+#: ../gio/glib-compile-schemas.c:1867 ../gio/glib-compile-schemas.c:1925
+#: ../gio/glib-compile-schemas.c:1953
+#, c-format
+msgid "; ignoring override for this key.\n"
 msgstr ""
 
-#: gio/gio-tool-list.c:38
-msgid "Use a long listing format"
+#: ../gio/glib-compile-schemas.c:1871 ../gio/glib-compile-schemas.c:1929
+#: ../gio/glib-compile-schemas.c:1957
+#, c-format
+msgid " and --strict was specified; exiting.\n"
 msgstr ""
 
-#: gio/gio-tool-list.c:40
-msgid "Print display names"
+#: ../gio/glib-compile-schemas.c:1886
+#, c-format
+msgid ""
+"error parsing key `%s' in schema `%s' as specified in override file `%s': "
+"%s.  "
 msgstr ""
 
-#: gio/gio-tool-list.c:41
-msgid "Print full URIs"
+#: ../gio/glib-compile-schemas.c:1897
+#, c-format
+msgid "Ignoring override for this key.\n"
 msgstr ""
 
-#: gio/gio-tool-list.c:177
-msgid "List the contents of the locations."
+#: ../gio/glib-compile-schemas.c:1914
+#, c-format
+msgid ""
+"override for key `%s' in schema `%s' in override file `%s' is out of the "
+"range given in the schema"
 msgstr ""
 
-#: gio/gio-tool-list.c:179
+#: ../gio/glib-compile-schemas.c:1946
+#, c-format
 msgid ""
-"gio list is similar to the traditional ls utility, but using GIO\n"
-"locations instead of local files: for example, you can use something\n"
-"like smb://server/resource/file.txt as location. File attributes can\n"
-"be specified with their GIO name, e.g. standard::icon"
+"override for key `%s' in schema `%s' in override file `%s' is not in the "
+"list of valid choices"
 msgstr ""
 
-#. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
-msgid "MIMETYPE"
+#: ../gio/glib-compile-schemas.c:1996
+msgid "where to store the gschemas.compiled file"
 msgstr ""
 
-#: gio/gio-tool-mime.c:71
-msgid "HANDLER"
+#: ../gio/glib-compile-schemas.c:1997
+msgid "Abort on any errors in schemas"
 msgstr ""
 
-#: gio/gio-tool-mime.c:76
-msgid "Get or set the handler for a mimetype."
+#: ../gio/glib-compile-schemas.c:1998
+msgid "Do not write the gschema.compiled file"
 msgstr ""
 
-#: gio/gio-tool-mime.c:78
-msgid ""
-"If no handler is given, lists registered and recommended applications\n"
-"for the mimetype. If a handler is given, it is set as the default\n"
-"handler for the mimetype."
+#: ../gio/glib-compile-schemas.c:1999
+msgid "Do not enforce key name restrictions"
 msgstr ""
 
-#: gio/gio-tool-mime.c:100
-msgid "Must specify a single mimetype, and maybe a handler"
+#: ../gio/glib-compile-schemas.c:2028
+msgid ""
+"Compile all GSettings schema files into a schema cache.\n"
+"Schema files are required to have the extension .gschema.xml,\n"
+"and the cache file is called gschemas.compiled."
 msgstr ""
 
-#: gio/gio-tool-mime.c:116
+#: ../gio/glib-compile-schemas.c:2044
 #, c-format
-msgid "No default applications for “%s”\n"
+msgid "You should give exactly one directory name\n"
 msgstr ""
 
-#: gio/gio-tool-mime.c:122
+#: ../gio/glib-compile-schemas.c:2083
 #, c-format
-msgid "Default application for “%s”: %s\n"
+msgid "No schema files found: "
 msgstr ""
 
-#: gio/gio-tool-mime.c:127
-msgid "Registered applications:\n"
+#: ../gio/glib-compile-schemas.c:2086
+#, c-format
+msgid "doing nothing.\n"
 msgstr ""
 
-#: gio/gio-tool-mime.c:129
-msgid "No registered applications\n"
+#: ../gio/glib-compile-schemas.c:2089
+#, c-format
+msgid "removed existing output file.\n"
 msgstr ""
 
-#: gio/gio-tool-mime.c:140
-msgid "Recommended applications:\n"
+#: ../gio/glocaldirectorymonitor.c:226
+msgid "Unable to find default local directory monitor type"
 msgstr ""
 
-#: gio/gio-tool-mime.c:142
-msgid "No recommended applications\n"
+#: ../gio/glocalfile.c:606 ../gio/win32/gwinhttpfile.c:422
+#, c-format
+msgid "Invalid filename %s"
 msgstr ""
 
-#: gio/gio-tool-mime.c:162
-#, fuzzy, c-format
-#| msgid "Failed to read from file '%s': %s"
-msgid "Failed to load info for handler “%s”"
-msgstr "Greška pri čitanju iz datoteke '%s': %s"
-
-#: gio/gio-tool-mime.c:168
+#: ../gio/glocalfile.c:983
 #, c-format
-msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
+msgid "Error getting filesystem info: %s"
 msgstr ""
 
-#: gio/gio-tool-mkdir.c:31
-msgid "Create parent directories"
-msgstr "Stvori sadržajne direktorije"
-
-#: gio/gio-tool-mkdir.c:52
-msgid "Create directories."
-msgstr "Stvori direktorije."
-
-#: gio/gio-tool-mkdir.c:54
-msgid ""
-"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
-"locations instead of local files: for example, you can use something\n"
-"like smb://server/resource/mydir as location."
+#: ../gio/glocalfile.c:1151
+msgid "Can't rename root directory"
 msgstr ""
 
-#: gio/gio-tool-monitor.c:37
-msgid "Monitor a directory (default: depends on type)"
+#: ../gio/glocalfile.c:1171 ../gio/glocalfile.c:1197
+#, c-format
+msgid "Error renaming file: %s"
 msgstr ""
 
-#: gio/gio-tool-monitor.c:39
-msgid "Monitor a file (default: depends on type)"
+#: ../gio/glocalfile.c:1180
+msgid "Can't rename file, filename already exists"
 msgstr ""
 
-#: gio/gio-tool-monitor.c:41
-msgid "Monitor a file directly (notices changes made via hardlinks)"
+#: ../gio/glocalfile.c:1193 ../gio/glocalfile.c:2212 ../gio/glocalfile.c:2241
+#: ../gio/glocalfile.c:2401 ../gio/glocalfileoutputstream.c:551
+msgid "Invalid filename"
 msgstr ""
 
-#: gio/gio-tool-monitor.c:43
-msgid "Monitors a file directly, but doesn’t report changes"
+#: ../gio/glocalfile.c:1360 ../gio/glocalfile.c:1384
+msgid "Can't open directory"
 msgstr ""
 
-#: gio/gio-tool-monitor.c:45
-msgid "Report moves and renames as simple deleted/created events"
+#: ../gio/glocalfile.c:1368
+#, c-format
+msgid "Error opening file: %s"
 msgstr ""
 
-#: gio/gio-tool-monitor.c:47
-msgid "Watch for mount events"
-msgstr "NAdgledaj događaje montiranja"
-
-#: gio/gio-tool-monitor.c:208
-msgid "Monitor files or directories for changes."
-msgstr "Nadgledaj promjene datoteka ili direktorija."
-
-#: gio/gio-tool-mount.c:63
-msgid "Mount as mountable"
-msgstr "Montiraj kao montirljivo"
-
-#: gio/gio-tool-mount.c:64
-msgid "Mount volume with device file, or other identifier"
-msgstr "Montiraj uređaj s datotekom uređaja ili drugim identifikatorom"
-
-#: gio/gio-tool-mount.c:64
-msgid "ID"
-msgstr "ID"
-
-#: gio/gio-tool-mount.c:65
-msgid "Unmount"
-msgstr "Odmontiraj"
-
-#: gio/gio-tool-mount.c:66
-msgid "Eject"
-msgstr "Izbaci"
-
-#: gio/gio-tool-mount.c:67
-msgid "Stop drive with device file"
-msgstr "Zaustavi uređaj s datotekom uređaja"
-
-#: gio/gio-tool-mount.c:67
-msgid "DEVICE"
-msgstr "UREĐAJ"
-
-#: gio/gio-tool-mount.c:68
-msgid "Unmount all mounts with the given scheme"
-msgstr "Odmontiraj sva montiranja sa zadanom shemom"
-
-#: gio/gio-tool-mount.c:68
-msgid "SCHEME"
-msgstr "SCHEMA"
-
-#: gio/gio-tool-mount.c:69
-msgid "Ignore outstanding file operations when unmounting or ejecting"
+#: ../gio/glocalfile.c:1509
+#, c-format
+msgid "Error removing file: %s"
 msgstr ""
 
-#: gio/gio-tool-mount.c:70
-msgid "Use an anonymous user when authenticating"
+#: ../gio/glocalfile.c:1889
+#, c-format
+msgid "Error trashing file: %s"
 msgstr ""
 
-#. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
-msgid "List"
-msgstr "Popis"
-
-#: gio/gio-tool-mount.c:73
-msgid "Monitor events"
+#: ../gio/glocalfile.c:1912
+#, c-format
+msgid "Unable to create trash dir %s: %s"
 msgstr ""
 
-#: gio/gio-tool-mount.c:74
-msgid "Show extra information"
-msgstr "Prikaži dodatne informacije"
-
-#: gio/gio-tool-mount.c:75
-msgid "The numeric PIM when unlocking a VeraCrypt volume"
+#: ../gio/glocalfile.c:1933
+msgid "Unable to find toplevel directory for trash"
 msgstr ""
 
-#: gio/gio-tool-mount.c:75
-msgid "PIM"
+#: ../gio/glocalfile.c:2012 ../gio/glocalfile.c:2032
+msgid "Unable to find or create trash directory"
 msgstr ""
 
-#: gio/gio-tool-mount.c:76
-msgid "Mount a TCRYPT hidden volume"
+#: ../gio/glocalfile.c:2066
+#, c-format
+msgid "Unable to create trashing info file: %s"
 msgstr ""
 
-#: gio/gio-tool-mount.c:77
-msgid "Mount a TCRYPT system volume"
+#: ../gio/glocalfile.c:2097 ../gio/glocalfile.c:2102 ../gio/glocalfile.c:2182
+#: ../gio/glocalfile.c:2189
+#, c-format
+msgid "Unable to trash file: %s"
 msgstr ""
 
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
-msgid "Anonymous access denied"
+#: ../gio/glocalfile.c:2190 ../glib/gregex.c:280
+msgid "internal error"
 msgstr ""
 
-#: gio/gio-tool-mount.c:522
-msgid "No drive for device file"
+#: ../gio/glocalfile.c:2216
+#, c-format
+msgid "Error creating directory: %s"
 msgstr ""
 
-#: gio/gio-tool-mount.c:1014
-msgid "No volume for given ID"
+#: ../gio/glocalfile.c:2245
+#, c-format
+msgid "Filesystem does not support symbolic links"
 msgstr ""
 
-#: gio/gio-tool-mount.c:1203
-msgid "Mount or unmount the locations."
+#: ../gio/glocalfile.c:2249
+#, c-format
+msgid "Error making symbolic link: %s"
 msgstr ""
 
-#: gio/gio-tool-move.c:42
-msgid "Don’t use copy and delete fallback"
+#: ../gio/glocalfile.c:2311 ../gio/glocalfile.c:2405
+#, c-format
+msgid "Error moving file: %s"
 msgstr ""
 
-#: gio/gio-tool-move.c:99
-msgid "Move one or more files from SOURCE to DEST."
+#: ../gio/glocalfile.c:2334
+msgid "Can't move directory over directory"
 msgstr ""
 
-#: gio/gio-tool-move.c:101
-msgid ""
-"gio move is similar to the traditional mv utility, but using GIO\n"
-"locations instead of local files: for example, you can use something\n"
-"like smb://server/resource/file.txt as location"
+#: ../gio/glocalfile.c:2361 ../gio/glocalfileoutputstream.c:927
+#: ../gio/glocalfileoutputstream.c:941 ../gio/glocalfileoutputstream.c:956
+#: ../gio/glocalfileoutputstream.c:972 ../gio/glocalfileoutputstream.c:986
+msgid "Backup file creation failed"
 msgstr ""
 
-#: gio/gio-tool-move.c:143
+#: ../gio/glocalfile.c:2380
 #, c-format
-msgid "Target %s is not a directory"
+msgid "Error removing target file: %s"
 msgstr ""
 
-#: gio/gio-tool-open.c:75
-msgid ""
-"Open files with the default application that\n"
-"is registered to handle files of this type."
+#: ../gio/glocalfile.c:2394
+msgid "Move between mounts not supported"
 msgstr ""
 
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:31
-msgid "Ignore nonexistent files, never prompt"
+#: ../gio/glocalfileinfo.c:722
+msgid "Attribute value must be non-NULL"
 msgstr ""
 
-#: gio/gio-tool-remove.c:52
-msgid "Delete the given files."
+#: ../gio/glocalfileinfo.c:729
+msgid "Invalid attribute type (string expected)"
 msgstr ""
 
-#: gio/gio-tool-rename.c:45
-msgid "NAME"
-msgstr "NAZIV"
-
-#: gio/gio-tool-rename.c:50
-msgid "Rename a file."
-msgstr "Preimenuj datoteku."
-
-#: gio/gio-tool-rename.c:70
-msgid "Missing argument"
-msgstr "Nedostaje argument"
-
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
-msgid "Too many arguments"
-msgstr "Previše argumenata"
-
-#: gio/gio-tool-rename.c:95
-#, c-format
-msgid "Rename successful. New uri: %s\n"
+#: ../gio/glocalfileinfo.c:736
+msgid "Invalid extended attribute name"
 msgstr ""
 
-#: gio/gio-tool-save.c:50
-msgid "Only create if not existing"
+#: ../gio/glocalfileinfo.c:776
+#, c-format
+msgid "Error setting extended attribute '%s': %s"
 msgstr ""
 
-#: gio/gio-tool-save.c:51
-msgid "Append to end of file"
+#: ../gio/glocalfileinfo.c:1557
+msgid " (invalid encoding)"
 msgstr ""
 
-#: gio/gio-tool-save.c:52
-msgid "When creating, restrict access to the current user"
+#: ../gio/glocalfileinfo.c:1749 ../gio/glocalfileoutputstream.c:805
+#, c-format
+msgid "Error when getting information for file '%s': %s"
 msgstr ""
 
-#: gio/gio-tool-save.c:53
-msgid "When replacing, replace as if the destination did not exist"
+#: ../gio/glocalfileinfo.c:2000
+#, c-format
+msgid "Error when getting information for file descriptor: %s"
 msgstr ""
 
-#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:55
-msgid "Print new etag at end"
+#: ../gio/glocalfileinfo.c:2045
+msgid "Invalid attribute type (uint32 expected)"
 msgstr ""
 
-#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:57
-msgid "The etag of the file being overwritten"
+#: ../gio/glocalfileinfo.c:2063
+msgid "Invalid attribute type (uint64 expected)"
 msgstr ""
 
-#: gio/gio-tool-save.c:57
-msgid "ETAG"
+#: ../gio/glocalfileinfo.c:2082 ../gio/glocalfileinfo.c:2101
+msgid "Invalid attribute type (byte string expected)"
 msgstr ""
 
-#: gio/gio-tool-save.c:113
-msgid "Error reading from standard input"
-msgstr "Greška pri čitanju iz standardnog ulaza"
-
-#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:139
-msgid "Etag not available\n"
+#: ../gio/glocalfileinfo.c:2136
+msgid "Cannot set permissions on symlinks"
 msgstr ""
 
-#: gio/gio-tool-save.c:163
-msgid "Read from standard input and save to DEST."
+#: ../gio/glocalfileinfo.c:2152
+#, c-format
+msgid "Error setting permissions: %s"
 msgstr ""
 
-#: gio/gio-tool-save.c:183
-msgid "No destination given"
-msgstr "Odredište nije zadano"
-
-#: gio/gio-tool-set.c:33
-msgid "Type of the attribute"
+#: ../gio/glocalfileinfo.c:2203
+#, c-format
+msgid "Error setting owner: %s"
 msgstr ""
 
-#: gio/gio-tool-set.c:33
-msgid "TYPE"
-msgstr "VRSTA"
-
-#: gio/gio-tool-set.c:89
-msgid "ATTRIBUTE"
-msgstr "SVOJSTVO"
-
-#: gio/gio-tool-set.c:89
-msgid "VALUE"
-msgstr "VRIJEDNOST"
-
-#: gio/gio-tool-set.c:93
-msgid "Set a file attribute of LOCATION."
-msgstr "Postavi datoteku svojstva LOKACIJE."
-
-#: gio/gio-tool-set.c:113
-msgid "Location not specified"
+#: ../gio/glocalfileinfo.c:2226
+msgid "symlink must be non-NULL"
 msgstr ""
 
-#: gio/gio-tool-set.c:120
-msgid "Attribute not specified"
+#: ../gio/glocalfileinfo.c:2236 ../gio/glocalfileinfo.c:2255
+#: ../gio/glocalfileinfo.c:2266
+#, c-format
+msgid "Error setting symlink: %s"
 msgstr ""
 
-#: gio/gio-tool-set.c:130
-msgid "Value not specified"
+#: ../gio/glocalfileinfo.c:2245
+msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 
-#: gio/gio-tool-set.c:180
+#: ../gio/glocalfileinfo.c:2371
 #, c-format
-msgid "Invalid attribute type “%s”"
+msgid "Error setting modification or access time: %s"
 msgstr ""
 
-#: gio/gio-tool-trash.c:32
-msgid "Empty the trash"
+#: ../gio/glocalfileinfo.c:2394
+msgid "SELinux context must be non-NULL"
 msgstr ""
 
-#: gio/gio-tool-trash.c:86
-msgid "Move files or directories to the trash."
+#: ../gio/glocalfileinfo.c:2409
+#, c-format
+msgid "Error setting SELinux context: %s"
 msgstr ""
 
-#: gio/gio-tool-tree.c:33
-msgid "Follow symbolic links, mounts and shortcuts"
+#: ../gio/glocalfileinfo.c:2416
+msgid "SELinux is not enabled on this system"
 msgstr ""
 
-#: gio/gio-tool-tree.c:244
-msgid "List contents of directories in a tree-like format."
+#: ../gio/glocalfileinfo.c:2508
+#, c-format
+msgid "Setting attribute %s not supported"
 msgstr ""
 
-#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
+#: ../gio/glocalfileinputstream.c:170 ../gio/glocalfileoutputstream.c:696
 #, c-format
-msgid "Element <%s> not allowed inside <%s>"
-msgstr "Element <%s> nije dopušten unutar <%s>"
+msgid "Error reading from file: %s"
+msgstr ""
 
-#: gio/glib-compile-resources.c:144
+#: ../gio/glocalfileinputstream.c:201 ../gio/glocalfileinputstream.c:213
+#: ../gio/glocalfileinputstream.c:227 ../gio/glocalfileinputstream.c:335
+#: ../gio/glocalfileoutputstream.c:458 ../gio/glocalfileoutputstream.c:1004
 #, c-format
-msgid "Element <%s> not allowed at toplevel"
-msgstr "Element <%s> nije dopušten na najvišoj razini"
+msgid "Error seeking in file: %s"
+msgstr ""
 
-#: gio/glib-compile-resources.c:234
+#: ../gio/glocalfileinputstream.c:257 ../gio/glocalfileoutputstream.c:248
+#: ../gio/glocalfileoutputstream.c:342
 #, c-format
-msgid "File %s appears multiple times in the resource"
+msgid "Error closing file: %s"
 msgstr ""
 
-#: gio/glib-compile-resources.c:245
-#, c-format
-msgid "Failed to locate “%s” in any source directory"
+#: ../gio/glocalfilemonitor.c:147
+msgid "Unable to find default local file monitor type"
 msgstr ""
 
-#: gio/glib-compile-resources.c:256
+#: ../gio/glocalfileoutputstream.c:196 ../gio/glocalfileoutputstream.c:228
+#: ../gio/glocalfileoutputstream.c:717
 #, c-format
-msgid "Failed to locate “%s” in current directory"
+msgid "Error writing to file: %s"
 msgstr ""
 
-#: gio/glib-compile-resources.c:290
+#: ../gio/glocalfileoutputstream.c:275
 #, c-format
-msgid "Unknown processing option “%s”"
-msgstr "Nepoznata mogućnost obrade “%s”"
+msgid "Error removing old backup link: %s"
+msgstr ""
 
-#. Translators: the first %s is a gresource XML attribute,
-#. * the second %s is an environment variable, and the third
-#. * %s is a command line tool
-#.
-#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
-#: gio/glib-compile-resources.c:424
+#: ../gio/glocalfileoutputstream.c:289 ../gio/glocalfileoutputstream.c:302
 #, c-format
-msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
+msgid "Error creating backup copy: %s"
 msgstr ""
 
-#: gio/glib-compile-resources.c:457
+#: ../gio/glocalfileoutputstream.c:320
 #, c-format
-msgid "Error reading file %s: %s"
+msgid "Error renaming temporary file: %s"
 msgstr ""
 
-#: gio/glib-compile-resources.c:477
+#: ../gio/glocalfileoutputstream.c:504 ../gio/glocalfileoutputstream.c:1055
 #, c-format
-msgid "Error compressing file %s"
+msgid "Error truncating file: %s"
 msgstr ""
 
-#: gio/glib-compile-resources.c:541
+#: ../gio/glocalfileoutputstream.c:557 ../gio/glocalfileoutputstream.c:787
+#: ../gio/glocalfileoutputstream.c:1036 ../gio/gsubprocess.c:360
 #, c-format
-msgid "text may not appear inside <%s>"
+msgid "Error opening file '%s': %s"
 msgstr ""
 
-#: gio/glib-compile-resources.c:737 gio/glib-compile-schemas.c:2172
-msgid "Show program version and exit"
+#: ../gio/glocalfileoutputstream.c:818
+msgid "Target file is a directory"
 msgstr ""
 
-#: gio/glib-compile-resources.c:738
-msgid "Name of the output file"
+#: ../gio/glocalfileoutputstream.c:823
+msgid "Target file is not a regular file"
 msgstr ""
 
-#: gio/glib-compile-resources.c:739
-msgid ""
-"The directories to load files referenced in FILE from (default: current "
-"directory)"
+#: ../gio/glocalfileoutputstream.c:835
+msgid "The file was externally modified"
 msgstr ""
 
-#: gio/glib-compile-resources.c:739 gio/glib-compile-schemas.c:2173
-#: gio/glib-compile-schemas.c:2202
-msgid "DIRECTORY"
-msgstr "DIREKTORIJ"
-
-#: gio/glib-compile-resources.c:740
-msgid ""
-"Generate output in the format selected for by the target filename extension"
+#: ../gio/glocalfileoutputstream.c:1020
+#, c-format
+msgid "Error removing old file: %s"
 msgstr ""
 
-#: gio/glib-compile-resources.c:741
-msgid "Generate source header"
+#: ../gio/gmemoryinputstream.c:473 ../gio/gmemoryoutputstream.c:773
+msgid "Invalid GSeekType supplied"
 msgstr ""
 
-#: gio/glib-compile-resources.c:742
-msgid "Generate source code used to link in the resource file into your code"
+#: ../gio/gmemoryinputstream.c:483
+msgid "Invalid seek request"
 msgstr ""
 
-#: gio/glib-compile-resources.c:743
-msgid "Generate dependency list"
+#: ../gio/gmemoryinputstream.c:507
+msgid "Cannot truncate GMemoryInputStream"
 msgstr ""
 
-#: gio/glib-compile-resources.c:744
-msgid "Name of the dependency file to generate"
+#: ../gio/gmemoryoutputstream.c:567
+msgid "Memory output stream not resizable"
 msgstr ""
 
-#: gio/glib-compile-resources.c:745
-msgid "Include phony targets in the generated dependency file"
+#: ../gio/gmemoryoutputstream.c:583
+msgid "Failed to resize memory output stream"
 msgstr ""
 
-#: gio/glib-compile-resources.c:746
-msgid "Don’t automatically create and register resource"
+#: ../gio/gmemoryoutputstream.c:675
+msgid ""
+"Amount of memory required to process the write is larger than available "
+"address space"
 msgstr ""
 
-#: gio/glib-compile-resources.c:747
-msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
+#: ../gio/gmemoryoutputstream.c:783
+msgid "Requested seek before the beginning of the stream"
 msgstr ""
 
-#: gio/glib-compile-resources.c:748
-msgid ""
-"Don’t embed resource data in the C file; assume it's linked externally "
-"instead"
+#: ../gio/gmemoryoutputstream.c:798
+msgid "Requested seek beyond the end of the stream"
 msgstr ""
 
-#: gio/glib-compile-resources.c:749
-msgid "C identifier name used for the generated source code"
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement unmount.
+#: ../gio/gmount.c:395
+msgid "mount doesn't implement \"unmount\""
 msgstr ""
 
-#: gio/glib-compile-resources.c:775
-msgid ""
-"Compile a resource specification into a resource file.\n"
-"Resource specification files have the extension .gresource.xml,\n"
-"and the resource file have the extension called .gresource."
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement eject.
+#: ../gio/gmount.c:471
+msgid "mount doesn't implement \"eject\""
 msgstr ""
 
-#: gio/glib-compile-resources.c:797
-msgid "You should give exactly one file name\n"
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement any of unmount or unmount_with_operation.
+#: ../gio/gmount.c:549
+msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\""
 msgstr ""
 
-#: gio/glib-compile-schemas.c:92
-#, c-format
-msgid "nick must be a minimum of 2 characters"
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement any of eject or eject_with_operation.
+#: ../gio/gmount.c:634
+msgid "mount doesn't implement \"eject\" or \"eject_with_operation\""
 msgstr ""
 
-#: gio/glib-compile-schemas.c:103
-#, c-format
-msgid "Invalid numeric value"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:111
-#, c-format
-msgid "<value nick='%s'/> already specified"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:119
-#, c-format
-msgid "value='%s' already specified"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:133
-#, c-format
-msgid "flags values must have at most 1 bit set"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:158
-#, c-format
-msgid "<%s> must contain at least one <value>"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:314
-#, c-format
-msgid "<%s> is not contained in the specified range"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:326
-#, c-format
-msgid "<%s> is not a valid member of the specified enumerated type"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:332
-#, c-format
-msgid "<%s> contains string not in the specified flags type"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:338
-#, c-format
-msgid "<%s> contains a string not in <choices>"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:372
-msgid "<range/> already specified for this key"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:390
-#, c-format
-msgid "<range> not allowed for keys of type “%s”"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:407
-#, c-format
-msgid "<range> specified minimum is greater than maximum"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:432
-#, c-format
-msgid "unsupported l10n category: %s"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:440
-msgid "l10n requested, but no gettext domain given"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:452
-msgid "translation context given for value without l10n enabled"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:474
-#, c-format
-msgid "Failed to parse <default> value of type “%s”: "
-msgstr ""
-
-#: gio/glib-compile-schemas.c:491
-msgid ""
-"<choices> cannot be specified for keys tagged as having an enumerated type"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:500
-msgid "<choices> already specified for this key"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:512
-#, c-format
-msgid "<choices> not allowed for keys of type “%s”"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:528
-#, c-format
-msgid "<choice value='%s'/> already given"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:543
-#, c-format
-msgid "<choices> must contain at least one <choice>"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:557
-msgid "<aliases> already specified for this key"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:561
-msgid ""
-"<aliases> can only be specified for keys with enumerated or flags types or "
-"after <choices>"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:580
-#, c-format
-msgid ""
-"<alias value='%s'/> given when “%s” is already a member of the enumerated "
-"type"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:586
-#, c-format
-msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:594
-#, c-format
-msgid "<alias value='%s'/> already specified"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:604
-#, c-format
-msgid "alias target “%s” is not in enumerated type"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:605
-#, c-format
-msgid "alias target “%s” is not in <choices>"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:620
-#, c-format
-msgid "<aliases> must contain at least one <alias>"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:797
-msgid "Empty names are not permitted"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:807
-#, c-format
-msgid "Invalid name “%s”: names must begin with a lowercase letter"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:819
-#, c-format
-msgid ""
-"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
-"and hyphen (“-”) are permitted"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:828
-#, c-format
-msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:837
-#, c-format
-msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:845
-#, c-format
-msgid "Invalid name “%s”: maximum length is 1024"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:917
-#, c-format
-msgid "<child name='%s'> already specified"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:943
-msgid "Cannot add keys to a “list-of” schema"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:954
-#, c-format
-msgid "<key name='%s'> already specified"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:972
-#, c-format
-msgid ""
-"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
-"to modify value"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:983
-#, c-format
-msgid ""
-"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
-"to <key>"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1002
-#, c-format
-msgid "<%s id='%s'> not (yet) defined."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1017
-#, c-format
-msgid "Invalid GVariant type string “%s”"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1047
-msgid "<override> given but schema isn’t extending anything"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1060
-#, c-format
-msgid "No <key name='%s'> to override"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1068
-#, c-format
-msgid "<override name='%s'> already specified"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1141
-#, c-format
-msgid "<schema id='%s'> already specified"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1153
-#, c-format
-msgid "<schema id='%s'> extends not yet existing schema “%s”"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1169
-#, c-format
-msgid "<schema id='%s'> is list of not yet existing schema “%s”"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1177
-#, c-format
-msgid "Cannot be a list of a schema with a path"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1187
-#, c-format
-msgid "Cannot extend a schema with a path"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1197
-#, c-format
-msgid ""
-"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1207
-#, c-format
-msgid ""
-"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
-"does not extend “%s”"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1224
-#, c-format
-msgid "A path, if given, must begin and end with a slash"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1231
-#, c-format
-msgid "The path of a list must end with “:/”"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1240
-#, c-format
-msgid ""
-"Warning: Schema “%s” has path “%s”.  Paths starting with “/apps/”, “/"
-"desktop/” or “/system/” are deprecated."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1270
-#, c-format
-msgid "<%s id='%s'> already specified"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
-#, c-format
-msgid "Only one <%s> element allowed inside <%s>"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1518
-#, c-format
-msgid "Element <%s> not allowed at the top level"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1536
-msgid "Element <default> is required in <key>"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1626
-#, c-format
-msgid "Text may not appear inside <%s>"
-msgstr "Tekst se možda neće pojaviti unutar <%s>"
-
-#: gio/glib-compile-schemas.c:1694
-#, c-format
-msgid "Warning: undefined reference to <schema id='%s'/>"
-msgstr ""
-
-#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
-msgid "--strict was specified; exiting."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1845
-msgid "This entire file has been ignored."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1908
-msgid "Ignoring this file."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1963
-#, c-format
-msgid ""
-"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
-"override for this key."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1971
-#, c-format
-msgid ""
-"No such key “%s” in schema “%s” as specified in override file “%s” and --"
-"strict was specified; exiting."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1993
-#, c-format
-msgid ""
-"Cannot provide per-desktop overrides for localized key “%s” in schema "
-"“%s” (override file “%s”); ignoring override for this key."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2002
-#, c-format
-msgid ""
-"Cannot provide per-desktop overrides for localized key “%s” in schema "
-"“%s” (override file “%s”) and --strict was specified; exiting."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2026
-#, c-format
-msgid ""
-"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
-"%s. Ignoring override for this key."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2038
-#, c-format
-msgid ""
-"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
-"%s. --strict was specified; exiting."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2065
-#, c-format
-msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is outside the "
-"range given in the schema; ignoring override for this key."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2075
-#, c-format
-msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is outside the "
-"range given in the schema and --strict was specified; exiting."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2101
-#, c-format
-msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is not in the "
-"list of valid choices; ignoring override for this key."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2111
-#, c-format
-msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is not in the "
-"list of valid choices and --strict was specified; exiting."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2173
-msgid "Where to store the gschemas.compiled file"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2174
-msgid "Abort on any errors in schemas"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2175
-msgid "Do not write the gschema.compiled file"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2176
-msgid "Do not enforce key name restrictions"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2205
-msgid ""
-"Compile all GSettings schema files into a schema cache.\n"
-"Schema files are required to have the extension .gschema.xml,\n"
-"and the cache file is called gschemas.compiled."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2226
-msgid "You should give exactly one directory name"
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2269
-msgid "No schema files found: doing nothing."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:2271
-msgid "No schema files found: removed existing output file."
-msgstr ""
-
-#: gio/glocalfile.c:549 gio/win32/gwinhttpfile.c:420
-#, c-format
-msgid "Invalid filename %s"
-msgstr "Neispravan naziv datoteke %s"
-
-#: gio/glocalfile.c:980
-#, c-format
-msgid "Error getting filesystem info for %s: %s"
-msgstr "Greška dobivanja informacija datotečnog sustava za %s: %s"
-
-#. Translators: This is an error message when trying to find
-#. * the enclosing (user visible) mount of a file, but none
-#. * exists.
-#.
-#: gio/glocalfile.c:1121
-#, c-format
-msgid "Containing mount for file %s not found"
-msgstr "Sadržano montiranje za datoteku %s nije pronađeno"
-
-#: gio/glocalfile.c:1144
-msgid "Can’t rename root directory"
-msgstr "Nemoguće preimenovanje korijenskog direktorija"
-
-#: gio/glocalfile.c:1162 gio/glocalfile.c:1185
-#, c-format
-msgid "Error renaming file %s: %s"
-msgstr "Greška peimenovanja datoteke %s: %s"
-
-#: gio/glocalfile.c:1169
-msgid "Can’t rename file, filename already exists"
-msgstr "Nemoguće preimenovanje datoteke, naziv datoteke već postoji"
-
-#: gio/glocalfile.c:1182 gio/glocalfile.c:2324 gio/glocalfile.c:2352
-#: gio/glocalfile.c:2491 gio/glocalfileoutputstream.c:650
-msgid "Invalid filename"
-msgstr "Neispravni naziv datoteke"
-
-#: gio/glocalfile.c:1350 gio/glocalfile.c:1361
-#, c-format
-msgid "Error opening file %s: %s"
-msgstr "Greška otvaranja datoteke %s: %s"
-
-#: gio/glocalfile.c:1486
-#, c-format
-msgid "Error removing file %s: %s"
-msgstr "Greška uklanjanja datoteke %s: %s"
-
-#: gio/glocalfile.c:1969
-#, c-format
-msgid "Error trashing file %s: %s"
-msgstr "Greška premještanja datoteke u smeće %s: %s"
-
-#: gio/glocalfile.c:2010
-#, c-format
-msgid "Unable to create trash dir %s: %s"
-msgstr "Nemoguće stvaranje direktorija smeća %s: %s"
-
-#: gio/glocalfile.c:2030
-#, fuzzy, c-format
-#| msgid "Failed to change to directory '%s' (%s)"
-msgid "Unable to find toplevel directory to trash %s"
-msgstr "Nisam mogao promijeniti putanju u mapu '%s' (%s)"
-
-#: gio/glocalfile.c:2038
-#, c-format
-msgid "Trashing on system internal mounts is not supported"
-msgstr ""
-
-#: gio/glocalfile.c:2118 gio/glocalfile.c:2138
-#, fuzzy, c-format
-#| msgid "Failed to change to directory '%s' (%s)"
-msgid "Unable to find or create trash directory for %s"
-msgstr "Nisam mogao promijeniti putanju u mapu '%s' (%s)"
-
-#: gio/glocalfile.c:2173
-#, fuzzy, c-format
-#| msgid "Failed to create file '%s': %s"
-msgid "Unable to create trashing info file for %s: %s"
-msgstr "Greška pri stvaranju datoteke '%s': %s"
-
-#: gio/glocalfile.c:2235
-#, c-format
-msgid "Unable to trash file %s across filesystem boundaries"
-msgstr ""
-
-#: gio/glocalfile.c:2239 gio/glocalfile.c:2295
-#, fuzzy, c-format
-#| msgid "Failed to create file '%s': %s"
-msgid "Unable to trash file %s: %s"
-msgstr "Greška pri stvaranju datoteke '%s': %s"
-
-#: gio/glocalfile.c:2301
-#, fuzzy, c-format
-#| msgid "Failed to create file '%s': %s"
-msgid "Unable to trash file %s"
-msgstr "Greška pri stvaranju datoteke '%s': %s"
-
-#: gio/glocalfile.c:2327
-#, fuzzy, c-format
-#| msgid "Error opening directory '%s': %s"
-msgid "Error creating directory %s: %s"
-msgstr "Greška pri otvaranju mape '%s': %s"
-
-#: gio/glocalfile.c:2356
-#, c-format
-msgid "Filesystem does not support symbolic links"
-msgstr ""
-
-#: gio/glocalfile.c:2359
-#, fuzzy, c-format
-#| msgid "Error reading file '%s': %s"
-msgid "Error making symbolic link %s: %s"
-msgstr "Greška pri čitanju datoteke '%s': %s"
-
-#: gio/glocalfile.c:2402 gio/glocalfile.c:2437 gio/glocalfile.c:2494
-#, fuzzy, c-format
-#| msgid "Error reading file '%s': %s"
-msgid "Error moving file %s: %s"
-msgstr "Greška pri čitanju datoteke '%s': %s"
-
-#: gio/glocalfile.c:2425
-msgid "Can’t move directory over directory"
-msgstr "Nemoguće je premještanje direktorija preko direktorija"
-
-#: gio/glocalfile.c:2451 gio/glocalfileoutputstream.c:1039
-#: gio/glocalfileoutputstream.c:1053 gio/glocalfileoutputstream.c:1068
-#: gio/glocalfileoutputstream.c:1085 gio/glocalfileoutputstream.c:1099
-msgid "Backup file creation failed"
-msgstr "Neuspjelo stvaranje sigurnosne kopije"
-
-#: gio/glocalfile.c:2470
-#, c-format
-msgid "Error removing target file: %s"
-msgstr "Greška uklanjanja ciljane datoteke: %s"
-
-#: gio/glocalfile.c:2484
-msgid "Move between mounts not supported"
-msgstr ""
-
-#: gio/glocalfile.c:2658
-#, fuzzy, c-format
-#| msgid "Could not open converter from '%s' to '%s': %s"
-msgid "Could not determine the disk usage of %s: %s"
-msgstr "Ne mogu otvoriti pretvornik iz '%s' u '%s': %s"
-
-#: gio/glocalfileinfo.c:767
-msgid "Attribute value must be non-NULL"
-msgstr ""
-
-#: gio/glocalfileinfo.c:774
-msgid "Invalid attribute type (string expected)"
-msgstr ""
-
-#: gio/glocalfileinfo.c:781
-msgid "Invalid extended attribute name"
-msgstr ""
-
-#: gio/glocalfileinfo.c:821
-#, c-format
-msgid "Error setting extended attribute “%s”: %s"
-msgstr ""
-
-#: gio/glocalfileinfo.c:1663
-msgid " (invalid encoding)"
-msgstr " (neispravno kôdiranje)"
-
-#: gio/glocalfileinfo.c:1822 gio/glocalfileoutputstream.c:915
-#, c-format
-msgid "Error when getting information for file “%s”: %s"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2088
-#, c-format
-msgid "Error when getting information for file descriptor: %s"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2133
-msgid "Invalid attribute type (uint32 expected)"
-msgstr "Neispravna vrsta svojstva (uint32 je očekivano)"
-
-#: gio/glocalfileinfo.c:2151
-msgid "Invalid attribute type (uint64 expected)"
-msgstr "Neispravna vrsta svojstva (uint64 je očekivano)"
-
-#: gio/glocalfileinfo.c:2170 gio/glocalfileinfo.c:2189
-msgid "Invalid attribute type (byte string expected)"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2236
-msgid "Cannot set permissions on symlinks"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2252
-#, c-format
-msgid "Error setting permissions: %s"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2303
-#, c-format
-msgid "Error setting owner: %s"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2326
-msgid "symlink must be non-NULL"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2336 gio/glocalfileinfo.c:2355
-#: gio/glocalfileinfo.c:2366
-#, c-format
-msgid "Error setting symlink: %s"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2345
-msgid "Error setting symlink: file is not a symlink"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2417
-#, c-format
-msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2426
-#, c-format
-msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2436
-#, c-format
-msgid "UNIX timestamp %lld does not fit into 64 bits"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2447
-#, c-format
-msgid "UNIX timestamp %lld is outside of the range supported by Windows"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2511
-#, c-format
-msgid "File name “%s” cannot be converted to UTF-16"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2530
-#, c-format
-msgid "File “%s” cannot be opened: Windows Error %lu"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2543
-#, c-format
-msgid "Error setting modification or access time for file “%s”: %lu"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2644
-#, c-format
-msgid "Error setting modification or access time: %s"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2667
-msgid "SELinux context must be non-NULL"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2682
-#, c-format
-msgid "Error setting SELinux context: %s"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2689
-msgid "SELinux is not enabled on this system"
-msgstr ""
-
-#: gio/glocalfileinfo.c:2781
-#, c-format
-msgid "Setting attribute %s not supported"
-msgstr ""
-
-#: gio/glocalfileinputstream.c:168 gio/glocalfileoutputstream.c:795
-#, c-format
-msgid "Error reading from file: %s"
-msgstr ""
-
-#: gio/glocalfileinputstream.c:199 gio/glocalfileinputstream.c:211
-#: gio/glocalfileinputstream.c:225 gio/glocalfileinputstream.c:333
-#: gio/glocalfileoutputstream.c:557 gio/glocalfileoutputstream.c:1117
-#, c-format
-msgid "Error seeking in file: %s"
-msgstr ""
-
-#: gio/glocalfileinputstream.c:255 gio/glocalfileoutputstream.c:347
-#: gio/glocalfileoutputstream.c:441
-#, c-format
-msgid "Error closing file: %s"
-msgstr ""
-
-#: gio/glocalfilemonitor.c:865
-msgid "Unable to find default local file monitor type"
-msgstr ""
-
-#: gio/glocalfileoutputstream.c:214 gio/glocalfileoutputstream.c:292
-#: gio/glocalfileoutputstream.c:328 gio/glocalfileoutputstream.c:816
-#, c-format
-msgid "Error writing to file: %s"
-msgstr ""
-
-#: gio/glocalfileoutputstream.c:374
-#, c-format
-msgid "Error removing old backup link: %s"
-msgstr ""
-
-#: gio/glocalfileoutputstream.c:388 gio/glocalfileoutputstream.c:401
-#, c-format
-msgid "Error creating backup copy: %s"
-msgstr ""
-
-#: gio/glocalfileoutputstream.c:419
-#, c-format
-msgid "Error renaming temporary file: %s"
-msgstr ""
-
-#: gio/glocalfileoutputstream.c:603 gio/glocalfileoutputstream.c:1168
-#, c-format
-msgid "Error truncating file: %s"
-msgstr ""
-
-#: gio/glocalfileoutputstream.c:656 gio/glocalfileoutputstream.c:894
-#: gio/glocalfileoutputstream.c:1149 gio/gsubprocess.c:380
-#, c-format
-msgid "Error opening file “%s”: %s"
-msgstr "Greška otvaranja datoteke “%s”: %s"
-
-#: gio/glocalfileoutputstream.c:928
-msgid "Target file is a directory"
-msgstr "Ciljana datoteka je direktorij"
-
-#: gio/glocalfileoutputstream.c:933
-msgid "Target file is not a regular file"
-msgstr "Ciljana datoteka nije obična datoteka"
-
-#: gio/glocalfileoutputstream.c:945
-msgid "The file was externally modified"
-msgstr "Datoteka je promijenjena izvana"
-
-#: gio/glocalfileoutputstream.c:1133
-#, c-format
-msgid "Error removing old file: %s"
-msgstr "Greška uklanjanja stare datoteke: %s"
-
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:772
-msgid "Invalid GSeekType supplied"
-msgstr ""
-
-#: gio/gmemoryinputstream.c:484
-msgid "Invalid seek request"
-msgstr "Neispravan zahtjev pretraživanja"
-
-#: gio/gmemoryinputstream.c:508
-msgid "Cannot truncate GMemoryInputStream"
-msgstr ""
-
-#: gio/gmemoryoutputstream.c:567
-msgid "Memory output stream not resizable"
-msgstr ""
-
-#: gio/gmemoryoutputstream.c:583
-msgid "Failed to resize memory output stream"
-msgstr ""
-
-#: gio/gmemoryoutputstream.c:673
-msgid ""
-"Amount of memory required to process the write is larger than available "
-"address space"
-msgstr ""
-
-#: gio/gmemoryoutputstream.c:782
-msgid "Requested seek before the beginning of the stream"
-msgstr ""
-
-#: gio/gmemoryoutputstream.c:797
-msgid "Requested seek beyond the end of the stream"
-msgstr ""
-
-#. Translators: This is an error
-#. * message for mount objects that
-#. * don't implement unmount.
-#: gio/gmount.c:399
-msgid "mount doesn’t implement “unmount”"
-msgstr ""
-
-#. Translators: This is an error
-#. * message for mount objects that
-#. * don't implement eject.
-#: gio/gmount.c:475
-msgid "mount doesn’t implement “eject”"
-msgstr ""
-
-#. Translators: This is an error
-#. * message for mount objects that
-#. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:553
-msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
-msgstr ""
-
-#. Translators: This is an error
-#. * message for mount objects that
-#. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:638
-msgid "mount doesn’t implement “eject” or “eject_with_operation”"
-msgstr ""
-
-#. Translators: This is an error
-#. * message for mount objects that
-#. * don't implement remount.
-#: gio/gmount.c:726
-msgid "mount doesn’t implement “remount”"
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement remount.
+#: ../gio/gmount.c:722
+msgid "mount doesn't implement \"remount\""
 msgstr ""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement content type guessing.
-#: gio/gmount.c:808
-msgid "mount doesnt implement content type guessing"
+#: ../gio/gmount.c:803
+msgid "mount doesn't implement content type guessing"
 msgstr ""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement content type guessing.
-#: gio/gmount.c:895
-msgid "mount doesnt implement synchronous content type guessing"
+#: ../gio/gmount.c:889
+msgid "mount doesn't implement synchronous content type guessing"
 msgstr ""
 
-#: gio/gnetworkaddress.c:415
+#: ../gio/gnetworkaddress.c:353
 #, c-format
-msgid "Hostname “%s” contains “[” but not “]”"
+msgid "Hostname '%s' contains '[' but not ']'"
 msgstr ""
 
-#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
+#: ../gio/gnetworkmonitorbase.c:191 ../gio/gnetworkmonitorbase.c:294
 msgid "Network unreachable"
 msgstr ""
 
-#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
+#: ../gio/gnetworkmonitorbase.c:229 ../gio/gnetworkmonitorbase.c:259
 msgid "Host unreachable"
 msgstr ""
 
-#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
-#: gio/gnetworkmonitornetlink.c:130
+#: ../gio/gnetworkmonitornetlink.c:98 ../gio/gnetworkmonitornetlink.c:110
+#: ../gio/gnetworkmonitornetlink.c:129
 #, c-format
 msgid "Could not create network monitor: %s"
 msgstr ""
 
-#: gio/gnetworkmonitornetlink.c:120
+#: ../gio/gnetworkmonitornetlink.c:119
 msgid "Could not create network monitor: "
 msgstr ""
 
-#: gio/gnetworkmonitornetlink.c:183
+#: ../gio/gnetworkmonitornetlink.c:177
 msgid "Could not get network status: "
 msgstr ""
 
-#: gio/gnetworkmonitornm.c:348
-#, c-format
-msgid "NetworkManager not running"
+#: ../gio/goutputstream.c:211 ../gio/goutputstream.c:553
+msgid "Output stream doesn't implement write"
 msgstr ""
 
-#: gio/gnetworkmonitornm.c:359
-#, c-format
-msgid "NetworkManager version too old"
+#: ../gio/goutputstream.c:514 ../gio/goutputstream.c:1032
+msgid "Source stream is already closed"
 msgstr ""
 
-#: gio/goutputstream.c:232 gio/goutputstream.c:775
-msgid "Output stream doesn’t implement write"
+#: ../gio/gthreadedresolver.c:110
+#, c-format
+msgid "Error resolving '%s': %s"
 msgstr ""
 
-#: gio/goutputstream.c:472 gio/goutputstream.c:1533
+#: ../gio/gthreadedresolver.c:195
 #, c-format
-msgid "Sum of vectors passed to %s too large"
+msgid "Error reverse-resolving '%s': %s"
 msgstr ""
 
-#: gio/goutputstream.c:736 gio/goutputstream.c:1761
-msgid "Source stream is already closed"
+#: ../gio/gresolver.c:849 ../gio/gresolver.c:928
+#, c-format
+msgid "No service record for '%s'"
 msgstr ""
 
-#: gio/gresolver.c:386 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
+#: ../gio/gthreadedresolver.c:538 ../gio/gthreadedresolver.c:718
 #, c-format
-msgid "Error resolving “%s”: %s"
-msgstr "Greška razrješavanja “%s”: %s"
+msgid "Temporarily unable to resolve '%s'"
+msgstr ""
 
-#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:455 gio/gresolver.c:615
+#: ../gio/gthreadedresolver.c:543 ../gio/gthreadedresolver.c:723
 #, c-format
-msgid "%s not implemented"
-msgstr "%s nije impelmentirano"
-
-#: gio/gresolver.c:984 gio/gresolver.c:1036
-msgid "Invalid domain"
-msgstr "Neispravna domena"
+msgid "Error resolving '%s'"
+msgstr ""
 
-#: gio/gresource.c:672 gio/gresource.c:931 gio/gresource.c:970
-#: gio/gresource.c:1094 gio/gresource.c:1166 gio/gresource.c:1239
-#: gio/gresource.c:1320 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: ../gio/gresource.c:291 ../gio/gresource.c:539 ../gio/gresource.c:556
+#: ../gio/gresource.c:677 ../gio/gresource.c:746 ../gio/gresource.c:807
+#: ../gio/gresource.c:887 ../gio/gresourcefile.c:454
+#: ../gio/gresourcefile.c:555 ../gio/gresourcefile.c:657
 #, c-format
-msgid "The resource at “%s” does not exist"
+msgid "The resource at '%s' does not exist"
 msgstr ""
 
-#: gio/gresource.c:837
+#: ../gio/gresource.c:456
 #, c-format
-msgid "The resource at “%s” failed to decompress"
+msgid "The resource at '%s' failed to decompress"
 msgstr ""
 
-#: gio/gresourcefile.c:732
+#: ../gio/gresourcefile.c:653
 #, c-format
-msgid "The resource at “%s” is not a directory"
+msgid "The resource at '%s' is not a directory"
+msgstr ""
+
+#: ../gio/gresourcefile.c:861
+msgid "Input stream doesn't implement seek"
+msgstr ""
+
+#: ../gio/gapplication-tool.c:47 ../gio/gapplication-tool.c:48
+#: ../gio/gresource-tool.c:475 ../gio/gsettings-tool.c:507
+msgid "Print help"
 msgstr ""
 
-#: gio/gresourcefile.c:940
-msgid "Input stream doesn’t implement seek"
+#: ../gio/gapplication-tool.c:49 ../gio/gresource-tool.c:476
+#: ../gio/gresource-tool.c:544
+msgid "[COMMAND]"
 msgstr ""
 
-#: gio/gresource-tool.c:499
+#: ../gio/gresource-tool.c:481
 msgid "List sections containing resources in an elf FILE"
 msgstr ""
 
-#: gio/gresource-tool.c:505
+#: ../gio/gresource-tool.c:487
 msgid ""
 "List resources\n"
 "If SECTION is given, only list resources in this section\n"
 "If PATH is given, only list matching resources"
 msgstr ""
 
-#: gio/gresource-tool.c:508 gio/gresource-tool.c:518
+#: ../gio/gresource-tool.c:490 ../gio/gresource-tool.c:500
 msgid "FILE [PATH]"
-msgstr "DATOTEKA [PUTANJA]"
+msgstr ""
 
-#: gio/gresource-tool.c:509 gio/gresource-tool.c:519 gio/gresource-tool.c:526
+#: ../gio/gresource-tool.c:491 ../gio/gresource-tool.c:501
+#: ../gio/gresource-tool.c:508
 msgid "SECTION"
-msgstr "ODJELJAK"
+msgstr ""
 
-#: gio/gresource-tool.c:514
+#: ../gio/gresource-tool.c:496
 msgid ""
 "List resources with details\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3265,18 +1989,26 @@ msgid ""
 "Details include the section, size and compression"
 msgstr ""
 
-#: gio/gresource-tool.c:524
+#: ../gio/gresource-tool.c:506
 msgid "Extract a resource file to stdout"
 msgstr ""
 
-#: gio/gresource-tool.c:525
+#: ../gio/gresource-tool.c:507
 msgid "FILE PATH"
-msgstr "PUTANJA DATOTEKE"
+msgstr ""
+
+#: ../gio/gapplication-tool.c:98 ../gio/gresource-tool.c:513
+#: ../gio/gsettings-tool.c:593
+#, c-format
+msgid ""
+"Unknown command %s\n"
+"\n"
+msgstr ""
 
-#: gio/gresource-tool.c:539
+#: ../gio/gresource-tool.c:521
 msgid ""
 "Usage:\n"
-"  gresource [--section SECTION] COMMAND [ARGS]\n"
+"  gresource [--section SECTION] COMMAND [ARGS...]\n"
 "\n"
 "Commands:\n"
 "  help                      Show this information\n"
@@ -3285,11 +2017,11 @@ msgid ""
 "  details                   List resources with details\n"
 "  extract                   Extract a resource\n"
 "\n"
-"Use “gresource help COMMAND” to get detailed help.\n"
+"Use 'gresource help COMMAND' to get detailed help.\n"
 "\n"
 msgstr ""
 
-#: gio/gresource-tool.c:553
+#: ../gio/gresource-tool.c:535
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3299,162 +2031,169 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gresource-tool.c:560
+#: ../gio/gapplication-tool.c:116 ../gio/gresource-tool.c:538
+#: ../gio/gsettings-tool.c:627
+msgid "Arguments:\n"
+msgstr ""
+
+#: ../gio/gresource-tool.c:542
 msgid "  SECTION   An (optional) elf section name\n"
 msgstr ""
 
-#: gio/gresource-tool.c:564 gio/gsettings-tool.c:701
+#: ../gio/gresource-tool.c:546 ../gio/gsettings-tool.c:634
 msgid "  COMMAND   The (optional) command to explain\n"
 msgstr ""
 
-#: gio/gresource-tool.c:570
+#: ../gio/gresource-tool.c:552
 msgid "  FILE      An elf file (a binary or a shared library)\n"
 msgstr ""
 
-#: gio/gresource-tool.c:573
+#: ../gio/gresource-tool.c:555
 msgid ""
 "  FILE      An elf file (a binary or a shared library)\n"
 "            or a compiled resource file\n"
 msgstr ""
 
-#: gio/gresource-tool.c:577
+#: ../gio/gresource-tool.c:559
 msgid "[PATH]"
-msgstr "[PUTANJA]"
+msgstr ""
 
-#: gio/gresource-tool.c:579
+#: ../gio/gresource-tool.c:561
 msgid "  PATH      An (optional) resource path (may be partial)\n"
 msgstr ""
 
-#: gio/gresource-tool.c:580
+#: ../gio/gresource-tool.c:562
 msgid "PATH"
-msgstr "PUTANJA"
+msgstr ""
 
-#: gio/gresource-tool.c:582
+#: ../gio/gresource-tool.c:564
 msgid "  PATH      A resource path\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:906
+#: ../gio/gsettings-tool.c:53 ../gio/gsettings-tool.c:74
 #, c-format
-msgid "No such schema “%s”\n"
+msgid "No such schema '%s'\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:55
+#: ../gio/gsettings-tool.c:59
 #, c-format
-msgid "Schema “%s” is not relocatable (path must not be specified)\n"
+msgid "Schema '%s' is not relocatable (path must not be specified)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:76
+#: ../gio/gsettings-tool.c:80
 #, c-format
-msgid "Schema “%s” is relocatable (path must be specified)\n"
+msgid "Schema '%s' is relocatable (path must be specified)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:90
+#: ../gio/gsettings-tool.c:94
+#, c-format
 msgid "Empty path given.\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:96
+#: ../gio/gsettings-tool.c:100
+#, c-format
 msgid "Path must begin with a slash (/)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:102
+#: ../gio/gsettings-tool.c:106
+#, c-format
 msgid "Path must end with a slash (/)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:108
+#: ../gio/gsettings-tool.c:112
+#, c-format
 msgid "Path must not contain two adjacent slashes (//)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:536
-msgid "The provided value is outside of the valid range\n"
+#: ../gio/gsettings-tool.c:797
+#, c-format
+msgid "No such key '%s'\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:543
-msgid "The key is not writable\n"
+#: ../gio/gsettings-tool.c:476
+#, c-format
+msgid "The provided value is outside of the valid range\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:579
+#: ../gio/gsettings-tool.c:519
 msgid "List the installed (non-relocatable) schemas"
 msgstr ""
 
-#: gio/gsettings-tool.c:585
+#: ../gio/gsettings-tool.c:525
 msgid "List the installed relocatable schemas"
 msgstr ""
 
-#: gio/gsettings-tool.c:591
+#: ../gio/gsettings-tool.c:531
 msgid "List the keys in SCHEMA"
 msgstr ""
 
-#: gio/gsettings-tool.c:592 gio/gsettings-tool.c:598 gio/gsettings-tool.c:641
+#: ../gio/gsettings-tool.c:532 ../gio/gsettings-tool.c:538
+#: ../gio/gsettings-tool.c:575
 msgid "SCHEMA[:PATH]"
-msgstr "SHEMA[:PUTANJA]"
+msgstr ""
 
-#: gio/gsettings-tool.c:597
+#: ../gio/gsettings-tool.c:537
 msgid "List the children of SCHEMA"
 msgstr ""
 
-#: gio/gsettings-tool.c:603
+#: ../gio/gsettings-tool.c:543
 msgid ""
 "List keys and values, recursively\n"
 "If no SCHEMA is given, list all keys\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:605
+#: ../gio/gsettings-tool.c:545
 msgid "[SCHEMA[:PATH]]"
-msgstr "[SHEMA[:PUTANJA]]"
+msgstr ""
 
-#: gio/gsettings-tool.c:610
+#: ../gio/gsettings-tool.c:550
 msgid "Get the value of KEY"
 msgstr ""
 
-#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:623
-#: gio/gsettings-tool.c:635 gio/gsettings-tool.c:647
+#: ../gio/gsettings-tool.c:551 ../gio/gsettings-tool.c:557
+#: ../gio/gsettings-tool.c:569 ../gio/gsettings-tool.c:581
 msgid "SCHEMA[:PATH] KEY"
-msgstr "SHEMA[:PUTANJA] KLJUČ"
-
-#: gio/gsettings-tool.c:616
-msgid "Query the range of valid values for KEY"
 msgstr ""
 
-#: gio/gsettings-tool.c:622
-msgid "Query the description for KEY"
+#: ../gio/gsettings-tool.c:556
+msgid "Query the range of valid values for KEY"
 msgstr ""
 
-#: gio/gsettings-tool.c:628
+#: ../gio/gsettings-tool.c:562
 msgid "Set the value of KEY to VALUE"
 msgstr ""
 
-#: gio/gsettings-tool.c:629
+#: ../gio/gsettings-tool.c:563
 msgid "SCHEMA[:PATH] KEY VALUE"
-msgstr "SHEMA[:PUTANJA] VRIJEDNOST KLJUČA"
+msgstr ""
 
-#: gio/gsettings-tool.c:634
+#: ../gio/gsettings-tool.c:568
 msgid "Reset KEY to its default value"
 msgstr ""
 
-#: gio/gsettings-tool.c:640
+#: ../gio/gsettings-tool.c:574
 msgid "Reset all keys in SCHEMA to their defaults"
 msgstr ""
 
-#: gio/gsettings-tool.c:646
+#: ../gio/gsettings-tool.c:580
 msgid "Check if KEY is writable"
 msgstr ""
 
-#: gio/gsettings-tool.c:652
+#: ../gio/gsettings-tool.c:586
 msgid ""
 "Monitor KEY for changes.\n"
 "If no KEY is specified, monitor all keys in SCHEMA.\n"
 "Use ^C to stop monitoring.\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:655
+#: ../gio/gsettings-tool.c:589
 msgid "SCHEMA[:PATH] [KEY]"
-msgstr "SHEMA[:PUTANJA] [KLJUČ]"
+msgstr ""
 
-#: gio/gsettings-tool.c:667
+#: ../gio/gsettings-tool.c:636
 msgid ""
 "Usage:\n"
-"  gsettings --version\n"
-"  gsettings [--schemadir SCHEMADIR] COMMAND [ARGS…]\n"
+"  gsettings [--schemadir SCHEMADIR] COMMAND [ARGS...]\n"
 "\n"
 "Commands:\n"
 "  help                      Show this information\n"
@@ -3464,7 +2203,6 @@ msgid ""
 "  list-children             List children of a schema\n"
 "  list-recursively          List keys and values, recursively\n"
 "  range                     Queries the range of a key\n"
-"  describe                  Queries the description of a key\n"
 "  get                       Get the value of a key\n"
 "  set                       Set the value of a key\n"
 "  reset                     Reset the value of a key\n"
@@ -3472,11 +2210,11 @@ msgid ""
 "  writable                  Check if a key is writable\n"
 "  monitor                   Watch for changes\n"
 "\n"
-"Use “gsettings help COMMAND” to get detailed help.\n"
+"Use 'gsettings help COMMAND' to get detailed help.\n"
 "\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:691
+#: ../gio/gsettings-tool.c:624
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3486,1573 +2224,1206 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:697
+#: ../gio/gsettings-tool.c:630
 msgid "  SCHEMADIR A directory to search for additional schemas\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:705
+#: ../gio/gsettings-tool.c:638
 msgid ""
 "  SCHEMA    The name of the schema\n"
 "  PATH      The path, for relocatable schemas\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:710
+#: ../gio/gsettings-tool.c:643
 msgid "  KEY       The (optional) key within the schema\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:714
+#: ../gio/gsettings-tool.c:647
 msgid "  KEY       The key within the schema\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:718
+#: ../gio/gsettings-tool.c:651
 msgid "  VALUE     The value to set\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:773
+#: ../gio/gsettings-tool.c:768
 #, c-format
-msgid "Could not load schemas from %s: %s\n"
-msgstr "Nemoguće učitavanje sheme iz %s: %s\n"
-
-#: gio/gsettings-tool.c:785
-msgid "No schemas installed\n"
-msgstr "Nema instaliranih shema\n"
-
-#: gio/gsettings-tool.c:864
 msgid "Empty schema name given\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:919
-#, c-format
-msgid "No such key “%s”\n"
-msgstr ""
-
-#: gio/gsocket.c:413
+#: ../gio/gsocket.c:314
 msgid "Invalid socket, not initialized"
 msgstr ""
 
-#: gio/gsocket.c:420
+#: ../gio/gsocket.c:321
 #, c-format
 msgid "Invalid socket, initialization failed due to: %s"
 msgstr ""
 
-#: gio/gsocket.c:428
+#: ../gio/gsocket.c:329
 msgid "Socket is already closed"
 msgstr ""
 
-#: gio/gsocket.c:443 gio/gsocket.c:3180 gio/gsocket.c:4403 gio/gsocket.c:4461
+#: ../gio/gsocket.c:337 ../gio/gsocket.c:3624 ../gio/gsocket.c:3679
 msgid "Socket I/O timed out"
-msgstr "Istek vremena U/I priključnice"
+msgstr ""
 
-#: gio/gsocket.c:578
+#: ../gio/gsocket.c:484
 #, c-format
 msgid "creating GSocket from fd: %s"
 msgstr ""
 
-#: gio/gsocket.c:607 gio/gsocket.c:661 gio/gsocket.c:668
+#: ../gio/gsocket.c:512 ../gio/gsocket.c:566 ../gio/gsocket.c:573
 #, c-format
 msgid "Unable to create socket: %s"
 msgstr ""
 
-#: gio/gsocket.c:661
+#: ../gio/gsocket.c:566
 msgid "Unknown family was specified"
 msgstr ""
 
-#: gio/gsocket.c:668
+#: ../gio/gsocket.c:573
 msgid "Unknown protocol was specified"
 msgstr ""
 
-#: gio/gsocket.c:1159
-#, c-format
-msgid "Cannot use datagram operations on a non-datagram socket."
-msgstr ""
-
-#: gio/gsocket.c:1176
-#, c-format
-msgid "Cannot use datagram operations on a socket with a timeout set."
-msgstr ""
-
-#: gio/gsocket.c:1983
+#: ../gio/gsocket.c:1731
 #, c-format
 msgid "could not get local address: %s"
 msgstr ""
 
-#: gio/gsocket.c:2029
+#: ../gio/gsocket.c:1774
 #, c-format
 msgid "could not get remote address: %s"
 msgstr ""
 
-#: gio/gsocket.c:2095
+#: ../gio/gsocket.c:1835
 #, c-format
 msgid "could not listen: %s"
 msgstr ""
 
-#: gio/gsocket.c:2199
-#, fuzzy, c-format
-#| msgid "Error opening directory '%s': %s"
-msgid "Error binding to address %s: %s"
-msgstr "Greška pri otvaranju mape '%s': %s"
+#: ../gio/gsocket.c:1934
+#, c-format
+msgid "Error binding to address: %s"
+msgstr ""
 
-#: gio/gsocket.c:2375 gio/gsocket.c:2412 gio/gsocket.c:2522 gio/gsocket.c:2547
-#: gio/gsocket.c:2610 gio/gsocket.c:2668 gio/gsocket.c:2686
+#: ../gio/gsocket.c:2046 ../gio/gsocket.c:2083
 #, c-format
 msgid "Error joining multicast group: %s"
 msgstr ""
 
-#: gio/gsocket.c:2376 gio/gsocket.c:2413 gio/gsocket.c:2523 gio/gsocket.c:2548
-#: gio/gsocket.c:2611 gio/gsocket.c:2669 gio/gsocket.c:2687
+#: ../gio/gsocket.c:2047 ../gio/gsocket.c:2084
 #, c-format
 msgid "Error leaving multicast group: %s"
 msgstr ""
 
-#: gio/gsocket.c:2377
+#: ../gio/gsocket.c:2048
 msgid "No support for source-specific multicast"
 msgstr ""
 
-#: gio/gsocket.c:2524
-msgid "Unsupported socket family"
-msgstr ""
-
-#: gio/gsocket.c:2549
-msgid "source-specific not an IPv4 address"
-msgstr ""
-
-#: gio/gsocket.c:2573
-#, c-format
-msgid "Interface name too long"
-msgstr ""
-
-#: gio/gsocket.c:2586 gio/gsocket.c:2636
-#, c-format
-msgid "Interface not found: %s"
-msgstr ""
-
-#: gio/gsocket.c:2612
-msgid "No support for IPv4 source-specific multicast"
-msgstr ""
-
-#: gio/gsocket.c:2670
-msgid "No support for IPv6 source-specific multicast"
-msgstr ""
-
-#: gio/gsocket.c:2879
+#: ../gio/gsocket.c:2267
 #, c-format
 msgid "Error accepting connection: %s"
 msgstr ""
 
-#: gio/gsocket.c:3005
+#: ../gio/gsocket.c:2388
 msgid "Connection in progress"
 msgstr ""
 
-#: gio/gsocket.c:3056
-msgid "Unable to get pending error: "
+#: ../gio/gsocket.c:4357
+#, c-format
+msgid "Unable to get pending error: %s"
 msgstr ""
 
-#: gio/gsocket.c:3245
+#: ../gio/gsocket.c:2621
 #, c-format
 msgid "Error receiving data: %s"
 msgstr ""
 
-#: gio/gsocket.c:3442
+#: ../gio/gsocket.c:2799
 #, c-format
 msgid "Error sending data: %s"
 msgstr ""
 
-#: gio/gsocket.c:3629
+#: ../gio/gsocket.c:2913
 #, c-format
 msgid "Unable to shutdown socket: %s"
 msgstr ""
 
-#: gio/gsocket.c:3710
+#: ../gio/gsocket.c:2992
 #, c-format
 msgid "Error closing socket: %s"
 msgstr ""
 
-#: gio/gsocket.c:4396
+#: ../gio/gsocket.c:3617
 #, c-format
 msgid "Waiting for socket condition: %s"
 msgstr ""
 
-#: gio/gsocket.c:4774 gio/gsocket.c:4776 gio/gsocket.c:4923 gio/gsocket.c:5008
-#: gio/gsocket.c:5186 gio/gsocket.c:5226 gio/gsocket.c:5228
+#: ../gio/gsocket.c:3895 ../gio/gsocket.c:3976
 #, c-format
 msgid "Error sending message: %s"
 msgstr ""
 
-#: gio/gsocket.c:4950
-msgid "GSocketControlMessage not supported on Windows"
+#: ../gio/gsocket.c:3823
+msgid "GSocketControlMessage not supported on windows"
 msgstr ""
 
-#: gio/gsocket.c:5419 gio/gsocket.c:5492 gio/gsocket.c:5718
+#: ../gio/gsocket.c:4254 ../gio/gsocket.c:4389
 #, c-format
 msgid "Error receiving message: %s"
 msgstr ""
 
-#: gio/gsocket.c:5990 gio/gsocket.c:6038
-#, fuzzy, c-format
-#| msgid "Failed to read from file '%s': %s"
-msgid "Unable to read socket credentials: %s"
-msgstr "Greška pri čitanju iz datoteke '%s': %s"
-
-#: gio/gsocket.c:6047
+#: ../gio/gsocket.c:4503
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr ""
 
-#: gio/gsocketclient.c:182
+#: ../gio/gsocketclient.c:178
 #, c-format
 msgid "Could not connect to proxy server %s: "
 msgstr ""
 
-#: gio/gsocketclient.c:196
+#: ../gio/gsocketclient.c:192
 #, c-format
 msgid "Could not connect to %s: "
 msgstr ""
 
-#: gio/gsocketclient.c:198
+#: ../gio/gsocketclient.c:194
 msgid "Could not connect: "
 msgstr ""
 
-#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1866
+#: ../gio/gsocketclient.c:1069 ../gio/gsocketclient.c:1636
 msgid "Unknown error on connect"
 msgstr ""
 
-#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1668
-msgid "Proxying over a non-TCP connection is not supported."
+#: ../gio/gsocketclient.c:1029 ../gio/gsocketclient.c:1486
+msgid "Trying to proxy over non-TCP connection is not supported."
 msgstr ""
 
-#: gio/gsocketclient.c:1120 gio/gsocketclient.c:1698
+#: ../gio/gsocketclient.c:1150 ../gio/gsocketclient.c:1595
 #, c-format
-msgid "Proxy protocol “%s” is not supported."
+msgid "Proxy protocol '%s' is not supported."
 msgstr ""
 
-#: gio/gsocketlistener.c:230
+#: ../gio/gsocketlistener.c:187
 msgid "Listener is already closed"
 msgstr ""
 
-#: gio/gsocketlistener.c:276
+#: ../gio/gsocketlistener.c:228
 msgid "Added socket is closed"
 msgstr ""
 
-#: gio/gsocks4aproxy.c:118
+#: ../gio/gsocks4aproxy.c:120
 #, c-format
-msgid "SOCKSv4 does not support IPv6 address “%s”"
+msgid "SOCKSv4 does not support IPv6 address '%s'"
 msgstr ""
 
-#: gio/gsocks4aproxy.c:136
+#: ../gio/gsocks4aproxy.c:138
 msgid "Username is too long for SOCKSv4 protocol"
 msgstr ""
 
-#: gio/gsocks4aproxy.c:153
+#: ../gio/gsocks4aproxy.c:155
 #, c-format
-msgid "Hostname “%s” is too long for SOCKSv4 protocol"
+msgid "Hostname '%s' is too long for SOCKSv4 protocol"
 msgstr ""
 
-#: gio/gsocks4aproxy.c:179
+#: ../gio/gsocks4aproxy.c:181
 msgid "The server is not a SOCKSv4 proxy server."
 msgstr ""
 
-#: gio/gsocks4aproxy.c:186
+#: ../gio/gsocks4aproxy.c:188
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr ""
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
+#: ../gio/gsocks5proxy.c:155 ../gio/gsocks5proxy.c:326
+#: ../gio/gsocks5proxy.c:336
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr ""
 
-#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
+#: ../gio/gsocks5proxy.c:169
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr ""
 
-#: gio/gsocks5proxy.c:191
+#: ../gio/gsocks5proxy.c:179
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
 msgstr ""
 
-#: gio/gsocks5proxy.c:220
+#: ../gio/gsocks5proxy.c:208
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr ""
 
-#: gio/gsocks5proxy.c:250
+#: ../gio/gsocks5proxy.c:238
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr ""
 
-#: gio/gsocks5proxy.c:300
+#: ../gio/gsocks5proxy.c:288
 #, c-format
-msgid "Hostname “%s” is too long for SOCKSv5 protocol"
+msgid "Hostname '%s' is too long for SOCKSv5 protocol"
 msgstr ""
 
-#: gio/gsocks5proxy.c:362
+#: ../gio/gsocks5proxy.c:350
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr ""
 
-#: gio/gsocks5proxy.c:369
+#: ../gio/gsocks5proxy.c:357
 msgid "Internal SOCKSv5 proxy server error."
 msgstr ""
 
-#: gio/gsocks5proxy.c:375
+#: ../gio/gsocks5proxy.c:363
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr ""
 
-#: gio/gsocks5proxy.c:382
+#: ../gio/gsocks5proxy.c:370
 msgid "Host unreachable through SOCKSv5 server."
 msgstr ""
 
-#: gio/gsocks5proxy.c:388
+#: ../gio/gsocks5proxy.c:376
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr ""
 
-#: gio/gsocks5proxy.c:394
+#: ../gio/gsocks5proxy.c:382
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr ""
 
-#: gio/gsocks5proxy.c:400
-msgid "SOCKSv5 proxy does not support “connect” command."
+#: ../gio/gsocks5proxy.c:388
+msgid "SOCKSv5 proxy does not support 'connect' command."
 msgstr ""
 
-#: gio/gsocks5proxy.c:406
+#: ../gio/gsocks5proxy.c:394
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr ""
 
-#: gio/gsocks5proxy.c:412
+#: ../gio/gsocks5proxy.c:400
 msgid "Unknown SOCKSv5 proxy error."
 msgstr ""
 
-#: gio/gthemedicon.c:595
-#, c-format
-msgid "Can’t handle version %d of GThemedIcon encoding"
-msgstr ""
-
-#: gio/gthreadedresolver.c:152
-msgid "No valid addresses were found"
-msgstr ""
-
-#: gio/gthreadedresolver.c:337
-#, c-format
-msgid "Error reverse-resolving “%s”: %s"
-msgstr ""
-
-#: gio/gthreadedresolver.c:676 gio/gthreadedresolver.c:755
-#: gio/gthreadedresolver.c:853 gio/gthreadedresolver.c:903
+#: ../gio/gthemedicon.c:524
 #, c-format
-msgid "No DNS record of the requested type for “%s”"
+msgid "Can't handle version %d of GThemedIcon encoding"
 msgstr ""
 
-#: gio/gthreadedresolver.c:681 gio/gthreadedresolver.c:858
-#, c-format
-msgid "Temporarily unable to resolve “%s”"
-msgstr ""
-
-#: gio/gthreadedresolver.c:686 gio/gthreadedresolver.c:863
-#: gio/gthreadedresolver.c:973
-#, c-format
-msgid "Error resolving “%s”"
+#: ../gio/gtlscertificate.c:248
+msgid "Cannot decrypt PEM-encoded private key"
 msgstr ""
 
-#: gio/gtlscertificate.c:243
+#: ../gio/gtlscertificate.c:253
 msgid "No PEM-encoded private key found"
 msgstr ""
 
-#: gio/gtlscertificate.c:253
-msgid "Cannot decrypt PEM-encoded private key"
-msgstr ""
-
-#: gio/gtlscertificate.c:264
+#: ../gio/gtlscertificate.c:263
 msgid "Could not parse PEM-encoded private key"
 msgstr ""
 
-#: gio/gtlscertificate.c:291
+#: ../gio/gtlscertificate.c:288
 msgid "No PEM-encoded certificate found"
 msgstr ""
 
-#: gio/gtlscertificate.c:300
+#: ../gio/gtlscertificate.c:297
 msgid "Could not parse PEM-encoded certificate"
 msgstr ""
 
-#: gio/gtlspassword.c:111
+#: ../gio/gtlspassword.c:113
 msgid ""
 "This is the last chance to enter the password correctly before your access "
 "is locked out."
 msgstr ""
 
-#. Translators: This is not the 'This is the last chance' string. It is
-#. * displayed when more than one attempt is allowed.
-#: gio/gtlspassword.c:115
+#: ../gio/gtlspassword.c:115
 msgid ""
-"Several passwords entered have been incorrect, and your access will be "
-"locked out after further failures."
+"Several password entered have been incorrect, and your access will be locked "
+"out after further failures."
 msgstr ""
 
-#: gio/gtlspassword.c:117
+#: ../gio/gtlspassword.c:117
 msgid "The password entered is incorrect."
 msgstr ""
 
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:579
+#: ../gio/gunixconnection.c:159 ../gio/gunixconnection.c:548
 #, c-format
 msgid "Expecting 1 control message, got %d"
-msgid_plural "Expecting 1 control message, got %d"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr ""
 
-#: gio/gunixconnection.c:182 gio/gunixconnection.c:591
+#: ../gio/gunixconnection.c:175 ../gio/gunixconnection.c:566
 msgid "Unexpected type of ancillary data"
 msgstr ""
 
-#: gio/gunixconnection.c:200
+#: ../gio/gunixconnection.c:190
 #, c-format
 msgid "Expecting one fd, but got %d\n"
-msgid_plural "Expecting one fd, but got %d\n"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr ""
 
-#: gio/gunixconnection.c:219
+#: ../gio/gunixconnection.c:212
 msgid "Received invalid fd"
 msgstr ""
 
-#: gio/gunixconnection.c:363
+#: ../gio/gunixconnection.c:348
 msgid "Error sending credentials: "
 msgstr ""
 
-#: gio/gunixconnection.c:520
+#: ../gio/gunixconnection.c:496
 #, c-format
 msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
 msgstr ""
 
-#: gio/gunixconnection.c:536
+#: ../gio/gunixconnection.c:520
+#, c-format
+msgid ""
+"Unexpected option length while checking if SO_PASSCRED is enabled for "
+"socket. Expected %d bytes, got %d"
+msgstr ""
+
+#: ../gio/gunixconnection.c:511
 #, c-format
 msgid "Error enabling SO_PASSCRED: %s"
 msgstr ""
 
-#: gio/gunixconnection.c:565
+#: ../gio/gunixconnection.c:540
 msgid ""
 "Expecting to read a single byte for receiving credentials but read zero bytes"
 msgstr ""
 
-#: gio/gunixconnection.c:605
+#: ../gio/gunixconnection.c:580
 #, c-format
 msgid "Not expecting control message, but got %d"
 msgstr ""
 
-#: gio/gunixconnection.c:630
+#: ../gio/gunixconnection.c:604
 #, c-format
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr ""
 
-#: gio/gunixinputstream.c:362 gio/gunixinputstream.c:383
+#: ../gio/gunixinputstream.c:372 ../gio/gunixinputstream.c:393
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr ""
 
-#: gio/gunixinputstream.c:416 gio/gunixoutputstream.c:525
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: ../gio/gunixinputstream.c:426 ../gio/gunixoutputstream.c:412
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr ""
 
-#: gio/gunixmounts.c:2755 gio/gunixmounts.c:2808
+#: ../gio/gunixmounts.c:1985 ../gio/gunixmounts.c:2038
 msgid "Filesystem root"
 msgstr ""
 
-#: gio/gunixoutputstream.c:362 gio/gunixoutputstream.c:382
-#: gio/gunixoutputstream.c:469 gio/gunixoutputstream.c:489
-#: gio/gunixoutputstream.c:635
+#: ../gio/gunixoutputstream.c:358 ../gio/gunixoutputstream.c:379
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr ""
 
-#: gio/gunixsocketaddress.c:243
-msgid "Abstract UNIX domain socket addresses not supported on this system"
+#: ../gio/gunixsocketaddress.c:244
+msgid "Abstract unix domain socket addresses not supported on this system"
 msgstr ""
 
-#: gio/gvolume.c:438
-msgid "volume doesnt implement eject"
+#: ../gio/gvolume.c:439
+msgid "volume doesn't implement eject"
 msgstr ""
 
 #. Translators: This is an error
 #. * message for volume objects that
 #. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:515
-msgid "volume doesn’t implement eject or eject_with_operation"
-msgstr ""
-
-#: gio/gwin32inputstream.c:185
-#, c-format
-msgid "Error reading from handle: %s"
+#: ../gio/gvolume.c:516
+msgid "volume doesn't implement eject or eject_with_operation"
 msgstr ""
 
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
-#, c-format
-msgid "Error closing handle: %s"
+#: ../gio/gwin32appinfo.c:276
+msgid "Can't find application"
 msgstr ""
 
-#: gio/gwin32outputstream.c:172
+#: ../gio/gwin32appinfo.c:308
 #, c-format
-msgid "Error writing to handle: %s"
+msgid "Error launching application: %s"
 msgstr ""
 
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
-msgid "Not enough memory"
-msgstr "Nedovoljno memorije"
-
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
-#, c-format
-msgid "Internal error: %s"
-msgstr "Unutarnja greška: %s"
-
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
-msgid "Need more input"
-msgstr "Treba više unosa"
-
-#: gio/gzlibdecompressor.c:340
-msgid "Invalid compressed data"
-msgstr "Neispravno sažeti podaci"
+#: ../gio/gwin32appinfo.c:344
+msgid "URIs not supported"
+msgstr ""
 
-#: gio/tests/gdbus-daemon.c:18
-msgid "Address to listen on"
+#: ../gio/gwin32appinfo.c:366
+msgid "association changes not supported on win32"
 msgstr ""
 
-#: gio/tests/gdbus-daemon.c:19
-msgid "Ignored, for compat with GTestDbus"
+#: ../gio/gwin32appinfo.c:378
+msgid "Association creation not supported on win32"
 msgstr ""
 
-#: gio/tests/gdbus-daemon.c:20
-msgid "Print address"
+#: ../gio/gwin32inputstream.c:346
+#, c-format
+msgid "Error reading from handle: %s"
 msgstr ""
 
-#: gio/tests/gdbus-daemon.c:21
-msgid "Print address in shell mode"
+#: ../gio/gwin32inputstream.c:390 ../gio/gwin32outputstream.c:377
+#, c-format
+msgid "Error closing handle: %s"
 msgstr ""
 
-#: gio/tests/gdbus-daemon.c:28
-msgid "Run a dbus service"
+#: ../gio/gwin32outputstream.c:333
+#, c-format
+msgid "Error writing to handle: %s"
 msgstr ""
 
-#: gio/tests/gdbus-daemon.c:42
-msgid "Wrong args\n"
+#: ../gio/gzlibcompressor.c:396 ../gio/gzlibdecompressor.c:349
+msgid "Not enough memory"
 msgstr ""
 
-#: glib/gbookmarkfile.c:768
+#: ../gio/gzlibcompressor.c:403 ../gio/gzlibdecompressor.c:356
 #, c-format
-msgid "Unexpected attribute “%s” for element “%s”"
+msgid "Internal error: %s"
+msgstr ""
+
+#: ../gio/gzlibcompressor.c:416 ../gio/gzlibdecompressor.c:370
+msgid "Need more input"
+msgstr ""
+
+#: ../gio/gzlibdecompressor.c:342
+msgid "Invalid compressed data"
 msgstr ""
 
-#: glib/gbookmarkfile.c:779 glib/gbookmarkfile.c:859 glib/gbookmarkfile.c:869
-#: glib/gbookmarkfile.c:982
+#: ../glib/gbookmarkfile.c:755
 #, c-format
-msgid "Attribute “%s” of element “%s” not found"
+msgid "Unexpected attribute '%s' for element '%s'"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1191 glib/gbookmarkfile.c:1256
-#: glib/gbookmarkfile.c:1320 glib/gbookmarkfile.c:1330
+#: ../glib/gbookmarkfile.c:766 ../glib/gbookmarkfile.c:837
+#: ../glib/gbookmarkfile.c:847 ../glib/gbookmarkfile.c:954
 #, c-format
-msgid "Unexpected tag “%s”, tag “%s” expected"
+msgid "Attribute '%s' of element '%s' not found"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1216 glib/gbookmarkfile.c:1230
-#: glib/gbookmarkfile.c:1298 glib/gbookmarkfile.c:1344
+#: ../glib/gbookmarkfile.c:1124 ../glib/gbookmarkfile.c:1189
+#: ../glib/gbookmarkfile.c:1253 ../glib/gbookmarkfile.c:1263
 #, c-format
-msgid "Unexpected tag “%s” inside “%s”"
+msgid "Unexpected tag '%s', tag '%s' expected"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1624
+#: ../glib/gbookmarkfile.c:1149 ../glib/gbookmarkfile.c:1163
+#: ../glib/gbookmarkfile.c:1231 ../glib/gbookmarkfile.c:1283
 #, c-format
-msgid "Invalid date/time ‘%s’ in bookmark file"
+msgid "Unexpected tag '%s' inside '%s'"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1827
+#: ../glib/gbookmarkfile.c:1793
 msgid "No valid bookmark file found in data dirs"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2028
+#: ../glib/gbookmarkfile.c:1994
 #, c-format
-msgid "A bookmark for URI “%s” already exists"
+msgid "A bookmark for URI '%s' already exists"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2077 glib/gbookmarkfile.c:2235
-#: glib/gbookmarkfile.c:2320 glib/gbookmarkfile.c:2400
-#: glib/gbookmarkfile.c:2485 glib/gbookmarkfile.c:2619
-#: glib/gbookmarkfile.c:2752 glib/gbookmarkfile.c:2887
-#: glib/gbookmarkfile.c:2929 glib/gbookmarkfile.c:3026
-#: glib/gbookmarkfile.c:3147 glib/gbookmarkfile.c:3341
-#: glib/gbookmarkfile.c:3482 glib/gbookmarkfile.c:3701
-#: glib/gbookmarkfile.c:3790 glib/gbookmarkfile.c:3879
-#: glib/gbookmarkfile.c:3998
+#: ../glib/gbookmarkfile.c:2040 ../glib/gbookmarkfile.c:2198
+#: ../glib/gbookmarkfile.c:2283 ../glib/gbookmarkfile.c:2363
+#: ../glib/gbookmarkfile.c:2448 ../glib/gbookmarkfile.c:2531
+#: ../glib/gbookmarkfile.c:2609 ../glib/gbookmarkfile.c:2688
+#: ../glib/gbookmarkfile.c:2730 ../glib/gbookmarkfile.c:2827
+#: ../glib/gbookmarkfile.c:2947 ../glib/gbookmarkfile.c:3137
+#: ../glib/gbookmarkfile.c:3213 ../glib/gbookmarkfile.c:3381
+#: ../glib/gbookmarkfile.c:3470 ../glib/gbookmarkfile.c:3560
+#: ../glib/gbookmarkfile.c:3688
 #, c-format
-msgid "No bookmark found for URI “%s”"
+msgid "No bookmark found for URI '%s'"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2409
+#: ../glib/gbookmarkfile.c:2372
 #, c-format
-msgid "No MIME type defined in the bookmark for URI “%s”"
+msgid "No MIME type defined in the bookmark for URI '%s'"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2494
+#: ../glib/gbookmarkfile.c:2457
 #, c-format
-msgid "No private flag has been defined in bookmark for URI “%s”"
+msgid "No private flag has been defined in bookmark for URI '%s'"
 msgstr ""
 
-#: glib/gbookmarkfile.c:3035
+#: ../glib/gbookmarkfile.c:2836
 #, c-format
-msgid "No groups set in bookmark for URI “%s”"
+msgid "No groups set in bookmark for URI '%s'"
 msgstr ""
 
-#: glib/gbookmarkfile.c:3503 glib/gbookmarkfile.c:3711
+#: ../glib/gbookmarkfile.c:3234 ../glib/gbookmarkfile.c:3391
 #, c-format
-msgid "No application with name “%s” registered a bookmark for “%s”"
+msgid "No application with name '%s' registered a bookmark for '%s'"
 msgstr ""
 
-#: glib/gbookmarkfile.c:3734
+#: ../glib/gbookmarkfile.c:3414
 #, c-format
-msgid "Failed to expand exec line “%s” with URI “%s”"
+msgid "Failed to expand exec line '%s' with URI '%s'"
 msgstr ""
 
-#: glib/gconvert.c:467
-#, fuzzy
-#| msgid "Invalid sequence in conversion input"
-msgid "Unrepresentable character in conversion input"
-msgstr "Neispravna sekvenca u pretvaranju ulaza"
-
-#: glib/gconvert.c:494 glib/gutf8.c:871 glib/gutf8.c:1083 glib/gutf8.c:1220
-#: glib/gutf8.c:1324
+#: ../glib/gconvert.c:503 ../glib/gutf8.c:839 ../glib/gutf8.c:1054
+#: ../glib/gutf8.c:1193 ../glib/gutf8.c:1299
 msgid "Partial character sequence at end of input"
 msgstr "Djelomična znakovna sekvenca pri kraju izlaza"
 
-#: glib/gconvert.c:763
-#, fuzzy, c-format
-#| msgid "Cannot convert fallback '%s' to codeset '%s'"
-msgid "Cannot convert fallback “%s” to codeset “%s”"
+#: ../glib/gconvert.c:753
+#, c-format
+msgid "Cannot convert fallback '%s' to codeset '%s'"
 msgstr "Ne mogu prevesti '%s' u znakovni skup '%s'"
 
-#: glib/gconvert.c:935
-#, fuzzy
-#| msgid "Invalid byte sequence in conversion input"
-msgid "Embedded NUL byte in conversion input"
-msgstr "Neispravna sekvenca bajtova u izlazu konverzije"
-
-#: glib/gconvert.c:956
-#, fuzzy
-#| msgid "Invalid byte sequence in conversion input"
-msgid "Embedded NUL byte in conversion output"
-msgstr "Neispravna sekvenca bajtova u izlazu konverzije"
-
-#: glib/gconvert.c:1641
-#, fuzzy, c-format
-#| msgid "The URI '%s' is not an absolute URI using the \"file\" scheme"
-msgid "The URI “%s” is not an absolute URI using the “file” scheme"
+#: ../glib/gconvert.c:1573
+#, c-format
+msgid "The URI '%s' is not an absolute URI using the \"file\" scheme"
 msgstr "'%s' nije apsolutni URI sa \"datoteka\" shemom"
 
-#: glib/gconvert.c:1651
-#, fuzzy, c-format
-#| msgid "The local file URI '%s' may not include a '#'"
-msgid "The local file URI “%s” may not include a “#”"
+#: ../glib/gconvert.c:1583
+#, c-format
+msgid "The local file URI '%s' may not include a '#'"
 msgstr "URI lokalne datoteke '%s' ne smije uključivati '#'"
 
-#: glib/gconvert.c:1668
-#, fuzzy, c-format
-#| msgid "The URI '%s' is invalid"
-msgid "The URI “%s” is invalid"
+#: ../glib/gconvert.c:1600
+#, c-format
+msgid "The URI '%s' is invalid"
 msgstr "URI '%s' nije ispravan"
 
-#: glib/gconvert.c:1680
-#, fuzzy, c-format
-#| msgid "The hostname of the URI '%s' is invalid"
-msgid "The hostname of the URI “%s” is invalid"
+#: ../glib/gconvert.c:1612
+#, c-format
+msgid "The hostname of the URI '%s' is invalid"
 msgstr "Ime računala URI-ja '%s' je neispravno"
 
-#: glib/gconvert.c:1696
-#, fuzzy, c-format
-#| msgid "The URI '%s' contains invalidly escaped characters"
-msgid "The URI “%s” contains invalidly escaped characters"
+#: ../glib/gconvert.c:1628
+#, c-format
+msgid "The URI '%s' contains invalidly escaped characters"
 msgstr "URI '%s' sadrži neispravne escape znakove"
 
-#: glib/gconvert.c:1768
-#, fuzzy, c-format
-#| msgid "The pathname '%s' is not an absolute path"
-msgid "The pathname “%s” is not an absolute path"
+#: ../glib/gconvert.c:1723
+#, c-format
+msgid "The pathname '%s' is not an absolute path"
 msgstr "Putanja '%s' nije apsolutna putanja"
 
+#: ../glib/gconvert.c:1733
+msgid "Invalid hostname"
+msgstr "Neispravno ime računala"
+
+#. Translators: 'before midday' indicator
+#: ../glib/gdatetime.c:201
+msgctxt "GDateTime"
+msgid "AM"
+msgstr ""
+
+#. Translators: 'after midday' indicator
+#: ../glib/gdatetime.c:203
+msgctxt "GDateTime"
+msgid "PM"
+msgstr ""
+
 #. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:220
+#: ../glib/gdatetime.c:206
 msgctxt "GDateTime"
 msgid "%a %b %e %H:%M:%S %Y"
 msgstr "%a %d %b %Y %T"
 
 #. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:223
+#: ../glib/gdatetime.c:209
 msgctxt "GDateTime"
 msgid "%m/%d/%y"
 msgstr "%d.%m.%Y"
 
 #. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:226
+#: ../glib/gdatetime.c:212
 msgctxt "GDateTime"
 msgid "%H:%M:%S"
 msgstr "%T"
 
 #. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:229
-#, fuzzy
+#: ../glib/gdatetime.c:215
 msgctxt "GDateTime"
 msgid "%I:%M:%S %p"
-msgstr "%H:%M:%S"
-
-#. Translators: Some languages (Baltic, Slavic, Greek, and some more)
-#. * need different grammatical forms of month names depending on whether
-#. * they are standalone or in a complete date context, with the day
-#. * number.  Some other languages may prefer starting with uppercase when
-#. * they are standalone and with lowercase when they are in a complete
-#. * date context.  Here are full month names in a form appropriate when
-#. * they are used standalone.  If your system is Linux with the glibc
-#. * version 2.27 (released Feb 1, 2018) or newer or if it is from the BSD
-#. * family (which includes OS X) then you can refer to the date command
-#. * line utility and see what the command `date +%OB' produces.  Also in
-#. * the latest Linux the command `locale alt_mon' in your native locale
-#. * produces a complete list of month names almost ready to copy and
-#. * paste here.  Note that in most of the languages (western European,
-#. * non-European) there is no difference between the standalone and
-#. * complete date form.
-#.
-#: glib/gdatetime.c:268
+msgstr ""
+
+#: ../glib/gdatetime.c:228
 msgctxt "full month name"
 msgid "January"
 msgstr "Siječanj"
 
-#: glib/gdatetime.c:270
+#: ../glib/gdatetime.c:230
 msgctxt "full month name"
 msgid "February"
 msgstr "Veljača"
 
-#: glib/gdatetime.c:272
+#: ../glib/gdatetime.c:232
 msgctxt "full month name"
 msgid "March"
 msgstr "Ožujak"
 
-#: glib/gdatetime.c:274
+#: ../glib/gdatetime.c:234
 msgctxt "full month name"
 msgid "April"
 msgstr "Travanj"
 
-#: glib/gdatetime.c:276
+#: ../glib/gdatetime.c:236
 msgctxt "full month name"
 msgid "May"
 msgstr "Svibanj"
 
-#: glib/gdatetime.c:278
+#: ../glib/gdatetime.c:238
 msgctxt "full month name"
 msgid "June"
 msgstr "Lipanj"
 
-#: glib/gdatetime.c:280
+#: ../glib/gdatetime.c:240
 msgctxt "full month name"
 msgid "July"
 msgstr "Srpanj"
 
-#: glib/gdatetime.c:282
+#: ../glib/gdatetime.c:242
 msgctxt "full month name"
 msgid "August"
 msgstr "Kolovoz"
 
-#: glib/gdatetime.c:284
+#: ../glib/gdatetime.c:244
 msgctxt "full month name"
 msgid "September"
 msgstr "Rujan"
 
-#: glib/gdatetime.c:286
+#: ../glib/gdatetime.c:246
 msgctxt "full month name"
 msgid "October"
 msgstr "Listopad"
 
-#: glib/gdatetime.c:288
+#: ../glib/gdatetime.c:248
 msgctxt "full month name"
 msgid "November"
 msgstr "Studeni"
 
-#: glib/gdatetime.c:290
+#: ../glib/gdatetime.c:250
 msgctxt "full month name"
 msgid "December"
 msgstr "Prosinac"
 
-#. Translators: Some languages need different grammatical forms of
-#. * month names depending on whether they are standalone or in a complete
-#. * date context, with the day number.  Some may prefer starting with
-#. * uppercase when they are standalone and with lowercase when they are
-#. * in a full date context.  However, as these names are abbreviated
-#. * the grammatical difference is visible probably only in Belarusian
-#. * and Russian.  In other languages there is no difference between
-#. * the standalone and complete date form when they are abbreviated.
-#. * If your system is Linux with the glibc version 2.27 (released
-#. * Feb 1, 2018) or newer then you can refer to the date command line
-#. * utility and see what the command `date +%Ob' produces.  Also in
-#. * the latest Linux the command `locale ab_alt_mon' in your native
-#. * locale produces a complete list of month names almost ready to copy
-#. * and paste here.  Note that this feature is not yet supported by any
-#. * other platform.  Here are abbreviated month names in a form
-#. * appropriate when they are used standalone.
-#.
-#: glib/gdatetime.c:322
+#: ../glib/gdatetime.c:265
 msgctxt "abbreviated month name"
 msgid "Jan"
 msgstr "Sij"
 
-#: glib/gdatetime.c:324
+#: ../glib/gdatetime.c:267
 msgctxt "abbreviated month name"
 msgid "Feb"
 msgstr "Vel"
 
-#: glib/gdatetime.c:326
+#: ../glib/gdatetime.c:269
 msgctxt "abbreviated month name"
 msgid "Mar"
 msgstr "Ožu"
 
-#: glib/gdatetime.c:328
+#: ../glib/gdatetime.c:271
 msgctxt "abbreviated month name"
 msgid "Apr"
 msgstr "Tra"
 
-#: glib/gdatetime.c:330
+#: ../glib/gdatetime.c:273
 msgctxt "abbreviated month name"
 msgid "May"
 msgstr "Svi"
 
-#: glib/gdatetime.c:332
+#: ../glib/gdatetime.c:275
 msgctxt "abbreviated month name"
 msgid "Jun"
 msgstr "Lip"
 
-#: glib/gdatetime.c:334
+#: ../glib/gdatetime.c:277
 msgctxt "abbreviated month name"
 msgid "Jul"
 msgstr "Srp"
 
-#: glib/gdatetime.c:336
+#: ../glib/gdatetime.c:279
 msgctxt "abbreviated month name"
 msgid "Aug"
 msgstr "Kol"
 
-#: glib/gdatetime.c:338
+#: ../glib/gdatetime.c:281
 msgctxt "abbreviated month name"
 msgid "Sep"
 msgstr "Ruj"
 
-#: glib/gdatetime.c:340
+#: ../glib/gdatetime.c:283
 msgctxt "abbreviated month name"
 msgid "Oct"
 msgstr "Lis"
 
-#: glib/gdatetime.c:342
+#: ../glib/gdatetime.c:285
 msgctxt "abbreviated month name"
 msgid "Nov"
 msgstr "Stu"
 
-#: glib/gdatetime.c:344
+#: ../glib/gdatetime.c:287
 msgctxt "abbreviated month name"
 msgid "Dec"
 msgstr "Pro"
 
-#: glib/gdatetime.c:359
+#: ../glib/gdatetime.c:302
 msgctxt "full weekday name"
 msgid "Monday"
 msgstr "Ponedjeljak"
 
-#: glib/gdatetime.c:361
+#: ../glib/gdatetime.c:304
 msgctxt "full weekday name"
 msgid "Tuesday"
 msgstr "Utorak"
 
-#: glib/gdatetime.c:363
+#: ../glib/gdatetime.c:306
 msgctxt "full weekday name"
 msgid "Wednesday"
 msgstr "Srijeda"
 
-#: glib/gdatetime.c:365
+#: ../glib/gdatetime.c:308
 msgctxt "full weekday name"
 msgid "Thursday"
 msgstr "Četvrtak"
 
-#: glib/gdatetime.c:367
+#: ../glib/gdatetime.c:310
 msgctxt "full weekday name"
 msgid "Friday"
 msgstr "Petak"
 
-#: glib/gdatetime.c:369
+#: ../glib/gdatetime.c:312
 msgctxt "full weekday name"
 msgid "Saturday"
 msgstr "Subota"
 
-#: glib/gdatetime.c:371
+#: ../glib/gdatetime.c:314
 msgctxt "full weekday name"
 msgid "Sunday"
 msgstr "Nedjelja"
 
-#: glib/gdatetime.c:386
+#: ../glib/gdatetime.c:329
 msgctxt "abbreviated weekday name"
 msgid "Mon"
 msgstr "Pon"
 
-#: glib/gdatetime.c:388
+#: ../glib/gdatetime.c:331
 msgctxt "abbreviated weekday name"
 msgid "Tue"
 msgstr "Uto"
 
-#: glib/gdatetime.c:390
+#: ../glib/gdatetime.c:333
 msgctxt "abbreviated weekday name"
 msgid "Wed"
 msgstr "Sri"
 
-#: glib/gdatetime.c:392
+#: ../glib/gdatetime.c:335
 msgctxt "abbreviated weekday name"
 msgid "Thu"
 msgstr "Čet"
 
-#: glib/gdatetime.c:394
+#: ../glib/gdatetime.c:337
 msgctxt "abbreviated weekday name"
 msgid "Fri"
 msgstr "Pet"
 
-#: glib/gdatetime.c:396
+#: ../glib/gdatetime.c:339
 msgctxt "abbreviated weekday name"
 msgid "Sat"
 msgstr "Sub"
 
-#: glib/gdatetime.c:398
+#: ../glib/gdatetime.c:341
 msgctxt "abbreviated weekday name"
 msgid "Sun"
 msgstr "Ned"
 
-#. Translators: Some languages need different grammatical forms of
-#. * month names depending on whether they are standalone or in a full
-#. * date context, with the day number.  Some may prefer starting with
-#. * uppercase when they are standalone and with lowercase when they are
-#. * in a full date context.  Here are full month names in a form
-#. * appropriate when they are used in a full date context, with the
-#. * day number.  If your system is Linux with the glibc version 2.27
-#. * (released Feb 1, 2018) or newer or if it is from the BSD family
-#. * (which includes OS X) then you can refer to the date command line
-#. * utility and see what the command `date +%B' produces.  Also in
-#. * the latest Linux the command `locale mon' in your native locale
-#. * produces a complete list of month names almost ready to copy and
-#. * paste here.  In older Linux systems due to a bug the result is
-#. * incorrect in some languages.  Note that in most of the languages
-#. * (western European, non-European) there is no difference between the
-#. * standalone and complete date form.
-#.
-#: glib/gdatetime.c:462
-msgctxt "full month name with day"
-msgid "January"
-msgstr "siječnja"
-
-#: glib/gdatetime.c:464
-msgctxt "full month name with day"
-msgid "February"
-msgstr "veljače"
-
-#: glib/gdatetime.c:466
-msgctxt "full month name with day"
-msgid "March"
-msgstr "ožujka"
-
-#: glib/gdatetime.c:468
-msgctxt "full month name with day"
-msgid "April"
-msgstr "travnja"
-
-#: glib/gdatetime.c:470
-msgctxt "full month name with day"
-msgid "May"
-msgstr "svibnja"
-
-#: glib/gdatetime.c:472
-msgctxt "full month name with day"
-msgid "June"
-msgstr "lipnja"
-
-#: glib/gdatetime.c:474
-msgctxt "full month name with day"
-msgid "July"
-msgstr "srpnja"
-
-#: glib/gdatetime.c:476
-msgctxt "full month name with day"
-msgid "August"
-msgstr "kolovoza"
-
-#: glib/gdatetime.c:478
-msgctxt "full month name with day"
-msgid "September"
-msgstr "rujna"
-
-#: glib/gdatetime.c:480
-msgctxt "full month name with day"
-msgid "October"
-msgstr "listopada"
-
-#: glib/gdatetime.c:482
-msgctxt "full month name with day"
-msgid "November"
-msgstr "studenoga"
-
-#: glib/gdatetime.c:484
-msgctxt "full month name with day"
-msgid "December"
-msgstr "prosinca"
-
-#. Translators: Some languages need different grammatical forms of
-#. * month names depending on whether they are standalone or in a full
-#. * date context, with the day number.  Some may prefer starting with
-#. * uppercase when they are standalone and with lowercase when they are
-#. * in a full date context.  Here are abbreviated month names in a form
-#. * appropriate when they are used in a full date context, with the
-#. * day number.  However, as these names are abbreviated the grammatical
-#. * difference is visible probably only in Belarusian and Russian.
-#. * In other languages there is no difference between the standalone
-#. * and complete date form when they are abbreviated.  If your system
-#. * is Linux with the glibc version 2.27 (released Feb 1, 2018) or newer
-#. * then you can refer to the date command line utility and see what the
-#. * command `date +%b' produces.  Also in the latest Linux the command
-#. * `locale abmon' in your native locale produces a complete list of
-#. * month names almost ready to copy and paste here.  In other systems
-#. * due to a bug the result is incorrect in some languages.
-#.
-#: glib/gdatetime.c:549
-msgctxt "abbreviated month name with day"
-msgid "Jan"
-msgstr "sij"
-
-#: glib/gdatetime.c:551
-msgctxt "abbreviated month name with day"
-msgid "Feb"
-msgstr "vel"
-
-#: glib/gdatetime.c:553
-msgctxt "abbreviated month name with day"
-msgid "Mar"
-msgstr "ožu"
-
-#: glib/gdatetime.c:555
-msgctxt "abbreviated month name with day"
-msgid "Apr"
-msgstr "tra"
-
-#: glib/gdatetime.c:557
-msgctxt "abbreviated month name with day"
-msgid "May"
-msgstr "svi"
-
-#: glib/gdatetime.c:559
-msgctxt "abbreviated month name with day"
-msgid "Jun"
-msgstr "lip"
-
-#: glib/gdatetime.c:561
-msgctxt "abbreviated month name with day"
-msgid "Jul"
-msgstr "srp"
-
-#: glib/gdatetime.c:563
-msgctxt "abbreviated month name with day"
-msgid "Aug"
-msgstr "kol"
-
-#: glib/gdatetime.c:565
-msgctxt "abbreviated month name with day"
-msgid "Sep"
-msgstr "ruj"
-
-#: glib/gdatetime.c:567
-msgctxt "abbreviated month name with day"
-msgid "Oct"
-msgstr "lis"
-
-#: glib/gdatetime.c:569
-msgctxt "abbreviated month name with day"
-msgid "Nov"
-msgstr "stu"
-
-#: glib/gdatetime.c:571
-msgctxt "abbreviated month name with day"
-msgid "Dec"
-msgstr "pro"
-
-#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:588
-msgctxt "GDateTime"
-msgid "AM"
-msgstr "AM"
-
-#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:591
-msgctxt "GDateTime"
-msgid "PM"
-msgstr "PM"
-
-#: glib/gdir.c:154
+#: ../glib/gdir.c:157
 #, c-format
-msgid "Error opening directory “%s”: %s"
-msgstr "Greška otvaranja direktorija “%s”: %s"
+msgid "Error opening directory '%s': %s"
+msgstr "Greška pri otvaranju mape '%s': %s"
 
-#: glib/gfileutils.c:737 glib/gfileutils.c:829
-#, fuzzy, c-format
-#| msgid "Could not allocate %lu bytes to read file \"%s\""
-msgid "Could not allocate %lu byte to read file “%s”"
-msgid_plural "Could not allocate %lu bytes to read file “%s”"
-msgstr[0] "Ne mogu alocirati %lu bajtova za čitanje datoteke \"%s\""
-msgstr[1] "Ne mogu alocirati %lu bajtova za čitanje datoteke \"%s\""
-msgstr[2] "Ne mogu alocirati %lu bajtova za čitanje datoteke \"%s\""
+#: ../glib/gfileutils.c:675 ../glib/gfileutils.c:763
+#, c-format
+msgid "Could not allocate %lu bytes to read file \"%s\""
+msgstr "Ne mogu alocirati %lu bajtova za čitanje datoteke \"%s\""
 
-#: glib/gfileutils.c:754
+#: ../glib/gfileutils.c:671
 #, c-format
-msgid "Error reading file “%s”: %s"
-msgstr "Greška čitanja datoteke “%s”: %s"
+msgid "Error reading file '%s': %s"
+msgstr "Greška pri čitanju datoteke '%s': %s"
 
-#: glib/gfileutils.c:790
+#: ../glib/gfileutils.c:705
 #, c-format
-msgid "File “%s” is too large"
+msgid "File \"%s\" is too large"
 msgstr ""
 
-#: glib/gfileutils.c:854
-#, fuzzy, c-format
-#| msgid "Failed to read from file '%s': %s"
-msgid "Failed to read from file “%s”: %s"
+#: ../glib/gfileutils.c:765
+#, c-format
+msgid "Failed to read from file '%s': %s"
 msgstr "Greška pri čitanju iz datoteke '%s': %s"
 
-#: glib/gfileutils.c:902 glib/gfileutils.c:974 glib/gfileutils.c:1466
-#, fuzzy, c-format
-#| msgid "Failed to open file '%s': %s"
-msgid "Failed to open file “%s”: %s"
+#: ../glib/gfileutils.c:816 ../glib/gfileutils.c:903
+#, c-format
+msgid "Failed to open file '%s': %s"
 msgstr "Greška pri otvaranju datoteke '%s': %s"
 
-#: glib/gfileutils.c:914
-#, fuzzy, c-format
-#| msgid "Failed to get attributes of file '%s': fstat() failed: %s"
-msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
+#: ../glib/gfileutils.c:833
+#, c-format
+msgid "Failed to get attributes of file '%s': fstat() failed: %s"
 msgstr "Greška pri dohvatu atributa datoteke '%s': fstat() nije uspio: %s"
 
-#: glib/gfileutils.c:944
-#, fuzzy, c-format
-#| msgid "Failed to open file '%s': fdopen() failed: %s"
-msgid "Failed to open file “%s”: fdopen() failed: %s"
+#: ../glib/gfileutils.c:867
+#, c-format
+msgid "Failed to open file '%s': fdopen() failed: %s"
 msgstr "Greška pri otvaranju datoteke '%s': fdopen() nije uspio: %s"
 
-#: glib/gfileutils.c:1044
-#, fuzzy, c-format
-#| msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
-msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
+#: ../glib/gfileutils.c:975
+#, c-format
+msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
 msgstr ""
 "Greška pri preimenovanju datoteke '%s' u '%s': g_rename() nije uspio: %s"
 
-#: glib/gfileutils.c:1169
-#, fuzzy, c-format
-#| msgid "Failed to write file '%s': fwrite() failed: %s"
-msgid "Failed to write file “%s”: write() failed: %s"
-msgstr "Greška pri pisanje u datoteku '%s': fwrite() nije uspio: %s"
+#: ../glib/gfileutils.c:1051 ../glib/gfileutils.c:1558
+#, c-format
+msgid "Failed to create file '%s': %s"
+msgstr "Greška pri stvaranju datoteke '%s': %s"
+
+#: ../glib/gfileutils.c:1049
+#, c-format
+msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
+msgstr ""
+"Greška pri otvaranju datoteke '%s' za pisanje: fdopen() nije uspio: %s"
 
-#: glib/gfileutils.c:1189
-#, fuzzy, c-format
-#| msgid "Failed to write file '%s': fwrite() failed: %s"
-msgid "Failed to write file “%s”: fsync() failed: %s"
+#: ../glib/gfileutils.c:1074
+#, c-format
+msgid "Failed to write file '%s': fwrite() failed: %s"
 msgstr "Greška pri pisanje u datoteku '%s': fwrite() nije uspio: %s"
 
-#: glib/gfileutils.c:1357 glib/gfileutils.c:1769
-#, fuzzy, c-format
-#| msgid "Failed to create file '%s': %s"
-msgid "Failed to create file “%s”: %s"
-msgstr "Greška pri stvaranju datoteke '%s': %s"
+#: ../glib/gfileutils.c:1093
+#, c-format
+msgid "Failed to write file '%s': fflush() failed: %s"
+msgstr ""
+
+#: ../glib/gfileutils.c:1115
+#, c-format
+msgid "Failed to write file '%s': fsync() failed: %s"
+msgstr ""
 
-#: glib/gfileutils.c:1401
-#, fuzzy, c-format
-#| msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
-msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
+#: ../glib/gfileutils.c:1161
+#, c-format
+msgid "Failed to close file '%s': fclose() failed: %s"
+msgstr "Greška pri zatvaranju datoteke '%s': fclose() nije uspio: %s"
+
+#: ../glib/gfileutils.c:1247
+#, c-format
+msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
 msgstr ""
 "Postojeća datoteka '%s' ne može biti obrisana: g_unlink() nije uspio: %s"
 
-#: glib/gfileutils.c:1735
-#, fuzzy, c-format
-#| msgid "Template '%s' invalid, should not contain a '%s'"
-msgid "Template “%s” invalid, should not contain a “%s”"
+#: ../glib/gfileutils.c:1521
+#, c-format
+msgid "Template '%s' invalid, should not contain a '%s'"
 msgstr "Predložak '%s' nije ispravan, ne smije sadržavati'%s'"
 
-#: glib/gfileutils.c:1748
+#: ../glib/gfileutils.c:1534
 #, c-format
-msgid "Template “%s” doesn’t contain XXXXXX"
+msgid "Template '%s' doesn't contain XXXXXX"
 msgstr ""
 
-#: glib/gfileutils.c:2306 glib/gfileutils.c:2334
-#, fuzzy, c-format
-#| msgid "Failed to read the symbolic link '%s': %s"
-msgid "Failed to read the symbolic link “%s”: %s"
+#: ../glib/gfileutils.c:2062
+#, c-format
+msgid "Failed to read the symbolic link '%s': %s"
 msgstr "Nisam uspio pročitati simboličku vezu '%s': %s"
 
-#: glib/giochannel.c:1396
-#, fuzzy, c-format
-#| msgid "Could not open converter from '%s' to '%s': %s"
-msgid "Could not open converter from “%s” to “%s”: %s"
+#: ../glib/gfileutils.c:2083
+msgid "Symbolic links not supported"
+msgstr "Nisu podržane simboličke veze"
+
+#: ../glib/giochannel.c:1414
+#, c-format
+msgid "Could not open converter from '%s' to '%s': %s"
 msgstr "Ne mogu otvoriti pretvornik iz '%s' u '%s': %s"
 
-#: glib/giochannel.c:1749
-#, fuzzy
-#| msgid "Can't do a raw read in g_io_channel_read_line_string"
-msgid "Can’t do a raw read in g_io_channel_read_line_string"
+#: ../glib/giochannel.c:1759
+msgid "Can't do a raw read in g_io_channel_read_line_string"
 msgstr "Ne mogu izvršiti raw čitanje u g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1796 glib/giochannel.c:2054 glib/giochannel.c:2141
+#: ../glib/giochannel.c:1806 ../glib/giochannel.c:2064
+#: ../glib/giochannel.c:2151
 msgid "Leftover unconverted data in read buffer"
 msgstr "Postoji ostatak nepretvorenih podataka u međuspremniku za čitanje"
 
-#: glib/giochannel.c:1877 glib/giochannel.c:1954
+#: ../glib/giochannel.c:1887 ../glib/giochannel.c:1964
 msgid "Channel terminates in a partial character"
 msgstr "Kanal završava sa djelomičnim znakom"
 
-#: glib/giochannel.c:1940
-#, fuzzy
-#| msgid "Can't do a raw read in g_io_channel_read_to_end"
-msgid "Can’t do a raw read in g_io_channel_read_to_end"
+#: ../glib/giochannel.c:1950
+msgid "Can't do a raw read in g_io_channel_read_to_end"
 msgstr "Ne mogu izvršiti raw čitanje u g_io_channel_read_to_end"
 
-#: glib/gkeyfile.c:789
+#: ../glib/gkeyfile.c:722
 msgid "Valid key file could not be found in search dirs"
 msgstr ""
 
-#: glib/gkeyfile.c:826
+#: ../glib/gkeyfile.c:758
 msgid "Not a regular file"
 msgstr "Nije regularna datoteka"
 
-#: glib/gkeyfile.c:1275
-#, fuzzy, c-format
-#| msgid ""
-#| "Key file contains line '%s' which is not a key-value pair, group, or "
-#| "comment"
+#: ../glib/gkeyfile.c:1158
+#, c-format
 msgid ""
-"Key file contains line “%s” which is not a key-value pair, group, or comment"
+"Key file contains line '%s' which is not a key-value pair, group, or comment"
 msgstr ""
 "Datoteka s ključem sadrži redak '%s' koji nije oblika ključ-vrijednost, "
 "grupa ili komentar"
 
-#: glib/gkeyfile.c:1332
+#: ../glib/gkeyfile.c:1215
 #, c-format
 msgid "Invalid group name: %s"
 msgstr ""
 
-#: glib/gkeyfile.c:1354
+#: ../glib/gkeyfile.c:1237
 msgid "Key file does not start with a group"
 msgstr "Datoteka s ključem ne započinje s grupom"
 
-#: glib/gkeyfile.c:1380
+#: ../glib/gkeyfile.c:1263
 #, c-format
 msgid "Invalid key name: %s"
 msgstr ""
 
-#: glib/gkeyfile.c:1407
-#, fuzzy, c-format
-#| msgid "Key file contains unsupported encoding '%s'"
-msgid "Key file contains unsupported encoding “%s”"
+#: ../glib/gkeyfile.c:1290
+#, c-format
+msgid "Key file contains unsupported encoding '%s'"
 msgstr "Datoteka s ključem sadrži nepodržano kodiranje '%s'"
 
-#: glib/gkeyfile.c:1650 glib/gkeyfile.c:1823 glib/gkeyfile.c:3276
-#: glib/gkeyfile.c:3340 glib/gkeyfile.c:3470 glib/gkeyfile.c:3602
-#: glib/gkeyfile.c:3748 glib/gkeyfile.c:3977 glib/gkeyfile.c:4044
-#, fuzzy, c-format
-#| msgid "Key file does not have group '%s'"
-msgid "Key file does not have group “%s”"
+#: ../glib/gkeyfile.c:1533 ../glib/gkeyfile.c:1695 ../glib/gkeyfile.c:3075
+#: ../glib/gkeyfile.c:3141 ../glib/gkeyfile.c:3267 ../glib/gkeyfile.c:3400
+#: ../glib/gkeyfile.c:3542 ../glib/gkeyfile.c:3772 ../glib/gkeyfile.c:3839
+#, c-format
+msgid "Key file does not have group '%s'"
 msgstr "Datoteka s ključem ne sadrži grupu '%s'"
 
-#: glib/gkeyfile.c:1778
-#, fuzzy, c-format
-#| msgid "Key file does not have key '%s' in group '%s'"
-msgid "Key file does not have key “%s” in group “%s”"
-msgstr "Datoteka s ključem na sadrži ključ '%s' u grupi '%s'"
+#: ../glib/gkeyfile.c:1707
+#, c-format
+msgid "Key file does not have key '%s'"
+msgstr "Datoteka s ključem ne sadrži ključ '%s'"
+
+#: ../glib/gkeyfile.c:1814 ../glib/gkeyfile.c:1930
+#, c-format
+msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
+msgstr ""
+"Datoteka s ključem sadrži ključ '%s' čija vrijednost '%s' nije u UTF-8"
 
-#: glib/gkeyfile.c:1940 glib/gkeyfile.c:2056
-#, fuzzy, c-format
-#| msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
-msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
-msgstr "Datoteka s ključem sadrži ključ '%s' čija vrijednost '%s' nije u UTF-8"
-
-#: glib/gkeyfile.c:1960 glib/gkeyfile.c:2076 glib/gkeyfile.c:2518
-#, fuzzy, c-format
-#| msgid ""
-#| "Key file contains line '%s' which is not a key-value pair, group, or "
-#| "comment"
+#: ../glib/gkeyfile.c:1834 ../glib/gkeyfile.c:1950 ../glib/gkeyfile.c:2319
+#, c-format
 msgid ""
-"Key file contains key “%s” which has a value that cannot be interpreted."
+"Key file contains key '%s' which has a value that cannot be interpreted."
 msgstr ""
-"Datoteka s ključem sadrži redak '%s' koji nije oblika ključ-vrijednost, "
-"grupa ili komentar"
 
-#: glib/gkeyfile.c:2736 glib/gkeyfile.c:3105
+#: ../glib/gkeyfile.c:2536 ../glib/gkeyfile.c:2904
 #, c-format
 msgid ""
-"Key file contains key “%s” in group “%s” which has a value that cannot be "
+"Key file contains key '%s' in group '%s' which has a value that cannot be "
 "interpreted."
 msgstr ""
 
-#: glib/gkeyfile.c:2814 glib/gkeyfile.c:2891
+#: ../glib/gkeyfile.c:2614 ../glib/gkeyfile.c:2691
 #, c-format
-msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
+msgid "Key '%s' in group '%s' has value '%s' where %s was expected"
 msgstr ""
 
-#: glib/gkeyfile.c:4284
+#: ../glib/gkeyfile.c:3090 ../glib/gkeyfile.c:3282 ../glib/gkeyfile.c:3850
+#, c-format
+msgid "Key file does not have key '%s' in group '%s'"
+msgstr "Datoteka s ključem na sadrži ključ '%s' u grupi '%s'"
+
+#: ../glib/gkeyfile.c:4082
 msgid "Key file contains escape character at end of line"
 msgstr "Datoteka s ključem na kraju retka ima izbjegnute znakove"
 
-#: glib/gkeyfile.c:4306
-#, fuzzy, c-format
-#| msgid "Key file contains invalid escape sequence '%s'"
-msgid "Key file contains invalid escape sequence “%s”"
+#: ../glib/gkeyfile.c:4104
+#, c-format
+msgid "Key file contains invalid escape sequence '%s'"
 msgstr "Datoteka s ključem sadrži neispravno izbjegnuti niz '%s'"
 
-#: glib/gkeyfile.c:4450
-#, fuzzy, c-format
-#| msgid "Value '%s' cannot be interpreted as a number."
-msgid "Value “%s” cannot be interpreted as a number."
+#: ../glib/gkeyfile.c:4246
+#, c-format
+msgid "Value '%s' cannot be interpreted as a number."
 msgstr "Vrijednost '%s' ne može biti protumačena kao broj."
 
-#: glib/gkeyfile.c:4464
-#, fuzzy, c-format
-#| msgid "Integer value '%s' out of range"
-msgid "Integer value “%s” out of range"
+#: ../glib/gkeyfile.c:4260
+#, c-format
+msgid "Integer value '%s' out of range"
 msgstr "Brojčana vrijednost '%s' je izvan opsega"
 
-#: glib/gkeyfile.c:4497
-#, fuzzy, c-format
-#| msgid "Value '%s' cannot be interpreted as a number."
-msgid "Value “%s” cannot be interpreted as a float number."
-msgstr "Vrijednost '%s' ne može biti protumačena kao broj."
+#: ../glib/gkeyfile.c:4293
+#, c-format
+msgid "Value '%s' cannot be interpreted as a float number."
+msgstr ""
 
-#: glib/gkeyfile.c:4536
-#, fuzzy, c-format
-#| msgid "Value '%s' cannot be interpreted as a boolean."
-msgid "Value “%s” cannot be interpreted as a boolean."
+#: ../glib/gkeyfile.c:4317
+#, c-format
+msgid "Value '%s' cannot be interpreted as a boolean."
 msgstr "Vrijednost '%s' ne može biti protumačena kao boolean."
 
-#: glib/gmappedfile.c:129
-#, fuzzy, c-format
-#| msgid "Failed to get attributes of file '%s': fstat() failed: %s"
-msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
-msgstr "Greška pri dohvatu atributa datoteke '%s': fstat() nije uspio: %s"
+#: ../glib/gmappedfile.c:131
+#, c-format
+msgid "Failed to get attributes of file '%s%s%s%s': fstat() failed: %s"
+msgstr ""
 
-#: glib/gmappedfile.c:195
+#: ../glib/gmappedfile.c:197
 #, c-format
 msgid "Failed to map %s%s%s%s: mmap() failed: %s"
 msgstr ""
 
-#: glib/gmappedfile.c:262
-#, fuzzy, c-format
-#| msgid "Failed to open file '%s': open() failed: %s"
-msgid "Failed to open file “%s”: open() failed: %s"
+#: ../glib/gmappedfile.c:263
+#, c-format
+msgid "Failed to open file '%s': open() failed: %s"
 msgstr "Greška pri otvaranju datoteke '%s': open() nije uspio: %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: ../glib/gmarkup.c:397 ../glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr ""
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: ../glib/gmarkup.c:461 ../glib/gmarkup.c:544
 #, c-format
-msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
+msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
 msgstr ""
 
-#: glib/gmarkup.c:473
+#: ../glib/gmarkup.c:430
 #, c-format
-msgid "“%s” is not a valid name"
+msgid "'%s' is not a valid name "
 msgstr ""
 
-#: glib/gmarkup.c:489
+#: ../glib/gmarkup.c:446
 #, c-format
-msgid "“%s” is not a valid name: “%c”"
+msgid "'%s' is not a valid name: '%c' "
 msgstr ""
 
-#: glib/gmarkup.c:613
+#: ../glib/gmarkup.c:598
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Greška na retku %d: %s"
 
-#: glib/gmarkup.c:690
-#, fuzzy, c-format
-#| msgid ""
-#| "Failed to parse '%-.*s', which should have been a digit inside a "
-#| "character reference (&#234; for example) - perhaps the digit is too large"
+#: ../glib/gmarkup.c:682
+#, c-format
 msgid ""
-"Failed to parse “%-.*s”, which should have been a digit inside a character "
-"reference (&#234; for example)  perhaps the digit is too large"
+"Failed to parse '%-.*s', which should have been a digit inside a character "
+"reference (&#234; for example) - perhaps the digit is too large"
 msgstr ""
 "Nisam uspio izanalizirati '%-.*s', koji je trebao biti broj unutar znakovne "
 "reference (npr. &#234;) - možda je broj prevelik"
 
-#: glib/gmarkup.c:702
-#, fuzzy
-#| msgid ""
-#| "Character reference did not end with a semicolon; most likely you used an "
-#| "ampersand character without intending to start an entity - escape "
-#| "ampersand as &amp;"
+#: ../glib/gmarkup.c:694
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
-"ampersand character without intending to start an entity  escape ampersand "
+"ampersand character without intending to start an entity - escape ampersand "
 "as &amp;"
 msgstr ""
 "Znakovna referenca nije završila sa točka-zarezom; vjerojatno ste koristitli "
 "ampersand znakbez namjere da počnete entitet - escapirajte ampersand kao "
 "&amp;"
 
-#: glib/gmarkup.c:728
-#, fuzzy, c-format
-#| msgid "Character reference '%-.*s' does not encode a permitted character"
-msgid "Character reference “%-.*s” does not encode a permitted character"
+#: ../glib/gmarkup.c:720
+#, c-format
+msgid "Character reference '%-.*s' does not encode a permitted character"
 msgstr "Znakovna referenca '%-.*s' ne kodira dozvoljeni znak"
 
-#: glib/gmarkup.c:766
-#, fuzzy
-#| msgid ""
-#| "Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+#: ../glib/gmarkup.c:758
 msgid ""
-"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+"Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
 msgstr ""
 "Prazan entitet '&;' ; ispravni entiteti su: &amp; &quot; &lt; &gt; &apos;"
 
-#: glib/gmarkup.c:774
+#: ../glib/gmarkup.c:766
 #, c-format
-msgid "Entity name “%-.*s” is not known"
+msgid "Entity name '%-.*s' is not known"
 msgstr ""
 
-#: glib/gmarkup.c:779
-#, fuzzy
-#| msgid ""
-#| "Entity did not end with a semicolon; most likely you used an ampersand "
-#| "character without intending to start an entity - escape ampersand as &amp;"
+#: ../glib/gmarkup.c:771
 msgid ""
 "Entity did not end with a semicolon; most likely you used an ampersand "
-"character without intending to start an entity  escape ampersand as &amp;"
+"character without intending to start an entity - escape ampersand as &amp;"
 msgstr ""
 "Entitet nije zavšio sa točka-zarezom; vjerojatno ste koristili ampersand "
 "znak bez namjere da započnete entitet - escapirajte ampersand sa &amp;"
 
-#: glib/gmarkup.c:1193
+#: ../glib/gmarkup.c:1177
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Dokument mora početi sa elementom(npr. <book>)"
 
-#: glib/gmarkup.c:1233
-#, fuzzy, c-format
-#| msgid ""
-#| "'%s' is not a valid character following a '<' character; it may not begin "
-#| "an element name"
+#: ../glib/gmarkup.c:1217
+#, c-format
 msgid ""
-"“%s” is not a valid character following a “<” character; it may not begin an "
+"'%s' is not a valid character following a '<' character; it may not begin an "
 "element name"
 msgstr ""
 "'%s' nije dozvoljeni znak koji smije slijediti nakon '<' znaka; ne smije "
 "započeti ime elementa"
 
-#: glib/gmarkup.c:1276
-#, fuzzy, c-format
-#| msgid ""
-#| "Odd character '%s', expected a '=' after attribute name '%s' of element "
-#| "'%s'"
+#: ../glib/gmarkup.c:1259
+#, c-format
 msgid ""
-"Odd character “%s”, expected a “>” character to end the empty-element tag "
-"“%s”"
+"Odd character '%s', expected a '>' character to end the empty-element tag "
+"'%s'"
 msgstr ""
-"Neparan znak '%s', očekuje se '=' poslije imena atributa '%s' elementa '%s'"
 
-#: glib/gmarkup.c:1346
+#: ../glib/gmarkup.c:1340
 #, c-format
-msgid "Too many attributes in element “%s”"
-msgstr ""
-
-#: glib/gmarkup.c:1366
-#, fuzzy, c-format
-#| msgid ""
-#| "Odd character '%s', expected a '=' after attribute name '%s' of element "
-#| "'%s'"
 msgid ""
-"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
+"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
 msgstr ""
 "Neparan znak '%s', očekuje se '=' poslije imena atributa '%s' elementa '%s'"
 
-#: glib/gmarkup.c:1408
-#, fuzzy, c-format
-#| msgid ""
-#| "Odd character '%s', expected a '>' or '/' character to end the start tag "
-#| "of element '%s', or optionally an attribute; perhaps you used an invalid "
-#| "character in an attribute name"
+#: ../glib/gmarkup.c:1381
+#, c-format
 msgid ""
-"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
-"element “%s”, or optionally an attribute; perhaps you used an invalid "
+"Odd character '%s', expected a '>' or '/' character to end the start tag of "
+"element '%s', or optionally an attribute; perhaps you used an invalid "
 "character in an attribute name"
 msgstr ""
 "Čudan znak '%s', očekuje se da znak '>' ili '/' završe početak taga elementa "
 "'%s', ili opcionalno atributa; možda ste koristili neispravan znaku imenu "
 "atributa"
 
-#: glib/gmarkup.c:1453
-#, fuzzy, c-format
-#| msgid ""
-#| "Odd character '%s', expected an open quote mark after the equals sign "
-#| "when giving value for attribute '%s' of element '%s'"
+#: ../glib/gmarkup.c:1425
+#, c-format
 msgid ""
-"Odd character “%s”, expected an open quote mark after the equals sign when "
-"giving value for attribute “%s” of element “%s”"
+"Odd character '%s', expected an open quote mark after the equals sign when "
+"giving value for attribute '%s' of element '%s'"
 msgstr ""
 "Čudan znak '%s', očekuje se otvoreni navodnik nakon znaka jednakostikada se "
 "daje vrijednost atributa '%s' elementa '%s'"
 
-#: glib/gmarkup.c:1587
-#, fuzzy, c-format
-#| msgid ""
-#| "'%s' is not a valid character following the characters '</'; '%s' may not "
-#| "begin an element name"
+#: ../glib/gmarkup.c:1558
+#, c-format
 msgid ""
-"“%s” is not a valid character following the characters “</”; “%s” may not "
+"'%s' is not a valid character following the characters '</'; '%s' may not "
 "begin an element name"
 msgstr ""
 "'%s' nije znak koji smije slijediti '</'; '%s' ne smije započetiime elementa"
 
-#: glib/gmarkup.c:1625
-#, fuzzy, c-format
-#| msgid ""
-#| "'%s' is not a valid character following the close element name '%s'; the "
-#| "allowed character is '>'"
+#: ../glib/gmarkup.c:1594
+#, c-format
 msgid ""
-"“%s” is not a valid character following the close element name “%s”; the "
-"allowed character is “>”"
+"'%s' is not a valid character following the close element name '%s'; the "
+"allowed character is '>'"
 msgstr ""
 "'%s' nije ispravan znak koji može slijediti nakon imena završnog elementa "
 "'%s'; dozvoljeni znak je '>'"
 
-#: glib/gmarkup.c:1637
-#, fuzzy, c-format
-#| msgid "Element '%s' was closed, no element is currently open"
-msgid "Element “%s” was closed, no element is currently open"
+#: ../glib/gmarkup.c:1605
+#, c-format
+msgid "Element '%s' was closed, no element is currently open"
 msgstr "Element '%s' je zatvoren, trenutno nema otvorenog elementa"
 
-#: glib/gmarkup.c:1646
-#, fuzzy, c-format
-#| msgid "Element '%s' was closed, but the currently open element is '%s'"
-msgid "Element “%s” was closed, but the currently open element is “%s”"
+#: ../glib/gmarkup.c:1614
+#, c-format
+msgid "Element '%s' was closed, but the currently open element is '%s'"
 msgstr "Element '%s' je zatvoren, ali trenutno otvoreni element je '%s'"
 
-#: glib/gmarkup.c:1799
+#: ../glib/gmarkup.c:1767
 msgid "Document was empty or contained only whitespace"
 msgstr "Dokument je bio prazan ili je sadržavao samo znakove prazne znakove"
 
-#: glib/gmarkup.c:1813
-#, fuzzy
-#| msgid "Document ended unexpectedly just after an open angle bracket '<'"
-msgid "Document ended unexpectedly just after an open angle bracket “<”"
+#: ../glib/gmarkup.c:1781
+msgid "Document ended unexpectedly just after an open angle bracket '<'"
 msgstr "Dokument je završio neočekivano nakon otvaranja zagrade '<'"
 
-#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
-#, fuzzy, c-format
-#| msgid ""
-#| "Document ended unexpectedly with elements still open - '%s' was the last "
-#| "element opened"
+#: ../glib/gmarkup.c:1789 ../glib/gmarkup.c:1834
+#, c-format
 msgid ""
-"Document ended unexpectedly with elements still open — “%s” was the last "
+"Document ended unexpectedly with elements still open - '%s' was the last "
 "element opened"
 msgstr ""
 "Dokument je završio neočekivano sa još uvijek otvorenim elementima- '%s' je "
 "bio zadnjiotvoreni element"
 
-#: glib/gmarkup.c:1829
+#: ../glib/gmarkup.c:1797
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5061,19 +3432,19 @@ msgstr ""
 "Dokument je završio neočekivano, očekivalo se da zatvorena šiljata "
 "zagradazavrši tag<%s/>"
 
-#: glib/gmarkup.c:1835
+#: ../glib/gmarkup.c:1803
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Dokument je završio neočekivano unutar imena elementa"
 
-#: glib/gmarkup.c:1841
+#: ../glib/gmarkup.c:1809
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Dokument je završio neočekivano unutar imena atributa"
 
-#: glib/gmarkup.c:1846
+#: ../glib/gmarkup.c:1814
 msgid "Document ended unexpectedly inside an element-opening tag."
-msgstr "Dokument je završio neočekivano unutar oznake otvaranja elementa."
+msgstr "Dokument je završio neočekivano unutar taga koji započinje element"
 
-#: glib/gmarkup.c:1852
+#: ../glib/gmarkup.c:1820
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5081,604 +3452,504 @@ msgstr ""
 "Dokument je završio neočekivano nakon što je znak jednakosti slijedioime "
 "atributa; nema vrijednosti atributa"
 
-#: glib/gmarkup.c:1859
+#: ../glib/gmarkup.c:1827
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Dokument je završio neočekivano unutar vrijednosti atributa"
 
-#: glib/gmarkup.c:1876
+#: ../glib/gmarkup.c:1843
 #, c-format
-msgid "Document ended unexpectedly inside the close tag for element “%s”"
+msgid "Document ended unexpectedly inside the close tag for element '%s'"
 msgstr ""
-"Dokument je završio neočekivano unutar oznake zatvaranja za element “%s”"
+"Dokument je završio neočekivano unutar taga koji završava za element '%s'"
 
-#: glib/gmarkup.c:1880
+#: ../glib/gmarkup.c:1849
 msgid ""
-"Document ended unexpectedly inside the close tag for an unopened element"
-msgstr ""
-"Dokument je završio neočekivano unutar oznake zatvaranja za neotvoreni "
-"element"
-
-#: glib/gmarkup.c:1886
-msgid "Document ended unexpectedly inside a comment or processing instruction"
+"Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "Dokument je završio neočekivano unutar komentara ili izvršavanja instrukcije"
 
-#: glib/goption.c:873
-msgid "[OPTION…]"
-msgstr "[MOGUĆNOST...]"
+#: ../glib/goption.c:754
+msgid "Usage:"
+msgstr "Uporaba:"
+
+#: ../glib/goption.c:754
+msgid "[OPTION...]"
+msgstr "[OPTION...]"
 
-#: glib/goption.c:989
+#: ../glib/goption.c:870
 msgid "Help Options:"
-msgstr "Mogućnosti pomoći:"
+msgstr "Opcije pomoći:"
 
-#: glib/goption.c:990
+#: ../glib/goption.c:871
 msgid "Show help options"
-msgstr "Prikaži mogućnosti pomoći"
+msgstr "Prikaži opcije pomoći"
 
-#: glib/goption.c:996
+#: ../glib/goption.c:877
 msgid "Show all help options"
-msgstr "Prikaži sve mogućnosti pomoći"
+msgstr "Prikaži sve opcije pomoći"
 
-#: glib/goption.c:1059
+#: ../glib/goption.c:939
 msgid "Application Options:"
-msgstr "Mogućnosti aplikacije:"
+msgstr "Prikaži sve opcije pomoći"
 
-#: glib/goption.c:1061
-msgid "Options:"
-msgstr "Mogućnosti:"
-
-#: glib/goption.c:1125 glib/goption.c:1195
-#, fuzzy, c-format
-#| msgid "Cannot parse integer value '%s' for %s"
-msgid "Cannot parse integer value “%s” for %s"
+#: ../glib/goption.c:1003 ../glib/goption.c:1073
+#, c-format
+msgid "Cannot parse integer value '%s' for %s"
 msgstr "Analiza brojčane vrijednosti '%s' za %s nije uspjela"
 
-#: glib/goption.c:1135 glib/goption.c:1203
-#, fuzzy, c-format
-#| msgid "Integer value '%s' for %s out of range"
-msgid "Integer value “%s” for %s out of range"
+#: ../glib/goption.c:1013 ../glib/goption.c:1081
+#, c-format
+msgid "Integer value '%s' for %s out of range"
 msgstr "Brojčana vrijednost '%s' za '%s' izvan opsega"
 
-#: glib/goption.c:1160
-#, fuzzy, c-format
-#| msgid "Cannot parse integer value '%s' for %s"
-msgid "Cannot parse double value “%s” for %s"
-msgstr "Analiza brojčane vrijednosti '%s' za %s nije uspjela"
+#: ../glib/goption.c:1038
+#, c-format
+msgid "Cannot parse double value '%s' for %s"
+msgstr ""
 
-#: glib/goption.c:1168
-#, fuzzy, c-format
-#| msgid "Integer value '%s' for %s out of range"
-msgid "Double value “%s” for %s out of range"
-msgstr "Brojčana vrijednost '%s' za '%s' izvan opsega"
+#: ../glib/goption.c:1046
+#, c-format
+msgid "Double value '%s' for %s out of range"
+msgstr ""
 
-#: glib/goption.c:1460 glib/goption.c:1539
+#: ../glib/goption.c:1309 ../glib/goption.c:1388
 #, c-format
 msgid "Error parsing option %s"
-msgstr "Greška obrade mogućnosti %s"
+msgstr "Greška prilikom analize opcije %s"
 
-#: glib/goption.c:1570 glib/goption.c:1683
+#: ../glib/goption.c:1419 ../glib/goption.c:1532
 #, c-format
 msgid "Missing argument for %s"
 msgstr "Nedostaje parametar za %s"
 
-#: glib/goption.c:2194
+#: ../glib/goption.c:1985
 #, c-format
 msgid "Unknown option %s"
-msgstr "Nepoznata mogućnost %s"
+msgstr "Nepoznata opcija %s"
 
-#: glib/gregex.c:257
+#: ../glib/gregex.c:257
 msgid "corrupted object"
-msgstr "oštećeni objekt"
+msgstr ""
 
-#: glib/gregex.c:259
+#: ../glib/gregex.c:259
 msgid "internal error or corrupted object"
-msgstr "unutarnja greška ili oštećeni objekt"
+msgstr ""
 
-#: glib/gregex.c:261
+#: ../glib/gregex.c:261
 msgid "out of memory"
-msgstr "ponestalo memorije"
+msgstr ""
 
-#: glib/gregex.c:266
+#: ../glib/gregex.c:266
 msgid "backtracking limit reached"
 msgstr ""
 
-#: glib/gregex.c:278 glib/gregex.c:286
+#: ../glib/gregex.c:278 ../glib/gregex.c:286
 msgid "the pattern contains items not supported for partial matching"
 msgstr ""
 
-#: glib/gregex.c:280
-msgid "internal error"
-msgstr ""
-
-#: glib/gregex.c:288
+#: ../glib/gregex.c:288
 msgid "back references as conditions are not supported for partial matching"
 msgstr ""
 
-#: glib/gregex.c:297
+#: ../glib/gregex.c:297
 msgid "recursion limit reached"
 msgstr ""
 
-#: glib/gregex.c:299
+#: ../glib/gregex.c:232
+msgid "workspace limit for empty substrings reached"
+msgstr ""
+
+#: ../glib/gregex.c:299
 msgid "invalid combination of newline flags"
 msgstr ""
 
-#: glib/gregex.c:301
+#: ../glib/gregex.c:301
 msgid "bad offset"
 msgstr ""
 
-#: glib/gregex.c:303
+#: ../glib/gregex.c:303
 msgid "short utf8"
 msgstr ""
 
-#: glib/gregex.c:305
-msgid "recursion loop"
-msgstr ""
-
-#: glib/gregex.c:309
+#: ../glib/gregex.c:309
 msgid "unknown error"
-msgstr "nepoznata greška"
+msgstr ""
 
-#: glib/gregex.c:329
+#: ../glib/gregex.c:329
 msgid "\\ at end of pattern"
 msgstr ""
 
-#: glib/gregex.c:332
+#: ../glib/gregex.c:332
 msgid "\\c at end of pattern"
 msgstr ""
 
-#: glib/gregex.c:335
-msgid "unrecognized character following \\"
+#: ../glib/gregex.c:268
+msgid "unrecognized character follows \\"
 msgstr ""
 
-#: glib/gregex.c:338
+#: ../glib/gregex.c:275
+msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here"
+msgstr ""
+
+#: ../glib/gregex.c:338
 msgid "numbers out of order in {} quantifier"
 msgstr ""
 
-#: glib/gregex.c:341
+#: ../glib/gregex.c:341
 msgid "number too big in {} quantifier"
 msgstr ""
 
-#: glib/gregex.c:344
+#: ../glib/gregex.c:344
 msgid "missing terminating ] for character class"
 msgstr ""
 
-#: glib/gregex.c:347
+#: ../glib/gregex.c:347
 msgid "invalid escape sequence in character class"
 msgstr ""
 
-#: glib/gregex.c:350
+#: ../glib/gregex.c:350
 msgid "range out of order in character class"
 msgstr ""
 
-#: glib/gregex.c:353
+#: ../glib/gregex.c:353
 msgid "nothing to repeat"
 msgstr ""
 
-#: glib/gregex.c:357
-msgid "unexpected repeat"
+#: ../glib/gregex.c:296
+msgid "unrecognized character after (?"
 msgstr ""
 
-#: glib/gregex.c:360
-msgid "unrecognized character after (? or (?-"
+#: ../glib/gregex.c:390
+msgid "unrecognized character after (?<"
 msgstr ""
 
-#: glib/gregex.c:363
-msgid "POSIX named classes are supported only within a class"
+#: ../glib/gregex.c:438
+msgid "unrecognized character after (?P"
 msgstr ""
 
-#: glib/gregex.c:366
-msgid "missing terminating )"
+#: ../glib/gregex.c:363
+msgid "POSIX named classes are supported only within a class"
 msgstr ""
 
-#: glib/gregex.c:369
-msgid "reference to non-existent subpattern"
+#: ../glib/gregex.c:366
+msgid "missing terminating )"
 msgstr ""
 
-#: glib/gregex.c:372
-msgid "missing ) after comment"
+#: ../glib/gregex.c:382
+msgid ") without opening ("
 msgstr ""
 
-#: glib/gregex.c:375
-msgid "regular expression is too large"
+#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
+#. * sequences here, '(?-54' would be an example for the second group.
+#. 
+#: ../glib/gregex.c:409
+msgid "(?R or (?[+-]digits must be followed by )"
 msgstr ""
 
-#: glib/gregex.c:378
-msgid "failed to get memory"
+#: ../glib/gregex.c:369
+msgid "reference to non-existent subpattern"
 msgstr ""
 
-#: glib/gregex.c:382
-msgid ") without opening ("
+#: ../glib/gregex.c:372
+msgid "missing ) after comment"
 msgstr ""
 
-#: glib/gregex.c:386
-msgid "code overflow"
+#: ../glib/gregex.c:330
+msgid "regular expression too large"
 msgstr ""
 
-#: glib/gregex.c:390
-msgid "unrecognized character after (?<"
+#: ../glib/gregex.c:378
+msgid "failed to get memory"
 msgstr ""
 
-#: glib/gregex.c:393
+#: ../glib/gregex.c:393
 msgid "lookbehind assertion is not fixed length"
 msgstr ""
 
-#: glib/gregex.c:396
+#: ../glib/gregex.c:396
 msgid "malformed number or name after (?("
 msgstr ""
 
-#: glib/gregex.c:399
+#: ../glib/gregex.c:399
 msgid "conditional group contains more than two branches"
 msgstr ""
 
-#: glib/gregex.c:402
+#: ../glib/gregex.c:402
 msgid "assertion expected after (?("
 msgstr ""
 
-#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
-#. * sequences here, '(?-54' would be an example for the second group.
-#.
-#: glib/gregex.c:409
-msgid "(?R or (?[+-]digits must be followed by )"
-msgstr ""
-
-#: glib/gregex.c:412
+#: ../glib/gregex.c:412
 msgid "unknown POSIX class name"
 msgstr ""
 
-#: glib/gregex.c:415
+#: ../glib/gregex.c:415
 msgid "POSIX collating elements are not supported"
 msgstr ""
 
-#: glib/gregex.c:418
+#: ../glib/gregex.c:418
 msgid "character value in \\x{...} sequence is too large"
 msgstr ""
 
-#: glib/gregex.c:421
+#: ../glib/gregex.c:421
 msgid "invalid condition (?(0)"
 msgstr ""
 
-#: glib/gregex.c:424
+#: ../glib/gregex.c:424
 msgid "\\C not allowed in lookbehind assertion"
 msgstr ""
 
-#: glib/gregex.c:431
-msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-msgstr ""
-
-#: glib/gregex.c:434
+#: ../glib/gregex.c:434
 msgid "recursive call could loop indefinitely"
 msgstr ""
 
-#: glib/gregex.c:438
-msgid "unrecognized character after (?P"
-msgstr ""
-
-#: glib/gregex.c:441
+#: ../glib/gregex.c:441
 msgid "missing terminator in subpattern name"
 msgstr ""
 
-#: glib/gregex.c:444
+#: ../glib/gregex.c:444
 msgid "two named subpatterns have the same name"
 msgstr ""
 
-#: glib/gregex.c:447
+#: ../glib/gregex.c:447
 msgid "malformed \\P or \\p sequence"
 msgstr ""
 
-#: glib/gregex.c:450
+#: ../glib/gregex.c:450
 msgid "unknown property name after \\P or \\p"
 msgstr ""
 
-#: glib/gregex.c:453
+#: ../glib/gregex.c:453
 msgid "subpattern name is too long (maximum 32 characters)"
 msgstr ""
 
-#: glib/gregex.c:456
+#: ../glib/gregex.c:456
 msgid "too many named subpatterns (maximum 10,000)"
 msgstr ""
 
-#: glib/gregex.c:459
+#: ../glib/gregex.c:459
 msgid "octal value is greater than \\377"
 msgstr ""
 
-#: glib/gregex.c:463
-msgid "overran compiling workspace"
-msgstr ""
-
-#: glib/gregex.c:467
-msgid "previously-checked referenced subpattern not found"
+#: ../glib/gregex.c:470
+msgid "DEFINE group contains more than one branch"
 msgstr ""
 
-#: glib/gregex.c:470
-msgid "DEFINE group contains more than one branch"
+#: ../glib/gregex.c:390
+msgid "repeating a DEFINE group is not allowed"
 msgstr ""
 
-#: glib/gregex.c:473
+#: ../glib/gregex.c:473
 msgid "inconsistent NEWLINE options"
 msgstr ""
 
-#: glib/gregex.c:476
+#: ../glib/gregex.c:396
 msgid ""
-"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
-"or by a plain number"
-msgstr ""
-
-#: glib/gregex.c:480
-msgid "a numbered reference must not be zero"
-msgstr ""
-
-#: glib/gregex.c:483
-msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
-msgstr ""
-
-#: glib/gregex.c:486
-msgid "(*VERB) not recognized"
-msgstr ""
-
-#: glib/gregex.c:489
-msgid "number is too big"
-msgstr ""
-
-#: glib/gregex.c:492
-msgid "missing subpattern name after (?&"
+"\\g is not followed by a braced name or an optionally braced non-zero number"
 msgstr ""
 
-#: glib/gregex.c:495
-msgid "digit expected after (?+"
-msgstr ""
-
-#: glib/gregex.c:498
-msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr ""
-
-#: glib/gregex.c:501
-msgid "different names for subpatterns of the same number are not allowed"
-msgstr ""
-
-#: glib/gregex.c:504
-msgid "(*MARK) must have an argument"
-msgstr ""
-
-#: glib/gregex.c:507
-msgid "\\c must be followed by an ASCII character"
-msgstr ""
-
-#: glib/gregex.c:510
-msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
-msgstr ""
-
-#: glib/gregex.c:513
-msgid "\\N is not supported in a class"
+#: ../glib/gregex.c:357
+msgid "unexpected repeat"
 msgstr ""
 
-#: glib/gregex.c:516
-msgid "too many forward references"
+#: ../glib/gregex.c:386
+msgid "code overflow"
 msgstr ""
 
-#: glib/gregex.c:519
-msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
+#: ../glib/gregex.c:463
+msgid "overran compiling workspace"
 msgstr ""
 
-#: glib/gregex.c:522
-msgid "character value in \\u.... sequence is too large"
+#: ../glib/gregex.c:467
+msgid "previously-checked referenced subpattern not found"
 msgstr ""
 
-#: glib/gregex.c:745 glib/gregex.c:1983
+#: ../glib/gregex.c:745 ../glib/gregex.c:1914
 #, c-format
 msgid "Error while matching regular expression %s: %s"
 msgstr ""
 
-#: glib/gregex.c:1316
+#: ../glib/gregex.c:1311
 msgid "PCRE library is compiled without UTF8 support"
 msgstr ""
 
-#: glib/gregex.c:1320
+#: ../glib/gregex.c:1315
 msgid "PCRE library is compiled without UTF8 properties support"
 msgstr ""
 
-#: glib/gregex.c:1328
-msgid "PCRE library is compiled with incompatible options"
-msgstr ""
-
-#: glib/gregex.c:1357
+#: ../glib/gregex.c:1382
 #, c-format
-msgid "Error while optimizing regular expression %s: %s"
+msgid "Error while compiling regular expression %s at char %d: %s"
 msgstr ""
 
-#: glib/gregex.c:1437
+#: ../glib/gregex.c:1424
 #, c-format
-msgid "Error while compiling regular expression %s at char %d: %s"
+msgid "Error while optimizing regular expression %s: %s"
 msgstr ""
 
-#: glib/gregex.c:2419
-msgid "hexadecimal digit or “}” expected"
+#: ../glib/gregex.c:2346
+msgid "hexadecimal digit or '}' expected"
 msgstr ""
 
-#: glib/gregex.c:2435
+#: ../glib/gregex.c:2362
 msgid "hexadecimal digit expected"
 msgstr ""
 
-#: glib/gregex.c:2475
-msgid "missing “<” in symbolic reference"
+#: ../glib/gregex.c:2402
+msgid "missing '<' in symbolic reference"
 msgstr ""
 
-#: glib/gregex.c:2484
+#: ../glib/gregex.c:2411
 msgid "unfinished symbolic reference"
 msgstr ""
 
-#: glib/gregex.c:2491
+#: ../glib/gregex.c:2418
 msgid "zero-length symbolic reference"
 msgstr ""
 
-#: glib/gregex.c:2502
+#: ../glib/gregex.c:2429
 msgid "digit expected"
 msgstr ""
 
-#: glib/gregex.c:2520
+#: ../glib/gregex.c:2447
 msgid "illegal symbolic reference"
 msgstr ""
 
-#: glib/gregex.c:2583
-msgid "stray final “\\”"
+#: ../glib/gregex.c:2509
+msgid "stray final '\\'"
 msgstr ""
 
-#: glib/gregex.c:2587
+#: ../glib/gregex.c:2513
 msgid "unknown escape sequence"
 msgstr ""
 
-#: glib/gregex.c:2597
+#: ../glib/gregex.c:2523
 #, c-format
-msgid "Error while parsing replacement text “%s” at char %lu: %s"
+msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
 msgstr ""
 
-#: glib/gshell.c:94
-msgid "Quoted text doesnt begin with a quotation mark"
-msgstr "Citirani tekst ne počinje sa navodnikom"
+#: ../glib/gshell.c:88
+msgid "Quoted text doesn't begin with a quotation mark"
+msgstr "Tekst pod navodnicima ne počinje sa navodnikom"
 
-#: glib/gshell.c:184
+#: ../glib/gshell.c:178
 msgid "Unmatched quotation mark in command line or other shell-quoted text"
-msgstr "Navodnik nije uparen u naredbenom redku ili drugom tekstu ljuske"
+msgstr "Navodnik nije uparen u naredbenoj liniji"
 
-#: glib/gshell.c:580
+#: ../glib/gshell.c:574
 #, c-format
-msgid "Text ended just after a “\\” character. (The text was “%s”)"
-msgstr "Tekst je završio nakon “\\” znaka (Tekst je bio '%s')"
+msgid "Text ended just after a '\\' character. (The text was '%s')"
+msgstr "Tekst je završio nakon '\\' znaka (Tekst je bio '%s')"
 
-#: glib/gshell.c:587
+#: ../glib/gshell.c:581
 #, c-format
-msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
+msgid ""
+"Text ended before matching quote was found for %c. (The text was '%s')"
 msgstr ""
 "Tekst je završio prije nego što je nađen završni navodnik %c. (Tekst je bio "
-"“%s”)"
+"'%s')"
 
-#: glib/gshell.c:599
+#: ../glib/gshell.c:593
 msgid "Text was empty (or contained only whitespace)"
 msgstr "Tekst je bio prazan (ili je sadržavao samo prazne znakove)"
 
-#: glib/gspawn.c:323
+#: ../glib/gspawn.c:201
 #, c-format
 msgid "Failed to read data from child process (%s)"
-msgstr "Neuspješno čitanje podataka iz podređenog procesa (%s)"
+msgstr "Neuspjeh u čitanju podataka od procesa djeteta(%s)"
 
-#: glib/gspawn.c:468
+#: ../glib/gspawn.c:345
 #, c-format
-msgid "Unexpected error in reading data from a child process (%s)"
-msgstr "Neočekivana greška u čitanju podataka podređenog procesa (%s)"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr "Neočekivana greška u select() čitanju podataka procesa djeteta (%s)"
 
-#: glib/gspawn.c:553
+#: ../glib/gspawn.c:430
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Neočekivana greška u waitpid() (%s)"
 
-#: glib/gspawn.c:1061 glib/gspawn-win32.c:1329
-#, c-format
-msgid "Child process exited with code %ld"
-msgstr ""
-
-#: glib/gspawn.c:1069
-#, c-format
-msgid "Child process killed by signal %ld"
-msgstr ""
-
-#: glib/gspawn.c:1076
-#, c-format
-msgid "Child process stopped by signal %ld"
-msgstr ""
-
-#: glib/gspawn.c:1083
-#, c-format
-msgid "Child process exited abnormally"
-msgstr ""
-
-#: glib/gspawn.c:1532 glib/gspawn-win32.c:350 glib/gspawn-win32.c:358
+#: ../glib/gspawn.c:1277 ../glib/gspawn-win32.c:339 ../glib/gspawn-win32.c:347
 #, c-format
 msgid "Failed to read from child pipe (%s)"
-msgstr "Neuspjelo čitanje iz podređenog slivnika (%s)"
-
-#: glib/gspawn.c:1788
-#, fuzzy, c-format
-#| msgid "Failed to fork child process (%s)"
-msgid "Failed to spawn child process “%s” (%s)"
-msgstr "Nisam uspio pokrenuti proces dijete (%s)"
+msgstr "Nisam uspio čitati iz cjevovoda djeteta (%s)"
 
-#: glib/gspawn.c:1871
+#: ../glib/gspawn.c:1347
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Pokretanje nije uspio (%s)"
 
-#: glib/gspawn.c:2026 glib/gspawn-win32.c:381
-#, fuzzy, c-format
-#| msgid "Failed to change to directory '%s' (%s)"
-msgid "Failed to change to directory “%s” (%s)"
+#: ../glib/gspawn.c:1496 ../glib/gspawn-win32.c:370
+#, c-format
+msgid "Failed to change to directory '%s' (%s)"
 msgstr "Nisam mogao promijeniti putanju u mapu '%s' (%s)"
 
-#: glib/gspawn.c:2036
-#, fuzzy, c-format
-#| msgid "Failed to execute child process \"%s\" (%s)"
-msgid "Failed to execute child process “%s” (%s)"
+#: ../glib/gspawn.c:1506
+#, c-format
+msgid "Failed to execute child process \"%s\" (%s)"
 msgstr "Neuspjeh u izvršavanju procesa djeteta \"%s\" (%s)"
 
-#: glib/gspawn.c:2046
+#: ../glib/gspawn.c:1516
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Nisam uspio preusmjeriti izlaz ili ulaz procesa djeteta (%s)"
 
-#: glib/gspawn.c:2055
+#: ../glib/gspawn.c:1525
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Nisam uspio pokrenuti proces dijete (%s)"
 
-#: glib/gspawn.c:2063
-#, fuzzy, c-format
-#| msgid "Unknown error executing child process \"%s\""
-msgid "Unknown error executing child process “%s”"
+#: ../glib/gspawn.c:1533
+#, c-format
+msgid "Unknown error executing child process \"%s\""
 msgstr "Nepoznata greška u izvršavanju procesa djeteta \"%s\""
 
-#: glib/gspawn.c:2087
+#: ../glib/gspawn.c:1557
 #, c-format
 msgid "Failed to read enough data from child pid pipe (%s)"
-msgstr "Neuspjeh u čitanju dovoljno podataka iz cjevovoda procesa djeteta (%s)"
-
-#: glib/gspawn-win32.c:294
-msgid "Failed to read data from child process"
-msgstr "Nisam uspio čitati podatke od procesa djeteta"
+msgstr ""
+"Neuspjeh u čitanju dovoljno podataka iz cjevovoda procesa djeteta (%s)"
 
-#: glib/gspawn-win32.c:311
+#: ../glib/gspawn-win32.c:300
 #, c-format
 msgid "Failed to create pipe for communicating with child process (%s)"
 msgstr "Ne mogu stvoriti cjevovod za komuniciranje sa procesom djetetom(%s)"
 
-#: glib/gspawn-win32.c:387 glib/gspawn-win32.c:392 glib/gspawn-win32.c:511
+#: ../glib/gspawn-win32.c:283
+msgid "Failed to read data from child process"
+msgstr "Nisam uspio čitati podatke od procesa djeteta"
+
+#: ../glib/gspawn-win32.c:376 ../glib/gspawn-win32.c:495
 #, c-format
 msgid "Failed to execute child process (%s)"
 msgstr "Nisam mogao izvesti proces dijete (%s)"
 
-#: glib/gspawn-win32.c:461
+#: ../glib/gspawn-win32.c:445
 #, c-format
 msgid "Invalid program name: %s"
 msgstr "Neispravno ime programa: %s"
 
-#: glib/gspawn-win32.c:471 glib/gspawn-win32.c:725
+#: ../glib/gspawn-win32.c:455 ../glib/gspawn-win32.c:722
+#: ../glib/gspawn-win32.c:1297
 #, c-format
 msgid "Invalid string in argument vector at %d: %s"
 msgstr "Neispravan niz znakova u argumentima na %d: %s"
 
-#: glib/gspawn-win32.c:482 glib/gspawn-win32.c:740
+#: ../glib/gspawn-win32.c:466 ../glib/gspawn-win32.c:737
+#: ../glib/gspawn-win32.c:1330
 #, c-format
 msgid "Invalid string in environment: %s"
 msgstr "Neispravan niz znakova u okružju: %s"
 
-#: glib/gspawn-win32.c:721
+#: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1278
 #, c-format
 msgid "Invalid working directory: %s"
 msgstr "Neispravni radni direktorij: %s"
 
-#: glib/gspawn-win32.c:783
+#: ../glib/gspawn-win32.c:783
 #, c-format
 msgid "Failed to execute helper program (%s)"
 msgstr "Neuspjelo izvršavanje pomoćnog programa (%s)"
 
-#: glib/gspawn-win32.c:1056
+#: ../glib/gspawn-win32.c:997
 msgid ""
 "Unexpected error in g_io_channel_win32_poll() reading data from a child "
 "process"
@@ -5686,312 +3957,196 @@ msgstr ""
 "Neočekivana greška u g_io_channel_win32_poll() čitajući podatke "
 "procesadjeteta"
 
-#: glib/gstrfuncs.c:3303 glib/gstrfuncs.c:3405
-msgid "Empty string is not a number"
-msgstr ""
+#: ../glib/gutf8.c:919
+msgid "Character out of range for UTF-8"
+msgstr "Znak je izvan raspona za UTF-8"
 
-#: glib/gstrfuncs.c:3327
-#, c-format
-msgid "“%s” is not a signed number"
-msgstr ""
+#: ../glib/gutf8.c:1022 ../glib/gutf8.c:1031 ../glib/gutf8.c:1163
+#: ../glib/gutf8.c:1172 ../glib/gutf8.c:1313 ../glib/gutf8.c:1411
+msgid "Invalid sequence in conversion input"
+msgstr "Neispravna sekvenca u pretvaranju ulaza"
 
-#: glib/gstrfuncs.c:3337 glib/gstrfuncs.c:3441
-#, c-format
-msgid "Number “%s” is out of bounds [%s, %s]"
-msgstr ""
+#: ../glib/gutf8.c:1324 ../glib/gutf8.c:1422
+msgid "Character out of range for UTF-16"
+msgstr "Znak je izvan raspona za UTF-16"
 
-#: glib/gstrfuncs.c:3431
+#: ../glib/gutils.c:2121 ../glib/gutils.c:2148 ../glib/gutils.c:2254
 #, c-format
-msgid "“%s” is not an unsigned number"
-msgstr ""
-
-#: glib/guri.c:313
-#, no-c-format
-msgid "Invalid %-encoding in URI"
-msgstr ""
-
-#: glib/guri.c:330
-msgid "Illegal character in URI"
-msgstr ""
-
-#: glib/guri.c:359
-msgid "Non-UTF-8 characters in URI"
-msgstr ""
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] ""
+msgstr[1] ""
 
-#: glib/guri.c:462
+#: ../glib/gutils.c:2127
 #, c-format
-msgid "Invalid IPv6 address ‘%.*s’ in URI"
+msgid "%.1f KiB"
 msgstr ""
 
-#: glib/guri.c:524
+#: ../glib/gutils.c:2129
 #, c-format
-msgid "Illegal encoded IP address ‘%.*s’ in URI"
+msgid "%.1f MiB"
 msgstr ""
 
-#: glib/guri.c:558 glib/guri.c:570
+#: ../glib/gutils.c:2132
 #, c-format
-msgid "Could not parse port ‘%.*s’ in URI"
+msgid "%.1f GiB"
 msgstr ""
 
-#: glib/guri.c:577
+#: ../glib/gutils.c:2135
 #, c-format
-msgid "Port ‘%.*s’ in URI is out of range"
+msgid "%.1f TiB"
 msgstr ""
 
-#: glib/guri.c:1055 glib/guri.c:1119
-#, c-format
-msgid "URI ‘%s’ is not an absolute URI"
-msgstr "URI '%s' nije apsolutni URI"
-
-#: glib/guri.c:1061
+#: ../glib/gutils.c:2138
 #, c-format
-msgid "URI ‘%s’ has no host component"
-msgstr ""
-
-#: glib/guri.c:1263
-msgid "URI is not absolute, and no base URI was provided"
-msgstr ""
-
-#: glib/guri.c:2019
-msgid "Missing ‘=’ and parameter value"
+msgid "%.1f PiB"
 msgstr ""
 
-#: glib/gutf8.c:817
-msgid "Failed to allocate memory"
-msgstr "Neuspjela preraspodjela memorije"
-
-#: glib/gutf8.c:950
-msgid "Character out of range for UTF-8"
-msgstr "Znak je izvan raspona za UTF-8"
-
-#: glib/gutf8.c:1051 glib/gutf8.c:1060 glib/gutf8.c:1190 glib/gutf8.c:1199
-#: glib/gutf8.c:1338 glib/gutf8.c:1435
-msgid "Invalid sequence in conversion input"
-msgstr "Neispravna sekvenca u pretvaranju ulaza"
-
-#: glib/gutf8.c:1349 glib/gutf8.c:1446
-msgid "Character out of range for UTF-16"
-msgstr "Znak je izvan raspona za UTF-16"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2756
-#, c-format
-msgid "%.1f kB"
-msgstr "%.1f kB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2758
-#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2760
-#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2762
-#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2764
+#: ../glib/gutils.c:2141
 #, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+msgid "%.1f EiB"
+msgstr ""
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2766
+#: ../glib/gutils.c:2154
 #, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+msgid "%.1f kB"
+msgstr ""
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2770
+#: ../glib/gutils.c:2157 ../glib/gutils.c:2272
 #, c-format
-msgid "%.1f KiB"
-msgstr "%.1f KiB"
+msgid "%.1f MB"
+msgstr ""
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2772
+#: ../glib/gutils.c:2160 ../glib/gutils.c:2277
 #, c-format
-msgid "%.1f MiB"
-msgstr "%.1f MiB"
+msgid "%.1f GB"
+msgstr ""
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2774
+#: ../glib/gutils.c:2162 ../glib/gutils.c:2282
 #, c-format
-msgid "%.1f GiB"
-msgstr "%.1f GiB"
+msgid "%.1f TB"
+msgstr ""
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2776
+#: ../glib/gutils.c:2165 ../glib/gutils.c:2287
 #, c-format
-msgid "%.1f TiB"
-msgstr "%.1f TiB"
+msgid "%.1f PB"
+msgstr ""
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2778
+#: ../glib/gutils.c:2168 ../glib/gutils.c:2292
 #, c-format
-msgid "%.1f PiB"
-msgstr "%.1f PiB"
+msgid "%.1f EB"
+msgstr ""
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2780
+#. Translators: the %s in "%s bytes" will always be replaced by a number.
+#: ../glib/gutils.c:2205
 #, c-format
-msgid "%.1f EiB"
-msgstr "%.1f EiB"
+msgid "%s byte"
+msgid_plural "%s bytes"
+msgstr[0] ""
+msgstr[1] ""
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2784
+#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
+#. * mean 1024 bytes.  I am aware that 'KB' is not correct, but it has been preserved for reasons of
+#. * compatibility.  Users will not see this string unless a program is using this deprecated function.
+#. * Please translate as literally as possible.
+#. 
+#: ../glib/gutils.c:2267
 #, c-format
-msgid "%.1f kb"
-msgstr "%.1f kb"
+msgid "%.1f KB"
+msgstr ""
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2786
-#, c-format
-msgid "%.1f Mb"
-msgstr "%.1f Mb"
+msgctxt "full month name with day"
+msgid "January"
+msgstr "siječnja"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2788
-#, c-format
-msgid "%.1f Gb"
-msgstr "%.1f Gb"
+msgctxt "full month name with day"
+msgid "February"
+msgstr "veljače"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2790
-#, c-format
-msgid "%.1f Tb"
-msgstr "%.1f Tb"
+msgctxt "full month name with day"
+msgid "March"
+msgstr "ožujka"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2792
-#, c-format
-msgid "%.1f Pb"
-msgstr "%.1f Pb"
+msgctxt "full month name with day"
+msgid "April"
+msgstr "travnja"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2794
-#, c-format
-msgid "%.1f Eb"
-msgstr "%.1f Eb"
+msgctxt "full month name with day"
+msgid "May"
+msgstr "svibnja"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2798
-#, c-format
-msgid "%.1f Kib"
-msgstr "%.1f Kib"
+msgctxt "full month name with day"
+msgid "June"
+msgstr "lipnja"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2800
-#, c-format
-msgid "%.1f Mib"
-msgstr "%.1f Mib"
+msgctxt "full month name with day"
+msgid "July"
+msgstr "srpnja"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2802
-#, c-format
-msgid "%.1f Gib"
-msgstr "%.1f Gib"
+msgctxt "full month name with day"
+msgid "August"
+msgstr "kolovoza"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2804
-#, c-format
-msgid "%.1f Tib"
-msgstr "%.1f Tib"
+msgctxt "full month name with day"
+msgid "September"
+msgstr "rujna"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2806
-#, c-format
-msgid "%.1f Pib"
-msgstr "%.1f Pib"
+msgctxt "full month name with day"
+msgid "October"
+msgstr "listopada"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2808
-#, c-format
-msgid "%.1f Eib"
-msgstr "%.1f Eib"
+msgctxt "full month name with day"
+msgid "November"
+msgstr "studenoga"
 
-#: glib/gutils.c:2842 glib/gutils.c:2959
-#, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u bajt"
-msgstr[1] "%u bajta"
-msgstr[2] "%u bajtova"
+msgctxt "full month name with day"
+msgid "December"
+msgstr "prosinca"
 
-#: glib/gutils.c:2846
-#, c-format
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "%u bit"
-msgstr[1] "%u bita"
-msgstr[2] "%u bitova"
+msgctxt "abbreviated month name with day"
+msgid "Jan"
+msgstr "sij"
 
-#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2913
-#, c-format
-msgid "%s byte"
-msgid_plural "%s bytes"
-msgstr[0] "%s bajt"
-msgstr[1] "%s bajta"
-msgstr[2] "%s bajtova"
+msgctxt "abbreviated month name with day"
+msgid "Feb"
+msgstr "vel"
 
-#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2918
-#, c-format
-msgid "%s bit"
-msgid_plural "%s bits"
-msgstr[0] "%s bit"
-msgstr[1] "%s bita"
-msgstr[2] "%s bitova"
+msgctxt "abbreviated month name with day"
+msgid "Mar"
+msgstr "ožu"
 
-#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
-#. * mean 1024 bytes.  I am aware that 'KB' is not correct, but it has been preserved for reasons of
-#. * compatibility.  Users will not see this string unless a program is using this deprecated function.
-#. * Please translate as literally as possible.
-#.
-#: glib/gutils.c:2972
-#, c-format
-msgid "%.1f KB"
-msgstr "%.1f KB"
+msgctxt "abbreviated month name with day"
+msgid "Apr"
+msgstr "tra"
 
-#: glib/gutils.c:2977
-#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
+msgctxt "abbreviated month name with day"
+msgid "May"
+msgstr "svi"
 
-#: glib/gutils.c:2982
-#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
+msgctxt "abbreviated month name with day"
+msgid "Jun"
+msgstr "lip"
 
-#: glib/gutils.c:2987
-#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
+msgctxt "abbreviated month name with day"
+msgid "Jul"
+msgstr "srp"
 
-#: glib/gutils.c:2992
-#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+msgctxt "abbreviated month name with day"
+msgid "Aug"
+msgstr "kol"
 
-#: glib/gutils.c:2997
-#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+msgctxt "abbreviated month name with day"
+msgid "Sep"
+msgstr "ruj"
 
-#~ msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
-#~ msgstr ""
-#~ "Greška pri otvaranju datoteke '%s' za pisanje: fdopen() nije uspio: %s"
+msgctxt "abbreviated month name with day"
+msgid "Oct"
+msgstr "lis"
 
-#~ msgid "Failed to close file '%s': fclose() failed: %s"
-#~ msgstr "Greška pri zatvaranju datoteke '%s': fclose() nije uspio: %s"
+msgctxt "abbreviated month name with day"
+msgid "Nov"
+msgstr "stu"
 
-#~ msgid "Key file does not have key '%s'"
-#~ msgstr "Datoteka s ključem ne sadrži ključ '%s'"
+msgctxt "abbreviated month name with day"
+msgid "Dec"
+msgstr "pro"
index 7e3c332..4f57151 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-02-03 13:14+0000\n"
-"PO-Revision-Date: 2020-02-04 14:00+0700\n"
+"POT-Creation-Date: 2020-05-30 18:04+0000\n"
+"PO-Revision-Date: 2020-06-01 20:27+0700\n"
 "Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
 "Language-Team: Indonesian <gnome@i15n.org>\n"
 "Language: id\n"
@@ -19,7 +19,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural= n!=1;\n"
-"X-Generator: Poedit 2.3\n"
+"X-Generator: Poedit 2.3.1\n"
 
 #: gio/gapplication.c:500
 msgid "GApplication options"
@@ -280,7 +280,7 @@ msgstr "Stream telah ditutup"
 msgid "Truncate not supported on base stream"
 msgstr "Pemenggalan tak didukung pada stream basis"
 
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1871 gio/gdbusprivate.c:1411
+#: gio/gcancellable.c:319 gio/gdbusconnection.c:1862 gio/gdbusprivate.c:1411
 #: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
 #, c-format
 msgid "Operation was cancelled"
@@ -300,13 +300,13 @@ msgstr "Tak cukup ruang di tujuan"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:447 glib/gconvert.c:877
-#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2453
+#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2461
 #: glib/gutf8.c:875 glib/gutf8.c:1328
 msgid "Invalid byte sequence in conversion input"
 msgstr "Rangkaian bita dalam input konversi tidak benar"
 
 #: gio/gcharsetconverter.c:347 glib/gconvert.c:455 glib/gconvert.c:791
-#: glib/giochannel.c:1571 glib/giochannel.c:2465
+#: glib/giochannel.c:1571 glib/giochannel.c:2473
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Galat ketika konversi: %s"
@@ -339,23 +339,23 @@ msgstr "Tipe tak dikenal"
 msgid "%s filetype"
 msgstr "tipe berkas %s"
 
-#: gio/gcredentials.c:289
+#: gio/gcredentials.c:323
 msgid "GCredentials contains invalid data"
 msgstr "GCredentials berisi data yang tidak valid"
 
-#: gio/gcredentials.c:345 gio/gcredentials.c:609
+#: gio/gcredentials.c:383 gio/gcredentials.c:667
 msgid "GCredentials is not implemented on this OS"
 msgstr "GCredentials tak diimplementasikan di OS ini"
 
-#: gio/gcredentials.c:503
+#: gio/gcredentials.c:538 gio/gcredentials.c:556
 msgid "There is no GCredentials support for your platform"
 msgstr "Tidak ada dukungan GCredentials bagi platform Anda"
 
-#: gio/gcredentials.c:552
+#: gio/gcredentials.c:607
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr "GCredentials tak memuat suatu ID proses di OS ini"
 
-#: gio/gcredentials.c:603
+#: gio/gcredentials.c:661
 msgid "Credentials spoofing is not possible on this OS"
 msgstr "Pemalsuan kredensial tak diimplementasikan di OS ini"
 
@@ -506,7 +506,7 @@ msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr ""
 "Tidak bisa menentukan alamat bus sesi (tidak diimplementasi bagi OS ini)"
 
-#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7191
+#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7192
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -515,7 +515,7 @@ msgstr ""
 "Tak bisa menentukan alamat bus dari variabel lingkungan "
 "DBUS_STARTER_BUS_TYPE — nilai tak dikenal \"%s\""
 
-#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7200
+#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7201
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -549,34 +549,34 @@ msgstr ""
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr "Dibatalkan melalui GDBusAuthObserver::authorize-authenticated-peer"
 
-#: gio/gdbusauthmechanismsha1.c:264
+#: gio/gdbusauthmechanismsha1.c:265
 #, c-format
 msgid "Error when getting information for directory “%s”: %s"
 msgstr "Galat ketika mengambil informasi untuk direktori \"%s\": %s"
 
-#: gio/gdbusauthmechanismsha1.c:276
+#: gio/gdbusauthmechanismsha1.c:280
 #, c-format
 msgid ""
 "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
 msgstr ""
 "Izin pada direktori \"%s\" salah bentuk. Diharapkan mode 0700, diperoleh 0%o"
 
-#: gio/gdbusauthmechanismsha1.c:301
+#: gio/gdbusauthmechanismsha1.c:310
 #, c-format
 msgid "Error creating directory “%s”: %s"
 msgstr "Galat saat membuat direktori \"%s\": %s"
 
-#: gio/gdbusauthmechanismsha1.c:348
+#: gio/gdbusauthmechanismsha1.c:355
 #, c-format
 msgid "Error opening keyring “%s” for reading: "
 msgstr "Galat saat membuka ring kunci \"%s\" untuk dibaca: "
 
-#: gio/gdbusauthmechanismsha1.c:371 gio/gdbusauthmechanismsha1.c:689
+#: gio/gdbusauthmechanismsha1.c:378 gio/gdbusauthmechanismsha1.c:700
 #, c-format
 msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr "Baris %d dari ring kunci pada \"%s\" dengan isi \"%s\" salah bentuk"
 
-#: gio/gdbusauthmechanismsha1.c:385 gio/gdbusauthmechanismsha1.c:703
+#: gio/gdbusauthmechanismsha1.c:392 gio/gdbusauthmechanismsha1.c:714
 #, c-format
 msgid ""
 "First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -584,7 +584,7 @@ msgstr ""
 "Token pertama dari baris %d dari ring kunci pada \"%s\" dengan isi \"%s\" "
 "salah bentuk"
 
-#: gio/gdbusauthmechanismsha1.c:399 gio/gdbusauthmechanismsha1.c:717
+#: gio/gdbusauthmechanismsha1.c:406 gio/gdbusauthmechanismsha1.c:728
 #, c-format
 msgid ""
 "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -592,56 +592,56 @@ msgstr ""
 "Token kedua dari baris %d dari ring kunci pada \"%s\" dengan isi \"%s\" "
 "salah bentuk"
 
-#: gio/gdbusauthmechanismsha1.c:423
+#: gio/gdbusauthmechanismsha1.c:430
 #, c-format
 msgid "Didn’t find cookie with id %d in the keyring at “%s”"
 msgstr "Tak menemukan cookie dengan id %d dalam gantungan kunci pada \"%s\""
 
-#: gio/gdbusauthmechanismsha1.c:505
-#, c-format
-msgid "Error deleting stale lock file “%s”: %s"
-msgstr "Galat saat menghapus berkas kunci yang basi \"%s\": %s"
-
-#: gio/gdbusauthmechanismsha1.c:537
+#: gio/gdbusauthmechanismsha1.c:476
 #, c-format
 msgid "Error creating lock file “%s”: %s"
 msgstr "Galat saat membuat berkas kunci \"%s\": %s"
 
-#: gio/gdbusauthmechanismsha1.c:568
+#: gio/gdbusauthmechanismsha1.c:540
+#, c-format
+msgid "Error deleting stale lock file “%s”: %s"
+msgstr "Galat saat menghapus berkas kunci yang basi \"%s\": %s"
+
+#: gio/gdbusauthmechanismsha1.c:579
 #, c-format
 msgid "Error closing (unlinked) lock file “%s”: %s"
 msgstr "Galat saat menutup berkas kunci (tak terkait) \"%s\": %s"
 
-#: gio/gdbusauthmechanismsha1.c:579
+#: gio/gdbusauthmechanismsha1.c:590
 #, c-format
 msgid "Error unlinking lock file “%s”: %s"
 msgstr "Galat saat membuka kait berkas kunci \"%s\": %s"
 
-#: gio/gdbusauthmechanismsha1.c:656
+#: gio/gdbusauthmechanismsha1.c:667
 #, c-format
 msgid "Error opening keyring “%s” for writing: "
 msgstr "Galat saat membuka gantungan kunci \"%s\" untuk ditulisi: "
 
-#: gio/gdbusauthmechanismsha1.c:852
+#: gio/gdbusauthmechanismsha1.c:863
 #, c-format
 msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
 msgstr "(Selain itu, melepas kunci bagi \"%s\" juga gagal: %s) "
 
-#: gio/gdbusconnection.c:604 gio/gdbusconnection.c:2400
+#: gio/gdbusconnection.c:595 gio/gdbusconnection.c:2391
 msgid "The connection is closed"
 msgstr "Sambungan tertutup"
 
-#: gio/gdbusconnection.c:1901
+#: gio/gdbusconnection.c:1892
 msgid "Timeout was reached"
 msgstr "Kehabisan waktu"
 
-#: gio/gdbusconnection.c:2522
+#: gio/gdbusconnection.c:2513
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
-"Ditemui flag yang tak didukung ketika membangun sambungan di sisi klien"
+"Ditemui tanda yang tak didukung ketika membangun sambungan di sisi klien"
 
-#: gio/gdbusconnection.c:4162 gio/gdbusconnection.c:4509
+#: gio/gdbusconnection.c:4163 gio/gdbusconnection.c:4510
 #, c-format
 msgid ""
 "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -649,76 +649,76 @@ msgstr ""
 "Tidak ada antarmuka \"org.freedesktop.DBus.Properties\" pada objek pada path "
 "%s"
 
-#: gio/gdbusconnection.c:4304
+#: gio/gdbusconnection.c:4305
 #, c-format
 msgid "No such property “%s”"
 msgstr "Tak ada properti \"%s\""
 
-#: gio/gdbusconnection.c:4316
+#: gio/gdbusconnection.c:4317
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "Properti \"%s\" tidak dapat dibaca"
 
-#: gio/gdbusconnection.c:4327
+#: gio/gdbusconnection.c:4328
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "Properti \"%s\" tidak dapat ditulisi"
 
-#: gio/gdbusconnection.c:4347
+#: gio/gdbusconnection.c:4348
 #, c-format
 msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
 msgstr ""
 "Galat menata properti \"%s\": Tipe yang diharapkan \"%s\" tapi diperoleh \"%s"
 "\""
 
-#: gio/gdbusconnection.c:4452 gio/gdbusconnection.c:4660
-#: gio/gdbusconnection.c:6631
+#: gio/gdbusconnection.c:4453 gio/gdbusconnection.c:4661
+#: gio/gdbusconnection.c:6632
 #, c-format
 msgid "No such interface “%s”"
 msgstr "Tak ada antarmuka \"%s\""
 
-#: gio/gdbusconnection.c:4878 gio/gdbusconnection.c:7140
+#: gio/gdbusconnection.c:4879 gio/gdbusconnection.c:7141
 #, c-format
 msgid "No such interface “%s” on object at path %s"
 msgstr "Tak ada antarmuka \"%s\" pada objek di lokasi %s"
 
-#: gio/gdbusconnection.c:4976
+#: gio/gdbusconnection.c:4977
 #, c-format
 msgid "No such method “%s”"
 msgstr "Tidak ada metode seperti \"%s\""
 
-#: gio/gdbusconnection.c:5007
+#: gio/gdbusconnection.c:5008
 #, c-format
 msgid "Type of message, “%s”, does not match expected type “%s”"
 msgstr "Tipe pesan \"%s\" tak cocok dengan tipe yang diharapkan \"%s\""
 
-#: gio/gdbusconnection.c:5205
+#: gio/gdbusconnection.c:5206
 #, c-format
 msgid "An object is already exported for the interface %s at %s"
 msgstr "Suatu objek telah diekspor bagi antar muka %s pada %s"
 
-#: gio/gdbusconnection.c:5431
+#: gio/gdbusconnection.c:5432
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "Tak bisa mengambil properti %s.%s"
 
-#: gio/gdbusconnection.c:5487
+#: gio/gdbusconnection.c:5488
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "Tak bisa menata properti %s.%s"
 
-#: gio/gdbusconnection.c:5665
+#: gio/gdbusconnection.c:5666
 #, c-format
 msgid "Method “%s” returned type “%s”, but expected “%s”"
 msgstr "Metode \"%s\" mengembalikan tipe \"%s\", tapi yang diharapkan \"%s\""
 
-#: gio/gdbusconnection.c:6742
+#: gio/gdbusconnection.c:6743
 #, c-format
 msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
 msgstr ""
 "Metode \"%s\" pada antar muka \"%s\" dengan tanda tangan \"%s\"' tak ada"
 
-#: gio/gdbusconnection.c:6863
+#: gio/gdbusconnection.c:6864
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "Subtree telah diekspor bagi %s"
@@ -941,24 +941,24 @@ msgstr "Tak bisa mendapat profil perangkat keras: %s"
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "Tak bisa memuat /var/lib/dbus/machine-id ata /etc/machine-id: "
 
-#: gio/gdbusproxy.c:1625
+#: gio/gdbusproxy.c:1562
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Galat sewaktu memanggil StartServiceByName untuk %s: "
 
-#: gio/gdbusproxy.c:1648
+#: gio/gdbusproxy.c:1585
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Balasan tak diharapkan %d dari metode StartServiceByName(\"%s\")"
 
-#: gio/gdbusproxy.c:2748 gio/gdbusproxy.c:2883
+#: gio/gdbusproxy.c:2685 gio/gdbusproxy.c:2820
 #, c-format
 msgid ""
 "Cannot invoke method; proxy is for the well-known name %s without an owner, "
 "and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
 msgstr ""
 "Tidak bisa menjalankan metode; proksi adalah nama terkenal %s tanpa pemilik "
-"dan proksi dibangun dengan flag G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
+"dan proksi dibangun dengan tanda G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
 
 #: gio/gdbusserver.c:755
 msgid "Abstract namespace not supported"
@@ -1008,13 +1008,13 @@ msgstr ""
 "perintah.\n"
 
 #: gio/gdbus-tool.c:197 gio/gdbus-tool.c:264 gio/gdbus-tool.c:336
-#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:846 gio/gdbus-tool.c:1183
-#: gio/gdbus-tool.c:1668
+#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:850 gio/gdbus-tool.c:1187
+#: gio/gdbus-tool.c:1672
 #, c-format
 msgid "Error: %s\n"
 msgstr "Galat: %s\n"
 
-#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1684
+#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1688
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr "Galat saat mengurai XML introspeksi: %s\n"
@@ -1044,23 +1044,23 @@ msgstr "Opsi Titik Ujung Sambungan:"
 msgid "Options specifying the connection endpoint"
 msgstr "Opsi yang menyatakan titik ujung sambungan"
 
-#: gio/gdbus-tool.c:429
+#: gio/gdbus-tool.c:430
 #, c-format
 msgid "No connection endpoint specified"
 msgstr "Titik ujung sambungan tak dinyatakan"
 
-#: gio/gdbus-tool.c:439
+#: gio/gdbus-tool.c:440
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr "Telah dinyatakan titik ujung sambungan berganda"
 
-#: gio/gdbus-tool.c:509
+#: gio/gdbus-tool.c:513
 #, c-format
 msgid ""
 "Warning: According to introspection data, interface “%s” does not exist\n"
 msgstr "Peringatan: Menurut data introspeksi, antar muka \"%s\" tak ada\n"
 
-#: gio/gdbus-tool.c:518
+#: gio/gdbus-tool.c:522
 #, c-format
 msgid ""
 "Warning: According to introspection data, method “%s” does not exist on "
@@ -1069,163 +1069,163 @@ msgstr ""
 "Peringatan: Menurut data introspeksi, metode \"%s\" tak ada pada antar muka "
 "\"%s\"\n"
 
-#: gio/gdbus-tool.c:580
+#: gio/gdbus-tool.c:584
 msgid "Optional destination for signal (unique name)"
 msgstr "Tujuan opsional bagi sinyal (nama unik)"
 
-#: gio/gdbus-tool.c:581
+#: gio/gdbus-tool.c:585
 msgid "Object path to emit signal on"
 msgstr "Path objek untuk dipancari sinyal"
 
-#: gio/gdbus-tool.c:582
+#: gio/gdbus-tool.c:586
 msgid "Signal and interface name"
 msgstr "Nama antar muka dan sinyal"
 
-#: gio/gdbus-tool.c:615
+#: gio/gdbus-tool.c:619
 msgid "Emit a signal."
 msgstr "Pancarkan sinyal."
 
-#: gio/gdbus-tool.c:670 gio/gdbus-tool.c:977 gio/gdbus-tool.c:1771
-#: gio/gdbus-tool.c:2003 gio/gdbus-tool.c:2223
+#: gio/gdbus-tool.c:674 gio/gdbus-tool.c:981 gio/gdbus-tool.c:1775
+#: gio/gdbus-tool.c:2007 gio/gdbus-tool.c:2227
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "Galat saat menyambung: %s\n"
 
-#: gio/gdbus-tool.c:690
+#: gio/gdbus-tool.c:694
 #, c-format
 msgid "Error: %s is not a valid unique bus name.\n"
 msgstr "Galat: '%s' bukan nama bus unik yang valid\n"
 
-#: gio/gdbus-tool.c:709 gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1814
+#: gio/gdbus-tool.c:713 gio/gdbus-tool.c:1024 gio/gdbus-tool.c:1818
 msgid "Error: Object path is not specified\n"
 msgstr "Galat: Lokasi objek tak dinyatakan\n"
 
-#: gio/gdbus-tool.c:732 gio/gdbus-tool.c:1040 gio/gdbus-tool.c:1834
-#: gio/gdbus-tool.c:2074
+#: gio/gdbus-tool.c:736 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1838
+#: gio/gdbus-tool.c:2078
 #, c-format
 msgid "Error: %s is not a valid object path\n"
 msgstr "Galat: '%s' bukan suatu lokasi objek yang valid\n"
 
-#: gio/gdbus-tool.c:752
+#: gio/gdbus-tool.c:756
 msgid "Error: Signal name is not specified\n"
 msgstr "Galat: Nama sinyal tak dinyatakan\n"
 
-#: gio/gdbus-tool.c:766
+#: gio/gdbus-tool.c:770
 #, c-format
 msgid "Error: Signal name “%s” is invalid\n"
 msgstr "Galat: Nama sinyal \"%s\" tak valid\n"
 
-#: gio/gdbus-tool.c:778
+#: gio/gdbus-tool.c:782
 #, c-format
 msgid "Error: %s is not a valid interface name\n"
 msgstr "Galat: '%s' bukan nama antar muka yang valid\n"
 
-#: gio/gdbus-tool.c:784
+#: gio/gdbus-tool.c:788
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr "Galat: '%s' bukan nama anggota yang valid\n"
 
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:821 gio/gdbus-tool.c:1152
+#: gio/gdbus-tool.c:825 gio/gdbus-tool.c:1156
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr "Galat saat mengurai parameter %d: %s\n"
 
-#: gio/gdbus-tool.c:853
+#: gio/gdbus-tool.c:857
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr "Galat saat menggelontor sambungan: %s\n"
 
-#: gio/gdbus-tool.c:880
+#: gio/gdbus-tool.c:884
 msgid "Destination name to invoke method on"
 msgstr "Nama tujuan tempat menjalankan metode"
 
-#: gio/gdbus-tool.c:881
+#: gio/gdbus-tool.c:885
 msgid "Object path to invoke method on"
 msgstr "Lokasi objek tempat menjalankan metode"
 
-#: gio/gdbus-tool.c:882
+#: gio/gdbus-tool.c:886
 msgid "Method and interface name"
 msgstr "Nama metode dan antar muka"
 
-#: gio/gdbus-tool.c:883
+#: gio/gdbus-tool.c:887
 msgid "Timeout in seconds"
 msgstr "Tenggat waktu dalam detik"
 
-#: gio/gdbus-tool.c:922
+#: gio/gdbus-tool.c:926
 msgid "Invoke a method on a remote object."
 msgstr "Jalankan suatu metode pada suatu objek jauh."
 
-#: gio/gdbus-tool.c:994 gio/gdbus-tool.c:1788 gio/gdbus-tool.c:2028
+#: gio/gdbus-tool.c:998 gio/gdbus-tool.c:1792 gio/gdbus-tool.c:2032
 msgid "Error: Destination is not specified\n"
 msgstr "Galat: Tujuan tak dinyatakan\n"
 
-#: gio/gdbus-tool.c:1005 gio/gdbus-tool.c:1805 gio/gdbus-tool.c:2039
+#: gio/gdbus-tool.c:1009 gio/gdbus-tool.c:1809 gio/gdbus-tool.c:2043
 #, c-format
 msgid "Error: %s is not a valid bus name\n"
 msgstr "Galat: %s bukan nama bus yang valid\n"
 
-#: gio/gdbus-tool.c:1055
+#: gio/gdbus-tool.c:1059
 msgid "Error: Method name is not specified\n"
 msgstr "Galat: Nama metode tak dinyatakan\n"
 
-#: gio/gdbus-tool.c:1066
+#: gio/gdbus-tool.c:1070
 #, c-format
 msgid "Error: Method name “%s” is invalid\n"
 msgstr "Galat: Nama metode \"%s\" tak valid\n"
 
-#: gio/gdbus-tool.c:1144
+#: gio/gdbus-tool.c:1148
 #, c-format
 msgid "Error parsing parameter %d of type “%s”: %s\n"
 msgstr "Galat ketika mengurai parameter ke-%d bertipe \"%s\": %s\n"
 
-#: gio/gdbus-tool.c:1630
+#: gio/gdbus-tool.c:1634
 msgid "Destination name to introspect"
 msgstr "Nama tujuan untuk introspeksi"
 
-#: gio/gdbus-tool.c:1631
+#: gio/gdbus-tool.c:1635
 msgid "Object path to introspect"
 msgstr "Lokasi objek untuk introspeksi"
 
-#: gio/gdbus-tool.c:1632
+#: gio/gdbus-tool.c:1636
 msgid "Print XML"
 msgstr "Cetak XML"
 
-#: gio/gdbus-tool.c:1633
+#: gio/gdbus-tool.c:1637
 msgid "Introspect children"
 msgstr "Introspeksi anak"
 
-#: gio/gdbus-tool.c:1634
+#: gio/gdbus-tool.c:1638
 msgid "Only print properties"
 msgstr "Hanya cetak properti"
 
-#: gio/gdbus-tool.c:1723
+#: gio/gdbus-tool.c:1727
 msgid "Introspect a remote object."
 msgstr "Introspeksi suatu objek jauh."
 
-#: gio/gdbus-tool.c:1929
+#: gio/gdbus-tool.c:1933
 msgid "Destination name to monitor"
 msgstr "Nama tujuan untuk dipantau"
 
-#: gio/gdbus-tool.c:1930
+#: gio/gdbus-tool.c:1934
 msgid "Object path to monitor"
 msgstr "Lokasi objek untuk dipantau"
 
-#: gio/gdbus-tool.c:1955
+#: gio/gdbus-tool.c:1959
 msgid "Monitor a remote object."
 msgstr "Memantau suatu objek jauh."
 
-#: gio/gdbus-tool.c:2013
+#: gio/gdbus-tool.c:2017
 msgid "Error: can’t monitor a non-message-bus connection\n"
 msgstr "Galat: tidak dapat memonitor koneksi non bus pesan\n"
 
-#: gio/gdbus-tool.c:2137
+#: gio/gdbus-tool.c:2141
 msgid "Service to activate before waiting for the other one (well-known name)"
 msgstr ""
 "Layanan yang akan diaktifkan sebelum menunggu yang lain (nama yang dikenal "
 "baik)"
 
-#: gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:2144
 msgid ""
 "Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
 "(default)"
@@ -1233,64 +1233,64 @@ msgstr ""
 "Tenggat waktu menunggu sebelum keluar dengan suatu kesalahan (detik); 0 "
 "untuk tanpa tenggat (baku)"
 
-#: gio/gdbus-tool.c:2188
+#: gio/gdbus-tool.c:2192
 msgid "[OPTION…] BUS-NAME"
 msgstr "[OPSI…] NAMA-BUS"
 
-#: gio/gdbus-tool.c:2189
+#: gio/gdbus-tool.c:2193
 msgid "Wait for a bus name to appear."
 msgstr "Tunggu suatu nama bus muncul."
 
-#: gio/gdbus-tool.c:2265
+#: gio/gdbus-tool.c:2269
 msgid "Error: A service to activate for must be specified.\n"
 msgstr "Galat: Suatu layanan yang akan diaktifkan mesti dinyatakan\n"
 
-#: gio/gdbus-tool.c:2270
+#: gio/gdbus-tool.c:2274
 msgid "Error: A service to wait for must be specified.\n"
 msgstr "Galat: Suatu layanan yang mesti ditunggu harus dinyatakan\n"
 
-#: gio/gdbus-tool.c:2275
+#: gio/gdbus-tool.c:2279
 msgid "Error: Too many arguments.\n"
 msgstr "Galat: Terlalu banyak argumen.\n"
 
-#: gio/gdbus-tool.c:2283 gio/gdbus-tool.c:2290
+#: gio/gdbus-tool.c:2287 gio/gdbus-tool.c:2294
 #, c-format
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "Galat: %s bukan nama bus yang dikenal baik dan valid\n"
 
-#: gio/gdesktopappinfo.c:2072 gio/gdesktopappinfo.c:4870
+#: gio/gdesktopappinfo.c:2071 gio/gdesktopappinfo.c:4886
 msgid "Unnamed"
 msgstr "Tanpa nama"
 
-#: gio/gdesktopappinfo.c:2482
+#: gio/gdesktopappinfo.c:2481
 msgid "Desktop file didn’t specify Exec field"
 msgstr "Berkas desktop tak menyatakan ruas Exec"
 
-#: gio/gdesktopappinfo.c:2754
+#: gio/gdesktopappinfo.c:2761
 msgid "Unable to find terminal required for application"
 msgstr "Tak bisa temukan terminal yang diperlukan bagi aplikasi"
 
-#: gio/gdesktopappinfo.c:3406
+#: gio/gdesktopappinfo.c:3413
 #, c-format
 msgid "Can’t create user application configuration folder %s: %s"
 msgstr ""
 "Tak bisa membuat folder %s untuk konfigurasi aplikasi bagi pengguna: %s"
 
-#: gio/gdesktopappinfo.c:3410
+#: gio/gdesktopappinfo.c:3417
 #, c-format
 msgid "Can’t create user MIME configuration folder %s: %s"
 msgstr "Tak bisa membuat folder %s untuk konfigurasi MIME bagi pengguna: %s"
 
-#: gio/gdesktopappinfo.c:3650 gio/gdesktopappinfo.c:3674
+#: gio/gdesktopappinfo.c:3657 gio/gdesktopappinfo.c:3681
 msgid "Application information lacks an identifier"
 msgstr "Informasi aplikasi tak punya identifier"
 
-#: gio/gdesktopappinfo.c:3908
+#: gio/gdesktopappinfo.c:3915
 #, c-format
 msgid "Can’t create user desktop file %s"
 msgstr "Tak bisa membuat berkas desktop pengguna %s"
 
-#: gio/gdesktopappinfo.c:4042
+#: gio/gdesktopappinfo.c:4049
 #, c-format
 msgid "Custom definition for %s"
 msgstr "Definisi gubahan bagi %s"
@@ -1318,12 +1318,12 @@ msgstr "kandar tidak mengimplementasi start"
 msgid "drive doesn’t implement stop"
 msgstr "kandar tidak mengimplementasi stop"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
-#: gio/gdummytlsbackend.c:509
+#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
+#: gio/gdummytlsbackend.c:513
 msgid "TLS support is not available"
 msgstr "Dukungan TLS tak tersedia"
 
-#: gio/gdummytlsbackend.c:419
+#: gio/gdummytlsbackend.c:423
 msgid "DTLS support is not available"
 msgstr "Dukungan DTLS tak tersedia"
 
@@ -1356,7 +1356,7 @@ msgstr "Berharap suatu GEmblem bagi GEmblemedIcon"
 #: gio/gfile.c:1976 gio/gfile.c:2031 gio/gfile.c:3722 gio/gfile.c:3777
 #: gio/gfile.c:4055 gio/gfile.c:4523 gio/gfile.c:4934 gio/gfile.c:5019
 #: gio/gfile.c:5109 gio/gfile.c:5206 gio/gfile.c:5293 gio/gfile.c:5394
-#: gio/gfile.c:8098 gio/gfile.c:8188 gio/gfile.c:8272
+#: gio/gfile.c:8104 gio/gfile.c:8194 gio/gfile.c:8278
 #: gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "Operasi tak didukung"
@@ -1431,7 +1431,7 @@ msgstr "Nama berkas tak boleh mengandung \"%c\""
 msgid "volume doesn’t implement mount"
 msgstr "volume tak mengimplementasi pengaitan"
 
-#: gio/gfile.c:6868 gio/gfile.c:6914
+#: gio/gfile.c:6871 gio/gfile.c:6919
 msgid "No application is registered as handling this file"
 msgstr "Tak ada aplikasi terdaftar yang menangani berkas ini"
 
@@ -1593,7 +1593,7 @@ msgstr "Pertahankan dengan berkas ketika dipindah"
 msgid "“version” takes no arguments"
 msgstr "\"version\" tak menerima argumen"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:864
+#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
 msgid "Usage:"
 msgstr "Penggunaan:"
 
@@ -3024,96 +3024,132 @@ msgstr "Perpindahan antar kait tak didukung"
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Tak bisa menentukan penggunaan diska dari %s: %s"
 
-#: gio/glocalfileinfo.c:755
+#: gio/glocalfileinfo.c:760
 msgid "Attribute value must be non-NULL"
 msgstr "Nilai atribut tak boleh NULL"
 
-#: gio/glocalfileinfo.c:762
+#: gio/glocalfileinfo.c:767
 msgid "Invalid attribute type (string expected)"
 msgstr "Tipe atribut tak valid (diharapkan string)"
 
-#: gio/glocalfileinfo.c:769
+#: gio/glocalfileinfo.c:774
 msgid "Invalid extended attribute name"
 msgstr "Nama atribut tambahan yang tak valid"
 
-#: gio/glocalfileinfo.c:809
+#: gio/glocalfileinfo.c:814
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Galat saat menata atribut yang diperluas \"%s\": %s"
 
-#: gio/glocalfileinfo.c:1637
+#: gio/glocalfileinfo.c:1650
 msgid " (invalid encoding)"
 msgstr " (pengkodean tak valid)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1814 gio/glocalfileoutputstream.c:909
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "Galat saat mengambil informasi bagi berkas \"%s\": %s"
 
-#: gio/glocalfileinfo.c:2071
+#: gio/glocalfileinfo.c:2084
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Galat saat mengambil informasi bagi descriptor berkas: %s"
 
-#: gio/glocalfileinfo.c:2116
+#: gio/glocalfileinfo.c:2129
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Tipe atribut tak valid (diharapkan uint32)"
 
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2147
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Tipe atribut tak valid (diharapkan uint64)"
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: gio/glocalfileinfo.c:2166 gio/glocalfileinfo.c:2185
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Jenis atribut tidak sah (diharapkan bita berjenis string)"
 
-#: gio/glocalfileinfo.c:2219
+#: gio/glocalfileinfo.c:2232
 msgid "Cannot set permissions on symlinks"
 msgstr "Tak bisa menata ijin pada taut simbolik"
 
-#: gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2248
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Galat saat menata ijin: %s"
 
-#: gio/glocalfileinfo.c:2286
+#: gio/glocalfileinfo.c:2299
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Galat saat menata pemilik: %s"
 
-#: gio/glocalfileinfo.c:2309
+#: gio/glocalfileinfo.c:2322
 msgid "symlink must be non-NULL"
 msgstr "symlink tak boleh NULL"
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
+#: gio/glocalfileinfo.c:2362
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Galat saat menata taut simbolis: %s"
 
-#: gio/glocalfileinfo.c:2328
+#: gio/glocalfileinfo.c:2341
 msgid "Error setting symlink: file is not a symlink"
 msgstr "Galat saat menata symlink: berkas bukan suatu link simbolik"
 
-#: gio/glocalfileinfo.c:2454
+#: gio/glocalfileinfo.c:2413
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr "Nanodetik ekstra %d untuk stempel waktu UNIX %lld negatif"
+
+#: gio/glocalfileinfo.c:2422
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr "Nanodetik ekstra %d untuk stempel waktu UNIX %lld mencapai 1 detik"
+
+#: gio/glocalfileinfo.c:2432
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr "Stempel waktu UNIX %lld tidak muat ke dalam 64 bit"
+
+#: gio/glocalfileinfo.c:2443
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr ""
+"Stempel waktu UNIX %lld berada di luar rentang yang didukung oleh Windows"
+
+#: gio/glocalfileinfo.c:2507
+#, c-format
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr "Nama berkas \"%s\" tidak dapat dikonversi ke UTF-16"
+
+#: gio/glocalfileinfo.c:2526
+#, c-format
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr "Berkas “%s” tidak dapat dibuka: Galat Windows %lu"
+
+#: gio/glocalfileinfo.c:2539
+#, c-format
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr "Galat saat menata waktu modifikasi atau akses untuk berkas “%s”: %lu"
+
+#: gio/glocalfileinfo.c:2640
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Galat saat menata waktu modifikasi atau akses: %s"
 
-#: gio/glocalfileinfo.c:2477
+#: gio/glocalfileinfo.c:2663
 msgid "SELinux context must be non-NULL"
 msgstr "Konteks SELinux tak boleh NULL"
 
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2678
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Galat saat menata konteks SELinux: %s"
 
-#: gio/glocalfileinfo.c:2499
+#: gio/glocalfileinfo.c:2685
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux tak diaktifkan di sistem ini"
 
-#: gio/glocalfileinfo.c:2591
+#: gio/glocalfileinfo.c:2777
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Penataan atribut %s tak didukung"
@@ -3871,12 +3907,12 @@ msgstr "GSocketControlMessage tak didukung pada Windows"
 msgid "Error receiving message: %s"
 msgstr "Galat saat menerima pesan: %s"
 
-#: gio/gsocket.c:5995
+#: gio/gsocket.c:5983 gio/gsocket.c:6031
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr "Tak bisa membaca kredensial soket: %s"
 
-#: gio/gsocket.c:6004
+#: gio/gsocket.c:6040
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr "g_socket_get_credentials tidak diimplementasikan untuk OS ini"
 
@@ -3894,11 +3930,11 @@ msgstr "Tak bisa menyambung ke %s: "
 msgid "Could not connect: "
 msgstr "Tak bisa menyambung: "
 
-#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1764
+#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1866
 msgid "Unknown error on connect"
 msgstr "Galat tak dikenal saat hubungan"
 
-#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1672
+#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1668
 msgid "Proxying over a non-TCP connection is not supported."
 msgstr "Proksi melalui koneksi bukan TCP tidak didukung."
 
@@ -3937,66 +3973,66 @@ msgstr "Server bukan server proksi SOCKSv4."
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr "Koneksi melalui server SOCKSv4 ditolak"
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
+#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "Server bukan server proksi SOCKSv5."
 
-#: gio/gsocks5proxy.c:167
+#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr "Proksi SOCKv5 memerlukan autentikasi."
 
-#: gio/gsocks5proxy.c:177
+#: gio/gsocks5proxy.c:191
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
 msgstr "SOCKSv5 memerlukan metode autentikasi yang tidak didukung oleh GLib."
 
-#: gio/gsocks5proxy.c:206
+#: gio/gsocks5proxy.c:220
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr "Nama pengguna atau kata sandi terlalu panjang bagi protokol SOCKSv5."
 
-#: gio/gsocks5proxy.c:236
+#: gio/gsocks5proxy.c:250
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr "autentikasi SOCKSv5 gagal karena nama pengguna atau kata sandi salah."
 
-#: gio/gsocks5proxy.c:286
+#: gio/gsocks5proxy.c:300
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv5 protocol"
 msgstr "Nama host \"%s\" terlalu panjang bagi protokol SOCKSv5"
 
-#: gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:362
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr "Server proksi SOCKSv5 memakai jenis alamat yang tidak dikenal."
 
-#: gio/gsocks5proxy.c:355
+#: gio/gsocks5proxy.c:369
 msgid "Internal SOCKSv5 proxy server error."
 msgstr "Galat internal server proksi SOCKSv5."
 
-#: gio/gsocks5proxy.c:361
+#: gio/gsocks5proxy.c:375
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr "Koneksi SOCKSv5 tidak diijinkan oleh ruleset."
 
-#: gio/gsocks5proxy.c:368
+#: gio/gsocks5proxy.c:382
 msgid "Host unreachable through SOCKSv5 server."
 msgstr "Host tidak dapat dijangkau melalui server SOCKSv5."
 
-#: gio/gsocks5proxy.c:374
+#: gio/gsocks5proxy.c:388
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr "Jaringan tidak dapat dijangkau melalui proksi SOCKSv5."
 
-#: gio/gsocks5proxy.c:380
+#: gio/gsocks5proxy.c:394
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr "Koneksi melalui proksi SOCKSv5 ditolak."
 
-#: gio/gsocks5proxy.c:386
+#: gio/gsocks5proxy.c:400
 msgid "SOCKSv5 proxy does not support “connect” command."
 msgstr "Proksi SOCSKv5 tidak mendukung perintah \"connect\"."
 
-#: gio/gsocks5proxy.c:392
+#: gio/gsocks5proxy.c:406
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr "Proksi SOCSKv5 tidak mendukung jenis alamat yang diberikan."
 
-#: gio/gsocks5proxy.c:398
+#: gio/gsocks5proxy.c:412
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Galat tak dikenal pada proksi SOCKSv5."
 
@@ -4126,24 +4162,24 @@ msgstr "Tak mengharapkan pesan kendali, tapi memperoleh %d"
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "Galat ketika mematikan SO_PASSCRED: %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:362 gio/gunixinputstream.c:383
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "Galat saat membaca dari descriptor berkas: %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
+#: gio/gunixinputstream.c:416 gio/gunixoutputstream.c:525
 #: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr "Galat saat menutup descriptor berkas: %s"
 
-#: gio/gunixmounts.c:2664 gio/gunixmounts.c:2717
+#: gio/gunixmounts.c:2709 gio/gunixmounts.c:2762
 msgid "Filesystem root"
 msgstr "Akar sistem berkas"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:362 gio/gunixoutputstream.c:382
+#: gio/gunixoutputstream.c:469 gio/gunixoutputstream.c:489
+#: gio/gunixoutputstream.c:635
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "Galat saat menulis ke descriptor berkas: %s"
@@ -4219,80 +4255,77 @@ msgstr "Jalankan layanan dbus"
 msgid "Wrong args\n"
 msgstr "Arg salah\n"
 
-#: glib/gbookmarkfile.c:756
+#: glib/gbookmarkfile.c:768
 #, c-format
 msgid "Unexpected attribute “%s” for element “%s”"
 msgstr "Atribut \"%s\" yang tidak diharapkan untuk elemen \"%s\""
 
-#: glib/gbookmarkfile.c:767 glib/gbookmarkfile.c:847 glib/gbookmarkfile.c:857
-#: glib/gbookmarkfile.c:969
+#: glib/gbookmarkfile.c:779 glib/gbookmarkfile.c:859 glib/gbookmarkfile.c:869
+#: glib/gbookmarkfile.c:982
 #, c-format
 msgid "Attribute “%s” of element “%s” not found"
 msgstr "Atribut \"%s\" dari elemen \"%s\" tak ditemukan"
 
-#: glib/gbookmarkfile.c:1178 glib/gbookmarkfile.c:1243
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1317
+#: glib/gbookmarkfile.c:1191 glib/gbookmarkfile.c:1256
+#: glib/gbookmarkfile.c:1320 glib/gbookmarkfile.c:1330
 #, c-format
 msgid "Unexpected tag “%s”, tag “%s” expected"
 msgstr "Tag \"%s\" yang tak diharapkan, diharapkan tag \"%s\""
 
-#: glib/gbookmarkfile.c:1203 glib/gbookmarkfile.c:1217
-#: glib/gbookmarkfile.c:1285 glib/gbookmarkfile.c:1331
+#: glib/gbookmarkfile.c:1216 glib/gbookmarkfile.c:1230
+#: glib/gbookmarkfile.c:1298 glib/gbookmarkfile.c:1344
 #, c-format
 msgid "Unexpected tag “%s” inside “%s”"
 msgstr "Tag \"%s\" yang tak diharapkan di dalam \"%s\""
 
-#: glib/gbookmarkfile.c:1625
+#: glib/gbookmarkfile.c:1624
 #, c-format
 msgid "Invalid date/time ‘%s’ in bookmark file"
-msgstr "Tanggal/waktu ‘%s’ tidak valid dalam berkas penanda taut"
+msgstr "Tanggal/waktu ‘%s’ tidak valid dalam berkas markah"
 
-#: glib/gbookmarkfile.c:1831
+#: glib/gbookmarkfile.c:1827
 msgid "No valid bookmark file found in data dirs"
-msgstr "Tak ditemukan penanda buku yang valid di direktori data"
+msgstr "Tak ditemukan markah yang valid di direktori data"
 
-#: glib/gbookmarkfile.c:2032
+#: glib/gbookmarkfile.c:2028
 #, c-format
 msgid "A bookmark for URI “%s” already exists"
-msgstr "Penanda taut untuk URI \"%s\" telah ada"
-
-#: glib/gbookmarkfile.c:2078 glib/gbookmarkfile.c:2236
-#: glib/gbookmarkfile.c:2321 glib/gbookmarkfile.c:2401
-#: glib/gbookmarkfile.c:2486 glib/gbookmarkfile.c:2569
-#: glib/gbookmarkfile.c:2647 glib/gbookmarkfile.c:2726
-#: glib/gbookmarkfile.c:2768 glib/gbookmarkfile.c:2865
-#: glib/gbookmarkfile.c:2986 glib/gbookmarkfile.c:3176
-#: glib/gbookmarkfile.c:3252 glib/gbookmarkfile.c:3420
-#: glib/gbookmarkfile.c:3509 glib/gbookmarkfile.c:3598
-#: glib/gbookmarkfile.c:3717
+msgstr "Markah untuk URI \"%s\" telah ada"
+
+#: glib/gbookmarkfile.c:2077 glib/gbookmarkfile.c:2235
+#: glib/gbookmarkfile.c:2320 glib/gbookmarkfile.c:2400
+#: glib/gbookmarkfile.c:2485 glib/gbookmarkfile.c:2619
+#: glib/gbookmarkfile.c:2752 glib/gbookmarkfile.c:2887
+#: glib/gbookmarkfile.c:2929 glib/gbookmarkfile.c:3026
+#: glib/gbookmarkfile.c:3147 glib/gbookmarkfile.c:3341
+#: glib/gbookmarkfile.c:3482 glib/gbookmarkfile.c:3701
+#: glib/gbookmarkfile.c:3790 glib/gbookmarkfile.c:3879
+#: glib/gbookmarkfile.c:3998
 #, c-format
 msgid "No bookmark found for URI “%s”"
-msgstr "Tak ditemukan penanda taut untuk URI \"%s\""
+msgstr "Tak ditemukan markah untuk URI \"%s\""
 
-#: glib/gbookmarkfile.c:2410
+#: glib/gbookmarkfile.c:2409
 #, c-format
 msgid "No MIME type defined in the bookmark for URI “%s”"
-msgstr ""
-"Tidak ada jenis MIME yang didefinisikan pada penanda taut untuk URI \"%s\""
+msgstr "Tidak ada jenis MIME yang didefinisikan pada markah untuk URI \"%s\""
 
-#: glib/gbookmarkfile.c:2495
+#: glib/gbookmarkfile.c:2494
 #, c-format
 msgid "No private flag has been defined in bookmark for URI “%s”"
-msgstr ""
-"Tidak ada flag privat yang ditetapkan dalam penanda taut untuk URI \"%s\""
+msgstr "Tidak ada tanda privat yang ditetapkan dalam markah untuk URI \"%s\""
 
-#: glib/gbookmarkfile.c:2874
+#: glib/gbookmarkfile.c:3035
 #, c-format
 msgid "No groups set in bookmark for URI “%s”"
-msgstr "Tidak ada grup yang ditetapkan dalam penanda taut untuk URI \"%s\""
+msgstr "Tidak ada grup yang ditetapkan dalam markah untuk URI \"%s\""
 
-#: glib/gbookmarkfile.c:3273 glib/gbookmarkfile.c:3430
+#: glib/gbookmarkfile.c:3503 glib/gbookmarkfile.c:3711
 #, c-format
 msgid "No application with name “%s” registered a bookmark for “%s”"
-msgstr ""
-"Tak ditemukan aplikasi terdaftar dengan nama \"%s\" bagi penanda taut \"%s\""
+msgstr "Tak ditemukan aplikasi terdaftar dengan nama \"%s\" bagi markah \"%s\""
 
-#: glib/gbookmarkfile.c:3453
+#: glib/gbookmarkfile.c:3734
 #, c-format
 msgid "Failed to expand exec line “%s” with URI “%s”"
 msgstr "Gagal mengembangkan baris eksekusi \"%s\" dengan URI \"%s\""
@@ -4849,20 +4882,20 @@ msgstr "Gagal membaca taut simbolik \"%s\": %s"
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "Tidak dapat membuka pengubah dari \"%s\" menjadi \"%s\": %s"
 
-#: glib/giochannel.c:1741
+#: glib/giochannel.c:1749
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr ""
 "Tidak dapat melakukan pembacaan mentah dalam g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1788 glib/giochannel.c:2046 glib/giochannel.c:2133
+#: glib/giochannel.c:1796 glib/giochannel.c:2054 glib/giochannel.c:2141
 msgid "Leftover unconverted data in read buffer"
 msgstr "Ada data tersisa yang belum dikonversi pada penyangga read"
 
-#: glib/giochannel.c:1869 glib/giochannel.c:1946
+#: glib/giochannel.c:1877 glib/giochannel.c:1954
 msgid "Channel terminates in a partial character"
 msgstr "Kanal terputus pada karakter sebagian"
 
-#: glib/giochannel.c:1932
+#: glib/giochannel.c:1940
 msgid "Can’t do a raw read in g_io_channel_read_to_end"
 msgstr "Tidak dapat melakukan pembacaan mentah dalam g_io_channel_read_to_end"
 
@@ -5207,61 +5240,61 @@ msgstr ""
 "Dokumen terpotong tidak sempurna di dalam keterangan atau instruksi "
 "pemrosesan"
 
-#: glib/goption.c:868
+#: glib/goption.c:873
 msgid "[OPTION…]"
 msgstr "[OPSI…]"
 
-#: glib/goption.c:984
+#: glib/goption.c:989
 msgid "Help Options:"
 msgstr "Opsi Bantuan:"
 
-#: glib/goption.c:985
+#: glib/goption.c:990
 msgid "Show help options"
 msgstr "Menampilkan opsi bantuan"
 
-#: glib/goption.c:991
+#: glib/goption.c:996
 msgid "Show all help options"
 msgstr "Menampilkan semua opsi bantuan"
 
-#: glib/goption.c:1054
+#: glib/goption.c:1059
 msgid "Application Options:"
 msgstr "Opsi Aplikasi:"
 
-#: glib/goption.c:1056
+#: glib/goption.c:1061
 msgid "Options:"
 msgstr "Opsi:"
 
-#: glib/goption.c:1120 glib/goption.c:1190
+#: glib/goption.c:1125 glib/goption.c:1195
 #, c-format
 msgid "Cannot parse integer value “%s” for %s"
 msgstr "Tidak bisa mengurai nilai bilangan bulat \"%s\" untuk \"%s\""
 
-#: glib/goption.c:1130 glib/goption.c:1198
+#: glib/goption.c:1135 glib/goption.c:1203
 #, c-format
 msgid "Integer value “%s” for %s out of range"
 msgstr "Nilai bilangan bulat \"%s\" untuk %s di luar jangkauan"
 
-#: glib/goption.c:1155
+#: glib/goption.c:1160
 #, c-format
 msgid "Cannot parse double value “%s” for %s"
 msgstr "Tidak bisa mengurai nilai double \"%s\" bagi %s"
 
-#: glib/goption.c:1163
+#: glib/goption.c:1168
 #, c-format
 msgid "Double value “%s” for %s out of range"
 msgstr "Nilai double \"%s\" untuk %s di luar jangkauan"
 
-#: glib/goption.c:1455 glib/goption.c:1534
+#: glib/goption.c:1460 glib/goption.c:1539
 #, c-format
 msgid "Error parsing option %s"
 msgstr "Galat saat mengurai opsi %s"
 
-#: glib/goption.c:1565 glib/goption.c:1678
+#: glib/goption.c:1570 glib/goption.c:1683
 #, c-format
 msgid "Missing argument for %s"
 msgstr "Argumen untuk %s tidak lengkap"
 
-#: glib/goption.c:2189
+#: glib/goption.c:2194
 #, c-format
 msgid "Unknown option %s"
 msgstr "Pilihan tidak diketahui %s"
@@ -5300,7 +5333,7 @@ msgstr "batas rekursi dicapai"
 
 #: glib/gregex.c:299
 msgid "invalid combination of newline flags"
-msgstr "kombinasi bendera baris baru yang tak valid"
+msgstr "kombinasi tanda baris baru yang tak valid"
 
 #: glib/gregex.c:301
 msgid "bad offset"
index a6d0425..334e962 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -18,8 +18,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-03-06 13:00+0000\n"
-"PO-Revision-Date: 2020-03-06 15:23+0100\n"
+"POT-Creation-Date: 2020-03-06 12:58+0000\n"
+"PO-Revision-Date: 2020-03-06 15:30+0100\n"
 "Last-Translator: Milo Casagrande <milo@milo.name>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "Language: it\n"
@@ -3086,101 +3086,141 @@ msgstr "Spostamento tra oggetti mount non supportato"
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Impossibile determinare l'utilizzo del disco di %s: %s"
 
-#: gio/glocalfileinfo.c:755
+#: gio/glocalfileinfo.c:760
 msgid "Attribute value must be non-NULL"
 msgstr "Il valore dell'attributo deve essere non-NULL"
 
-#: gio/glocalfileinfo.c:762
+#: gio/glocalfileinfo.c:767
 msgid "Invalid attribute type (string expected)"
 msgstr "Tipo di attributo non valido (attesa stringa)"
 
-#: gio/glocalfileinfo.c:769
+#: gio/glocalfileinfo.c:774
 msgid "Invalid extended attribute name"
 msgstr "Nome di attributo esteso non valido"
 
-#: gio/glocalfileinfo.c:809
+#: gio/glocalfileinfo.c:814
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Errore nell'impostare l'attributo esteso «%s»: %s"
 
-#: gio/glocalfileinfo.c:1637
+#: gio/glocalfileinfo.c:1650
 msgid " (invalid encoding)"
 msgstr " (codifica non valida)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1814 gio/glocalfileoutputstream.c:909
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "Errore nel recuperare informazioni per il file «%s»: %s"
 
-#: gio/glocalfileinfo.c:2071
+#: gio/glocalfileinfo.c:2084
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Errore nel recuperare informazioni per il descrittore di file: %s"
 
-#: gio/glocalfileinfo.c:2116
+#: gio/glocalfileinfo.c:2129
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Tipo di attributo non valido (atteso unit32)"
 
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2147
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Tipo di attributo non valido (atteso uint64)"
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: gio/glocalfileinfo.c:2166 gio/glocalfileinfo.c:2185
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Tipo di attributo non valido (attesa stringa di byte)"
 
-#: gio/glocalfileinfo.c:2219
+#: gio/glocalfileinfo.c:2232
 msgid "Cannot set permissions on symlinks"
 msgstr "Impossibile impostare i permessi sui collegamenti simbolici"
 
-#: gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2248
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Errore nell'impostare i permessi: %s"
 
-#: gio/glocalfileinfo.c:2286
+#: gio/glocalfileinfo.c:2299
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Errore nell'impostare il proprietario: %s"
 
-#: gio/glocalfileinfo.c:2309
+#: gio/glocalfileinfo.c:2322
 msgid "symlink must be non-NULL"
 msgstr "il collegamento simbolico deve essere non-NULL"
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
+#: gio/glocalfileinfo.c:2362
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Errore nell'impostare il collegamento simbolico: %s"
 
-#: gio/glocalfileinfo.c:2328
+#: gio/glocalfileinfo.c:2341
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 "Errore nell'impostare il collegamento simbolico: il file non è un "
 "collegamento"
 
-#: gio/glocalfileinfo.c:2454
+#: gio/glocalfileinfo.c:2413
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr ""
+"%d nanosecondi aggiuntivi per la marcatura temporale UNIX %lld sono negativi"
+
+#: gio/glocalfileinfo.c:2422
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr ""
+"%d nanosecondi aggiuntivi per la marcatura temporale UNIX %lld raggiungono 1 "
+"secondo"
+
+#: gio/glocalfileinfo.c:2432
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr "La marcatura temporale UNIX %lld non può essere contenuta in 64-bit"
+
+#: gio/glocalfileinfo.c:2443
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr ""
+"La marcatura temporale %lld è al di fuori dell'intervallo supportato da "
+"Windows"
+
+#: gio/glocalfileinfo.c:2507
+#, c-format
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr "Impossibile convertire il nome file «%s» a UTF-16"
+
+#: gio/glocalfileinfo.c:2526
+#, c-format
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr "Impossibile aprire il file «%s»: Errore Windows %lu"
+
+#: gio/glocalfileinfo.c:2539
+#, c-format
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr "Errore nell'impostare l'ora di modifica o accesso del file «%s»: %lu"
+
+#: gio/glocalfileinfo.c:2640
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Errore nell'impostare l'ora di modifica o accesso: %s"
 
 # lasciata minuscola come per precedente messaggio
 #   "symlink must be non-NULL"
-#: gio/glocalfileinfo.c:2477
+#: gio/glocalfileinfo.c:2663
 msgid "SELinux context must be non-NULL"
 msgstr "il contesto SELinux deve essere non-NULL"
 
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2678
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Errore nell'impostare il contesto SELinux: %s"
 
-#: gio/glocalfileinfo.c:2499
+#: gio/glocalfileinfo.c:2685
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux non è abilitato su questo sistema"
 
 # %s è l'attributo
-#: gio/glocalfileinfo.c:2591
+#: gio/glocalfileinfo.c:2777
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Impostazione dell'attributo %s non supportata"
@@ -4209,12 +4249,12 @@ msgstr "Messaggio di controllo inatteso, ottenuti %d"
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "Errore durante la disabilitazione di SO_PASSCRED: %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:362 gio/gunixinputstream.c:383
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "Errore nel leggere dal descrittore di file: %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
+#: gio/gunixinputstream.c:416 gio/gunixoutputstream.c:525
 #: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
@@ -4224,9 +4264,9 @@ msgstr "Errore nel chiudere il descrittore di file: %s"
 msgid "Filesystem root"
 msgstr "File system radice"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:362 gio/gunixoutputstream.c:382
+#: gio/gunixoutputstream.c:469 gio/gunixoutputstream.c:489
+#: gio/gunixoutputstream.c:635
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "Errore nello scrivere sul descrittore di file: %s"
index 48ec083..0c0516a 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -27,8 +27,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib glib-2-28\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-02-07 20:17+0000\n"
-"PO-Revision-Date: 2020-02-08 20:00+0900\n"
+"POT-Creation-Date: 2020-06-05 07:15+0000\n"
+"PO-Revision-Date: 2020-06-10 18:45+0900\n"
 "Last-Translator: sicklylife <translation@sicklylife.jp>\n"
 "Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
 "Language: ja\n"
@@ -297,7 +297,7 @@ msgstr "ストリームはすでに閉じています"
 msgid "Truncate not supported on base stream"
 msgstr "ベースストリームの切りつめはサポートしていません"
 
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1871 gio/gdbusprivate.c:1411
+#: gio/gcancellable.c:319 gio/gdbusconnection.c:1862 gio/gdbusprivate.c:1411
 #: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
 #, c-format
 msgid "Operation was cancelled"
@@ -317,13 +317,13 @@ msgstr "変換先に十分な空きがありません"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:447 glib/gconvert.c:877
-#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2453
+#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2461
 #: glib/gutf8.c:875 glib/gutf8.c:1328
 msgid "Invalid byte sequence in conversion input"
 msgstr "変換する入力に無効なバイトの並びがあります"
 
 #: gio/gcharsetconverter.c:347 glib/gconvert.c:455 glib/gconvert.c:791
-#: glib/giochannel.c:1571 glib/giochannel.c:2465
+#: glib/giochannel.c:1571 glib/giochannel.c:2473
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "変換中にエラーが発生しました: %s"
@@ -356,23 +356,23 @@ msgstr "不明な種類"
 msgid "%s filetype"
 msgstr "%s (ファイルの種類)"
 
-#: gio/gcredentials.c:289
+#: gio/gcredentials.c:323
 msgid "GCredentials contains invalid data"
 msgstr "GCredentials が不正なデータを含んでいます"
 
-#: gio/gcredentials.c:345 gio/gcredentials.c:609
+#: gio/gcredentials.c:383 gio/gcredentials.c:667
 msgid "GCredentials is not implemented on this OS"
 msgstr "この OS では GCredentials は実装されていません"
 
-#: gio/gcredentials.c:503
+#: gio/gcredentials.c:538 gio/gcredentials.c:556
 msgid "There is no GCredentials support for your platform"
 msgstr "このプラットフォームは GCredentials をサポートしていません"
 
-#: gio/gcredentials.c:552
+#: gio/gcredentials.c:607
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr "GCredentials がこの OS のプロセス ID を含んでいません"
 
-#: gio/gcredentials.c:603
+#: gio/gcredentials.c:661
 msgid "Credentials spoofing is not possible on this OS"
 msgstr "この OS では資格情報のなりすましはできません"
 
@@ -524,7 +524,7 @@ msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr ""
 "セッションバスのアドレスを決定できません (この OS では実装されていません)"
 
-#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7191
+#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7192
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -533,7 +533,7 @@ msgstr ""
 "DBUS_STARTER_BUS_TYPE 環境変数からバスアドレスを決定できません — “%s”は不明な"
 "値です"
 
-#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7200
+#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7201
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -566,12 +566,12 @@ msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr ""
 "GDBusAuthObserver::authorize-authenticated-peer 経由でキャンセルされました"
 
-#: gio/gdbusauthmechanismsha1.c:264
+#: gio/gdbusauthmechanismsha1.c:265
 #, c-format
 msgid "Error when getting information for directory “%s”: %s"
 msgstr "ディレクトリ“%s”の情報取得中にエラーが発生しました: %s"
 
-#: gio/gdbusauthmechanismsha1.c:276
+#: gio/gdbusauthmechanismsha1.c:280
 #, c-format
 msgid ""
 "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -579,86 +579,86 @@ msgstr ""
 "ディレクトリ“%s”のパーミッションが不正です (0700 モードを期待しましたが 0%o "
 "でした)"
 
-#: gio/gdbusauthmechanismsha1.c:301
+#: gio/gdbusauthmechanismsha1.c:310
 #, c-format
 msgid "Error creating directory “%s”: %s"
 msgstr "ディレクトリ“%s”の作成中にエラーが発生しました: %s"
 
-#: gio/gdbusauthmechanismsha1.c:348
+#: gio/gdbusauthmechanismsha1.c:355
 #, c-format
 msgid "Error opening keyring “%s” for reading: "
 msgstr "キーリング“%s”を読み取り用に開くときにエラーが発生しました: "
 
-#: gio/gdbusauthmechanismsha1.c:371 gio/gdbusauthmechanismsha1.c:689
+#: gio/gdbusauthmechanismsha1.c:378 gio/gdbusauthmechanismsha1.c:700
 #, c-format
 msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr "“%2$s”のキーリングの、内容が“%3$s”の %1$d 行目が不正です"
 
-#: gio/gdbusauthmechanismsha1.c:385 gio/gdbusauthmechanismsha1.c:703
+#: gio/gdbusauthmechanismsha1.c:392 gio/gdbusauthmechanismsha1.c:714
 #, c-format
 msgid ""
 "First token of line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr ""
 "“%2$s”のキーリングの、内容が“%3$s”の %1$d 行目の最初のトークンが不正です"
 
-#: gio/gdbusauthmechanismsha1.c:399 gio/gdbusauthmechanismsha1.c:717
+#: gio/gdbusauthmechanismsha1.c:406 gio/gdbusauthmechanismsha1.c:728
 #, c-format
 msgid ""
 "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr ""
 "“%2$s”のキーリングの、内容が“%3$s”の %1$d 行目の 2 番目のトークンが不正です"
 
-#: gio/gdbusauthmechanismsha1.c:423
+#: gio/gdbusauthmechanismsha1.c:430
 #, c-format
 msgid "Didn’t find cookie with id %d in the keyring at “%s”"
 msgstr "“%2$s”のキーリングの id %1$d のクッキーが見つかりませんでした"
 
-#: gio/gdbusauthmechanismsha1.c:505
-#, c-format
-msgid "Error deleting stale lock file “%s”: %s"
-msgstr "stale したロックファイル“%s”の削除中にエラーが発生しました: %s"
-
-#: gio/gdbusauthmechanismsha1.c:537
+#: gio/gdbusauthmechanismsha1.c:476
 #, c-format
 msgid "Error creating lock file “%s”: %s"
 msgstr "ロックファイル“%s”の作成中にエラーが発生しました: %s"
 
-#: gio/gdbusauthmechanismsha1.c:568
+#: gio/gdbusauthmechanismsha1.c:540
+#, c-format
+msgid "Error deleting stale lock file “%s”: %s"
+msgstr "stale したロックファイル“%s”の削除中にエラーが発生しました: %s"
+
+#: gio/gdbusauthmechanismsha1.c:579
 #, c-format
 msgid "Error closing (unlinked) lock file “%s”: %s"
 msgstr "(unlink した) ロックファイル“%s”を閉じるときにエラーが発生しました: %s"
 
-#: gio/gdbusauthmechanismsha1.c:579
+#: gio/gdbusauthmechanismsha1.c:590
 #, c-format
 msgid "Error unlinking lock file “%s”: %s"
 msgstr "ロックファイル“%s”の unlink 中にエラーが発生しました: %s"
 
-#: gio/gdbusauthmechanismsha1.c:656
+#: gio/gdbusauthmechanismsha1.c:667
 #, c-format
 msgid "Error opening keyring “%s” for writing: "
 msgstr "キーリング“%s”を書き込み用に開くときにエラーが発生しました: "
 
-#: gio/gdbusauthmechanismsha1.c:852
+#: gio/gdbusauthmechanismsha1.c:863
 #, c-format
 msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
 msgstr "(さらに“%s”のロック解放も失敗しました: %s) "
 
-#: gio/gdbusconnection.c:604 gio/gdbusconnection.c:2400
+#: gio/gdbusconnection.c:595 gio/gdbusconnection.c:2391
 msgid "The connection is closed"
 msgstr "接続が閉じています"
 
-#: gio/gdbusconnection.c:1901
+#: gio/gdbusconnection.c:1892
 msgid "Timeout was reached"
 msgstr "タイムアウトしました"
 
-#: gio/gdbusconnection.c:2522
+#: gio/gdbusconnection.c:2513
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 "クライアントサイドの接続を作成しようとしましたがサポートしていないフラグに遭"
 "遇しました"
 
-#: gio/gdbusconnection.c:4162 gio/gdbusconnection.c:4509
+#: gio/gdbusconnection.c:4163 gio/gdbusconnection.c:4510
 #, c-format
 msgid ""
 "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -666,77 +666,77 @@ msgstr ""
 "パス %s のオブジェクトにインターフェース“org.freedesktop.DBus.Properties”があ"
 "りません"
 
-#: gio/gdbusconnection.c:4304
+#: gio/gdbusconnection.c:4305
 #, c-format
 msgid "No such property “%s”"
 msgstr "プロパティ“%s”がありません"
 
-#: gio/gdbusconnection.c:4316
+#: gio/gdbusconnection.c:4317
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "プロパティ“%s”が読み取り可能ではありません"
 
-#: gio/gdbusconnection.c:4327
+#: gio/gdbusconnection.c:4328
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "プロパティ“%s”が書き込み可能ではありません"
 
-#: gio/gdbusconnection.c:4347
+#: gio/gdbusconnection.c:4348
 #, c-format
 msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
 msgstr ""
 "プロパティ“%s”の設定中にエラーが発生しました: 期待した型は“%s”ですが“%s”でし"
 "た"
 
-#: gio/gdbusconnection.c:4452 gio/gdbusconnection.c:4660
-#: gio/gdbusconnection.c:6631
+#: gio/gdbusconnection.c:4453 gio/gdbusconnection.c:4661
+#: gio/gdbusconnection.c:6632
 #, c-format
 msgid "No such interface “%s”"
 msgstr "インターフェース“%s”がありません"
 
-#: gio/gdbusconnection.c:4878 gio/gdbusconnection.c:7140
+#: gio/gdbusconnection.c:4879 gio/gdbusconnection.c:7141
 #, c-format
 msgid "No such interface “%s” on object at path %s"
 msgstr "パス %2$s のオブジェクトにインターフェース“%1$s”がありません"
 
-#: gio/gdbusconnection.c:4976
+#: gio/gdbusconnection.c:4977
 #, c-format
 msgid "No such method “%s”"
 msgstr "メソッド“%s”がありません"
 
-#: gio/gdbusconnection.c:5007
+#: gio/gdbusconnection.c:5008
 #, c-format
 msgid "Type of message, “%s”, does not match expected type “%s”"
 msgstr "メッセージの型“%s”が期待した型“%s”に一致しません"
 
-#: gio/gdbusconnection.c:5205
+#: gio/gdbusconnection.c:5206
 #, c-format
 msgid "An object is already exported for the interface %s at %s"
 msgstr ""
 "オブジェクトはすでに %2$s のインターフェース %1$s にエクスポートされています"
 
-#: gio/gdbusconnection.c:5431
+#: gio/gdbusconnection.c:5432
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "プロパティ %s.%s を取得できません"
 
-#: gio/gdbusconnection.c:5487
+#: gio/gdbusconnection.c:5488
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "プロパティ %s.%s を設定できません"
 
-#: gio/gdbusconnection.c:5665
+#: gio/gdbusconnection.c:5666
 #, c-format
 msgid "Method “%s” returned type “%s”, but expected “%s”"
 msgstr "メソッド“%s”は“%s”型を返しましたが、“%s”を期待していました"
 
-#: gio/gdbusconnection.c:6742
+#: gio/gdbusconnection.c:6743
 #, c-format
 msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
 msgstr ""
 "シグネチャ“%3$s”を持ったインターフェース“%2$s”にメソッド“%1$s”が存在しません"
 
-#: gio/gdbusconnection.c:6863
+#: gio/gdbusconnection.c:6864
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "サブツリーはすでに %s にエクスポートされています"
@@ -953,17 +953,17 @@ msgstr "ハードウェアプロファイルを取得できません: %s"
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "/var/lib/dbus/machine-id または /etc/machine-id を読み込めません: "
 
-#: gio/gdbusproxy.c:1625
+#: gio/gdbusproxy.c:1562
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "%s を StartServiceByName で呼び出すときにエラーが発生しました: "
 
-#: gio/gdbusproxy.c:1648
+#: gio/gdbusproxy.c:1585
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "StartServiceByName(\"%2$s\") メソッドから期待してない応答 %1$d"
 
-#: gio/gdbusproxy.c:2748 gio/gdbusproxy.c:2883
+#: gio/gdbusproxy.c:2685 gio/gdbusproxy.c:2820
 #, c-format
 msgid ""
 "Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1019,13 +1019,13 @@ msgstr ""
 "“%s COMMAND --help”で各コマンドのヘルプを表示します。\n"
 
 #: gio/gdbus-tool.c:197 gio/gdbus-tool.c:264 gio/gdbus-tool.c:336
-#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:846 gio/gdbus-tool.c:1183
-#: gio/gdbus-tool.c:1668
+#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:850 gio/gdbus-tool.c:1187
+#: gio/gdbus-tool.c:1672
 #, c-format
 msgid "Error: %s\n"
 msgstr "エラー: %s\n"
 
-#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1684
+#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1688
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr "イントロスペクション XML の解析中にエラーが発生しました: %s\n"
@@ -1055,17 +1055,17 @@ msgstr "接続の終端のオプション:"
 msgid "Options specifying the connection endpoint"
 msgstr "接続の終端を指定するオプション"
 
-#: gio/gdbus-tool.c:429
+#: gio/gdbus-tool.c:430
 #, c-format
 msgid "No connection endpoint specified"
 msgstr "接続の終端が指定されていません"
 
-#: gio/gdbus-tool.c:439
+#: gio/gdbus-tool.c:440
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr "複数の接続の終端が指定されています"
 
-#: gio/gdbus-tool.c:509
+#: gio/gdbus-tool.c:513
 #, c-format
 msgid ""
 "Warning: According to introspection data, interface “%s” does not exist\n"
@@ -1073,7 +1073,7 @@ msgstr ""
 "警告: イントロスペクションのデータによれば、インターフェース“%s”は存在しませ"
 "ん\n"
 
-#: gio/gdbus-tool.c:518
+#: gio/gdbus-tool.c:522
 #, c-format
 msgid ""
 "Warning: According to introspection data, method “%s” does not exist on "
@@ -1082,223 +1082,223 @@ msgstr ""
 "警告: イントロスペクションのデータによれば、メソッド“%s”はインターフェー"
 "ス“%s”に存在しません\n"
 
-#: gio/gdbus-tool.c:580
+#: gio/gdbus-tool.c:584
 msgid "Optional destination for signal (unique name)"
 msgstr ""
 
-#: gio/gdbus-tool.c:581
+#: gio/gdbus-tool.c:585
 msgid "Object path to emit signal on"
 msgstr ""
 
-#: gio/gdbus-tool.c:582
+#: gio/gdbus-tool.c:586
 msgid "Signal and interface name"
 msgstr ""
 
-#: gio/gdbus-tool.c:615
+#: gio/gdbus-tool.c:619
 msgid "Emit a signal."
 msgstr ""
 
-#: gio/gdbus-tool.c:670 gio/gdbus-tool.c:977 gio/gdbus-tool.c:1771
-#: gio/gdbus-tool.c:2003 gio/gdbus-tool.c:2223
+#: gio/gdbus-tool.c:674 gio/gdbus-tool.c:981 gio/gdbus-tool.c:1775
+#: gio/gdbus-tool.c:2007 gio/gdbus-tool.c:2227
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "接続中にエラーが発生しました: %s\n"
 
-#: gio/gdbus-tool.c:690
+#: gio/gdbus-tool.c:694
 #, c-format
 msgid "Error: %s is not a valid unique bus name.\n"
 msgstr "エラー: %s は正しいユニークなバス名ではありません。\n"
 
-#: gio/gdbus-tool.c:709 gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1814
+#: gio/gdbus-tool.c:713 gio/gdbus-tool.c:1024 gio/gdbus-tool.c:1818
 msgid "Error: Object path is not specified\n"
 msgstr "エラー: オブジェクトパスが指定されていません\n"
 
-#: gio/gdbus-tool.c:732 gio/gdbus-tool.c:1040 gio/gdbus-tool.c:1834
-#: gio/gdbus-tool.c:2074
+#: gio/gdbus-tool.c:736 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1838
+#: gio/gdbus-tool.c:2078
 #, c-format
 msgid "Error: %s is not a valid object path\n"
 msgstr "エラー: %s は正しいオブジェクトパスではありません\n"
 
-#: gio/gdbus-tool.c:752
+#: gio/gdbus-tool.c:756
 msgid "Error: Signal name is not specified\n"
 msgstr "エラー: シグナル名を指定していません\n"
 
-#: gio/gdbus-tool.c:766
+#: gio/gdbus-tool.c:770
 #, c-format
 msgid "Error: Signal name “%s” is invalid\n"
 msgstr "エラー: シグナル名“%s”は正しくありません\n"
 
-#: gio/gdbus-tool.c:778
+#: gio/gdbus-tool.c:782
 #, c-format
 msgid "Error: %s is not a valid interface name\n"
 msgstr "エラー: %s は正しいインターフェース名ではありません\n"
 
-#: gio/gdbus-tool.c:784
+#: gio/gdbus-tool.c:788
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr "エラー: %s は正しいメンバー名ではありません\n"
 
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:821 gio/gdbus-tool.c:1152
+#: gio/gdbus-tool.c:825 gio/gdbus-tool.c:1156
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr "パラメーター %d の解析中にエラーが発生しました: %s\n"
 
-#: gio/gdbus-tool.c:853
+#: gio/gdbus-tool.c:857
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr "接続のフラッシュ中にエラーが発生しました: %s\n"
 
-#: gio/gdbus-tool.c:880
+#: gio/gdbus-tool.c:884
 msgid "Destination name to invoke method on"
 msgstr "メソッドを起動する対象の名前"
 
-#: gio/gdbus-tool.c:881
+#: gio/gdbus-tool.c:885
 msgid "Object path to invoke method on"
 msgstr "メソッドを起動するオブジェクトパス"
 
-#: gio/gdbus-tool.c:882
+#: gio/gdbus-tool.c:886
 msgid "Method and interface name"
 msgstr "メソッドとインターフェースの名前"
 
-#: gio/gdbus-tool.c:883
+#: gio/gdbus-tool.c:887
 msgid "Timeout in seconds"
 msgstr ""
 
-#: gio/gdbus-tool.c:922
+#: gio/gdbus-tool.c:926
 msgid "Invoke a method on a remote object."
 msgstr "リモートオブジェクトでメソッドを起動します。"
 
-#: gio/gdbus-tool.c:994 gio/gdbus-tool.c:1788 gio/gdbus-tool.c:2028
+#: gio/gdbus-tool.c:998 gio/gdbus-tool.c:1792 gio/gdbus-tool.c:2032
 msgid "Error: Destination is not specified\n"
 msgstr "エラー: 対象を指定していません\n"
 
-#: gio/gdbus-tool.c:1005 gio/gdbus-tool.c:1805 gio/gdbus-tool.c:2039
+#: gio/gdbus-tool.c:1009 gio/gdbus-tool.c:1809 gio/gdbus-tool.c:2043
 #, c-format
 msgid "Error: %s is not a valid bus name\n"
 msgstr "エラー: %s は正しいバス名ではありません\n"
 
-#: gio/gdbus-tool.c:1055
+#: gio/gdbus-tool.c:1059
 msgid "Error: Method name is not specified\n"
 msgstr "エラー: メソッド名を指定していません\n"
 
-#: gio/gdbus-tool.c:1066
+#: gio/gdbus-tool.c:1070
 #, c-format
 msgid "Error: Method name “%s” is invalid\n"
 msgstr "エラー: メソッド名“%s”は正しくありません\n"
 
-#: gio/gdbus-tool.c:1144
+#: gio/gdbus-tool.c:1148
 #, c-format
 msgid "Error parsing parameter %d of type “%s”: %s\n"
 msgstr "型“%2$s”のパラメーター %1$d の解析中にエラーが発生しました: %3$s\n"
 
-#: gio/gdbus-tool.c:1630
+#: gio/gdbus-tool.c:1634
 msgid "Destination name to introspect"
 msgstr "イントロスペクト先の名前"
 
-#: gio/gdbus-tool.c:1631
+#: gio/gdbus-tool.c:1635
 msgid "Object path to introspect"
 msgstr "イントロスペクトするオブジェクトパス"
 
-#: gio/gdbus-tool.c:1632
+#: gio/gdbus-tool.c:1636
 msgid "Print XML"
 msgstr "XML を表示する"
 
-#: gio/gdbus-tool.c:1633
+#: gio/gdbus-tool.c:1637
 msgid "Introspect children"
 msgstr "子をイントロスペクトする"
 
-#: gio/gdbus-tool.c:1634
+#: gio/gdbus-tool.c:1638
 msgid "Only print properties"
 msgstr "プロパティのみ表示する"
 
-#: gio/gdbus-tool.c:1723
+#: gio/gdbus-tool.c:1727
 msgid "Introspect a remote object."
 msgstr "リモートオブジェクトをイントロスペクトします。"
 
-#: gio/gdbus-tool.c:1929
+#: gio/gdbus-tool.c:1933
 msgid "Destination name to monitor"
 msgstr "監視先の名前"
 
-#: gio/gdbus-tool.c:1930
+#: gio/gdbus-tool.c:1934
 msgid "Object path to monitor"
 msgstr "監視するオブジェクトパス"
 
-#: gio/gdbus-tool.c:1955
+#: gio/gdbus-tool.c:1959
 msgid "Monitor a remote object."
 msgstr "リモートオブジェクトを監視します。"
 
-#: gio/gdbus-tool.c:2013
+#: gio/gdbus-tool.c:2017
 msgid "Error: can’t monitor a non-message-bus connection\n"
 msgstr "エラー: non-message-bus 接続を監視できません\n"
 
-#: gio/gdbus-tool.c:2137
+#: gio/gdbus-tool.c:2141
 msgid "Service to activate before waiting for the other one (well-known name)"
 msgstr ""
 
-#: gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:2144
 msgid ""
 "Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
 "(default)"
 msgstr ""
 
-#: gio/gdbus-tool.c:2188
+#: gio/gdbus-tool.c:2192
 msgid "[OPTION…] BUS-NAME"
 msgstr "[オプション…] BUS-NAME"
 
-#: gio/gdbus-tool.c:2189
+#: gio/gdbus-tool.c:2193
 msgid "Wait for a bus name to appear."
 msgstr "バス名の表示を待ちます。"
 
-#: gio/gdbus-tool.c:2265
+#: gio/gdbus-tool.c:2269
 msgid "Error: A service to activate for must be specified.\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:2270
+#: gio/gdbus-tool.c:2274
 msgid "Error: A service to wait for must be specified.\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:2275
+#: gio/gdbus-tool.c:2279
 msgid "Error: Too many arguments.\n"
 msgstr "エラー: 引数が多すぎます。\n"
 
-#: gio/gdbus-tool.c:2283 gio/gdbus-tool.c:2290
+#: gio/gdbus-tool.c:2287 gio/gdbus-tool.c:2294
 #, c-format
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "エラー: %s は正しい既知のバス名ではありません。\n"
 
-#: gio/gdesktopappinfo.c:2072 gio/gdesktopappinfo.c:4870
+#: gio/gdesktopappinfo.c:2071 gio/gdesktopappinfo.c:4886
 msgid "Unnamed"
 msgstr "名前なし"
 
-#: gio/gdesktopappinfo.c:2482
+#: gio/gdesktopappinfo.c:2481
 msgid "Desktop file didn’t specify Exec field"
 msgstr "デスクトップファイルで Exec フィールドを指定していませんでした"
 
-#: gio/gdesktopappinfo.c:2754
+#: gio/gdesktopappinfo.c:2761
 msgid "Unable to find terminal required for application"
 msgstr "アプリケーションで必要な端末が見つかりませんでした"
 
-#: gio/gdesktopappinfo.c:3406
+#: gio/gdesktopappinfo.c:3413
 #, c-format
 msgid "Can’t create user application configuration folder %s: %s"
 msgstr "ユーザーのアプリケーション設定フォルダー %s を作成できません: %s"
 
-#: gio/gdesktopappinfo.c:3410
+#: gio/gdesktopappinfo.c:3417
 #, c-format
 msgid "Can’t create user MIME configuration folder %s: %s"
 msgstr "ユーザーの MIME 型設定フォルダー %s を作成できません: %s"
 
-#: gio/gdesktopappinfo.c:3650 gio/gdesktopappinfo.c:3674
+#: gio/gdesktopappinfo.c:3657 gio/gdesktopappinfo.c:3681
 msgid "Application information lacks an identifier"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:3908
+#: gio/gdesktopappinfo.c:3915
 #, c-format
 msgid "Can’t create user desktop file %s"
 msgstr "ユーザーのデスクトップファイル %s を作成できません"
 
-#: gio/gdesktopappinfo.c:4042
+#: gio/gdesktopappinfo.c:4049
 #, c-format
 msgid "Custom definition for %s"
 msgstr "%s に対する独自の設定"
@@ -1326,12 +1326,12 @@ msgstr "ドライブは start を実装していません"
 msgid "drive doesn’t implement stop"
 msgstr "ドライブは stop を実装していません"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
-#: gio/gdummytlsbackend.c:509
+#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
+#: gio/gdummytlsbackend.c:513
 msgid "TLS support is not available"
 msgstr "TLS サポートは利用できません"
 
-#: gio/gdummytlsbackend.c:419
+#: gio/gdummytlsbackend.c:423
 msgid "DTLS support is not available"
 msgstr "DTLS サポートは利用できません"
 
@@ -1365,7 +1365,7 @@ msgstr "GEmblemedIcon に対する GEmblem を想定していました"
 #: gio/gfile.c:1976 gio/gfile.c:2031 gio/gfile.c:3722 gio/gfile.c:3777
 #: gio/gfile.c:4055 gio/gfile.c:4523 gio/gfile.c:4934 gio/gfile.c:5019
 #: gio/gfile.c:5109 gio/gfile.c:5206 gio/gfile.c:5293 gio/gfile.c:5394
-#: gio/gfile.c:8098 gio/gfile.c:8188 gio/gfile.c:8272
+#: gio/gfile.c:8104 gio/gfile.c:8194 gio/gfile.c:8278
 #: gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "サポートしていない操作です"
@@ -1440,7 +1440,7 @@ msgstr "ファイル名に“%c”を含めることはできません"
 msgid "volume doesn’t implement mount"
 msgstr "ボリュームはマウントを実装していません"
 
-#: gio/gfile.c:6868 gio/gfile.c:6914
+#: gio/gfile.c:6871 gio/gfile.c:6919
 msgid "No application is registered as handling this file"
 msgstr "このファイルを扱うアプリケーションが登録されていません"
 
@@ -1603,7 +1603,7 @@ msgstr "ファイルが移動時に保持"
 msgid "“version” takes no arguments"
 msgstr "“version”は引数を取りません"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:864
+#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
 msgid "Usage:"
 msgstr "用法:"
 
@@ -1708,9 +1708,9 @@ msgid ""
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/file.txt as location."
 msgstr ""
-"gio cat は伝統的な cat ユーティリティのように動作するツールで、ローカ"
-"ã\83«ã\83\95ã\82¡ã\82¤ã\83«ã\81®ä»£ã\82\8fã\82\8aã\81« GIO ã\83­ã\82±ã\83¼ã\82·ã\83§ã\83³ã\82\92使ç\94¨ã\81§ã\81\8dã\81¾ã\81\99 (ä¾\8b"
-"smb://server/resource/file.txt)。"
+"gio cat は伝統的な cat ユーティリティのように動作するツールで、ローカルファイ"
+"ã\83«ã\81®ä»£ã\82\8fã\82\8aã\81« GIO ã\83­ã\82±ã\83¼ã\82·ã\83§ã\83³ã\82\92使ç\94¨ã\81§ã\81\8dã\81¾ã\81\99 (ä¾\8b: smb://server/resource/file."
+"txt)。"
 
 #: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:364 gio/gio-tool-mkdir.c:76
 #: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
@@ -1771,9 +1771,8 @@ msgid ""
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/file.txt as location."
 msgstr ""
-"gio copy は伝統的な cp ユーティリティに似たツールで、ローカルファイルの"
-"代わりに GIO ロケーションを使用できます (例: "
-"smb://server/resource/file.txt)。"
+"gio copy は伝統的な cp ユーティリティに似たツールで、ローカルファイルの代わり"
+"に GIO ロケーションを使用できます (例: smb://server/resource/file.txt)。"
 
 #: gio/gio-tool-copy.c:149
 #, c-format
@@ -1922,9 +1921,9 @@ msgid ""
 "for the mimetype. If a handler is given, it is set as the default\n"
 "handler for the mimetype."
 msgstr ""
-"ハンドラを指定しない場合、MIME タイプに登録されているアプリケーションと推"
-"奨されているアプリケーションの一覧を表示します。ハンドラを指定した場合、そ"
-"ã\81®ã\83\8fã\83³ã\83\89ã\83©ã\82\92 MIME ã\82¿ã\82¤ã\83\97ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®ã\83\8fã\83³ã\83\89ã\83©ã\81¨ã\81\97ã\81¦è¨­å®\9aã\81\97ã\81¾ã\81\99ã\80\82"
+"ハンドラを指定しない場合、MIME タイプに登録されているアプリケーションと推奨さ"
+"れているアプリケーションの一覧を表示します。ハンドラを指定した場合、そのハン"
+"ドラを MIME タイプのデフォルトのハンドラとして設定します。"
 
 #: gio/gio-tool-mime.c:100
 msgid "Must specify a single mimetype, and maybe a handler"
@@ -1980,9 +1979,8 @@ msgid ""
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/mydir as location."
 msgstr ""
-"gio mkdir は伝統的な mkdir ユーティリティに似たツールで、ローカルファイ"
-"ルの代わりに GIO ロケーションを使用できます (例: "
-"smb://server/resource/mydir)。"
+"gio mkdir は伝統的な mkdir ユーティリティに似たツールで、ローカルファイルの代"
+"わりに GIO ロケーションを使用できます (例: smb://server/resource/mydir)。"
 
 #: gio/gio-tool-monitor.c:37
 msgid "Monitor a directory (default: depends on type)"
@@ -2115,9 +2113,8 @@ msgid ""
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/file.txt as location"
 msgstr ""
-"gio move は伝統的な mv ユーティリティに似たツールで、ローカルファイルの"
-"代わりに GIO ロケーションを使用できます (例: "
-"smb://server/resource/file.txt)"
+"gio move は伝統的な mv ユーティリティに似たツールで、ローカルファイルの代わり"
+"に GIO ロケーションを使用できます (例: smb://server/resource/file.txt)"
 
 #: gio/gio-tool-move.c:143
 #, c-format
@@ -2329,8 +2326,7 @@ msgid ""
 "The directories to load files referenced in FILE from (default: current "
 "directory)"
 msgstr ""
-"対象のファイル (FILE) を読み込むディレクトリ (デフォルト: 現在のディレクト"
-"リ)"
+"対象のファイル (FILE) を読み込むディレクトリ (デフォルト: 現在のディレクトリ)"
 
 #: gio/glib-compile-resources.c:739 gio/glib-compile-schemas.c:2173
 #: gio/glib-compile-schemas.c:2202
@@ -2989,98 +2985,134 @@ msgstr "マウント間の移動はサポートしていません"
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "%s のディスク使用量を確認できませんでした: %s"
 
-#: gio/glocalfileinfo.c:755
+#: gio/glocalfileinfo.c:760
 msgid "Attribute value must be non-NULL"
 msgstr "属性値を NULL にしないでください"
 
-#: gio/glocalfileinfo.c:762
+#: gio/glocalfileinfo.c:767
 msgid "Invalid attribute type (string expected)"
 msgstr "属性の種類が不正です (文字列を想定していた)"
 
-#: gio/glocalfileinfo.c:769
+#: gio/glocalfileinfo.c:774
 msgid "Invalid extended attribute name"
 msgstr "拡張属性の名前が不正です"
 
-#: gio/glocalfileinfo.c:809
+#: gio/glocalfileinfo.c:814
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "拡張属性“%s”の設定中にエラーが発生しました: %s"
 
-#: gio/glocalfileinfo.c:1637
+#: gio/glocalfileinfo.c:1650
 msgid " (invalid encoding)"
 msgstr " (不正なエンコーディング)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1814 gio/glocalfileoutputstream.c:909
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "ファイル“%s”の情報取得中にエラーが発生しました: %s"
 
-#: gio/glocalfileinfo.c:2071
+#: gio/glocalfileinfo.c:2084
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "ファイルディスクリプターの情報取得中にエラーが発生しました: %s"
 
-#: gio/glocalfileinfo.c:2116
+#: gio/glocalfileinfo.c:2129
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "属性の種類が不正です (uint32 型を想定していた)"
 
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2147
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "属性の種類が不正です (uint64 型を想定していた)"
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: gio/glocalfileinfo.c:2166 gio/glocalfileinfo.c:2185
 msgid "Invalid attribute type (byte string expected)"
 msgstr "属性の種類が不正です (バイト型の文字列を想定していた)"
 
-#: gio/glocalfileinfo.c:2219
+#: gio/glocalfileinfo.c:2232
 msgid "Cannot set permissions on symlinks"
 msgstr "シンボリックリンクにはアクセス権を設定できません"
 
-#: gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2248
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "アクセス権の設定中にエラーが発生しました: %s"
 
-#: gio/glocalfileinfo.c:2286
+#: gio/glocalfileinfo.c:2299
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "所有者の設定中にエラーが発生しました: %s"
 
-#: gio/glocalfileinfo.c:2309
+#: gio/glocalfileinfo.c:2322
 msgid "symlink must be non-NULL"
 msgstr "シンボリックリンクを NULL にしないでください"
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
+#: gio/glocalfileinfo.c:2362
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "シンボリックリンクの設定中にエラーが発生しました: %s"
 
-#: gio/glocalfileinfo.c:2328
+#: gio/glocalfileinfo.c:2341
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 "シンボリックリンクの設定中にエラーが発生しました: ファイルがリンクではありま"
 "せん"
 
-#: gio/glocalfileinfo.c:2454
+#: gio/glocalfileinfo.c:2413
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2422
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2432
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2443
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2507
+#, c-format
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr "ファイル名“%s”を UTF-16 に変換できません"
+
+#: gio/glocalfileinfo.c:2526
+#, c-format
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr "“%s”を開けません: Windows エラー %lu"
+
+#: gio/glocalfileinfo.c:2539
+#, c-format
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr ""
+"“%s”の最終更新日時または最終アクセス日時の設定中にエラーが発生しました: %lu"
+
+#: gio/glocalfileinfo.c:2640
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "最終更新日時または最終アクセス日時の設定中にエラーが発生しました: %s"
 
-#: gio/glocalfileinfo.c:2477
+#: gio/glocalfileinfo.c:2663
 msgid "SELinux context must be non-NULL"
 msgstr "SELinux のコンテキストを NULL にしないでください"
 
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2678
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "SELinux のコンテキスト指定中にエラーが発生しました: %s"
 
-#: gio/glocalfileinfo.c:2499
+#: gio/glocalfileinfo.c:2685
 msgid "SELinux is not enabled on this system"
 msgstr "このシステムでは SELinux が有効になっていません"
 
-#: gio/glocalfileinfo.c:2591
+#: gio/glocalfileinfo.c:2777
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "%s という属性値は設定できません"
@@ -3835,12 +3867,12 @@ msgstr "GSocketControlMessage は Windows ではサポートしていません"
 msgid "Error receiving message: %s"
 msgstr "メッセージの受信中にエラーが発生しました: %s"
 
-#: gio/gsocket.c:5995
+#: gio/gsocket.c:5983 gio/gsocket.c:6031
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr ""
 
-#: gio/gsocket.c:6004
+#: gio/gsocket.c:6040
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr "この OS では g_socket_get_credentials は実装されていません"
 
@@ -3858,11 +3890,11 @@ msgstr "%s に接続できませんでした: "
 msgid "Could not connect: "
 msgstr "接続できませんでした: "
 
-#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1764
+#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1866
 msgid "Unknown error on connect"
 msgstr "接続時に原因不明のエラーが発生しました"
 
-#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1672
+#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1668
 msgid "Proxying over a non-TCP connection is not supported."
 msgstr ""
 
@@ -3901,67 +3933,67 @@ msgstr "サーバーが SOCKSv4 プロキシサーバーではありません。
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr ""
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
+#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "サーバーが SOCKSv5 プロキシサーバーではありません。"
 
-#: gio/gsocks5proxy.c:167
+#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr "SOCKSv5 プロキシは認証が必要です。"
 
-#: gio/gsocks5proxy.c:177
+#: gio/gsocks5proxy.c:191
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
 msgstr "SOCKSv5 プロキシは GLib がサポートしていない認証方式が必要です。"
 
-#: gio/gsocks5proxy.c:206
+#: gio/gsocks5proxy.c:220
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr "SOCKSv5 プロトコルのユーザー名またはパスワードが長すぎます。"
 
-#: gio/gsocks5proxy.c:236
+#: gio/gsocks5proxy.c:250
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr ""
 "ユーザー名またはパスワードに誤りがあるため、SOCKSv5 認証に失敗しました。"
 
-#: gio/gsocks5proxy.c:286
+#: gio/gsocks5proxy.c:300
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv5 protocol"
 msgstr "SOCKSv5 プロトコルのホスト名“%s”が長すぎます"
 
-#: gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:362
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr "SOCKSv5 プロキシサーバーが不明なアドレス形式を使用しています。"
 
-#: gio/gsocks5proxy.c:355
+#: gio/gsocks5proxy.c:369
 msgid "Internal SOCKSv5 proxy server error."
 msgstr "SOCKSv5 プロキシサーバーの内部エラーです。"
 
-#: gio/gsocks5proxy.c:361
+#: gio/gsocks5proxy.c:375
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr "ルールセットで SOCKSv5 接続が許可されていません。"
 
-#: gio/gsocks5proxy.c:368
+#: gio/gsocks5proxy.c:382
 msgid "Host unreachable through SOCKSv5 server."
 msgstr ""
 
-#: gio/gsocks5proxy.c:374
+#: gio/gsocks5proxy.c:388
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr ""
 
-#: gio/gsocks5proxy.c:380
+#: gio/gsocks5proxy.c:394
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr ""
 
-#: gio/gsocks5proxy.c:386
+#: gio/gsocks5proxy.c:400
 msgid "SOCKSv5 proxy does not support “connect” command."
 msgstr "SOCKSv5 プロキシが“connect”コマンドをサポートしていません。"
 
-#: gio/gsocks5proxy.c:392
+#: gio/gsocks5proxy.c:406
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr "SOCKSv5 プロキシが指定したアドレス形式をサポートしていません。"
 
-#: gio/gsocks5proxy.c:398
+#: gio/gsocks5proxy.c:412
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "不明な SOCKSv5 プロキシエラーです。"
 
@@ -4090,24 +4122,24 @@ msgstr "コントロールメッセージを待ち受けていませんでした
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "SO_PASSCRED の無効化中にエラーが発生しました: %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:362 gio/gunixinputstream.c:383
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "ファイルディスクリプターの読み取り中にエラーが発生しました: %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
+#: gio/gunixinputstream.c:416 gio/gunixoutputstream.c:525
 #: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr "ファイルディスクリプターを閉じるときにエラーが発生しました: %s"
 
-#: gio/gunixmounts.c:2664 gio/gunixmounts.c:2717
+#: gio/gunixmounts.c:2709 gio/gunixmounts.c:2762
 msgid "Filesystem root"
 msgstr "ファイルシステムのルート"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:362 gio/gunixoutputstream.c:382
+#: gio/gunixoutputstream.c:469 gio/gunixoutputstream.c:489
+#: gio/gunixoutputstream.c:635
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "ファイルディスクリプターへの書き込み中にエラーが発生しました: %s"
@@ -4185,77 +4217,77 @@ msgstr "dbus サービスを実行する"
 msgid "Wrong args\n"
 msgstr "引数が間違っています\n"
 
-#: glib/gbookmarkfile.c:756
+#: glib/gbookmarkfile.c:768
 #, c-format
 msgid "Unexpected attribute “%s” for element “%s”"
 msgstr "“%s”は“%s”という要素に対して想定外の属性です"
 
-#: glib/gbookmarkfile.c:767 glib/gbookmarkfile.c:847 glib/gbookmarkfile.c:857
-#: glib/gbookmarkfile.c:969
+#: glib/gbookmarkfile.c:779 glib/gbookmarkfile.c:859 glib/gbookmarkfile.c:869
+#: glib/gbookmarkfile.c:982
 #, c-format
 msgid "Attribute “%s” of element “%s” not found"
 msgstr "“%s”という属性は“%s”という要素にはありません"
 
-#: glib/gbookmarkfile.c:1178 glib/gbookmarkfile.c:1243
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1317
+#: glib/gbookmarkfile.c:1191 glib/gbookmarkfile.c:1256
+#: glib/gbookmarkfile.c:1320 glib/gbookmarkfile.c:1330
 #, c-format
 msgid "Unexpected tag “%s”, tag “%s” expected"
 msgstr "“%s”は想定外のタグです (想定していたタグは“%s”)"
 
-#: glib/gbookmarkfile.c:1203 glib/gbookmarkfile.c:1217
-#: glib/gbookmarkfile.c:1285 glib/gbookmarkfile.c:1331
+#: glib/gbookmarkfile.c:1216 glib/gbookmarkfile.c:1230
+#: glib/gbookmarkfile.c:1298 glib/gbookmarkfile.c:1344
 #, c-format
 msgid "Unexpected tag “%s” inside “%s”"
 msgstr "“%s”は“%s”の中では想定外のタグです"
 
-#: glib/gbookmarkfile.c:1625
+#: glib/gbookmarkfile.c:1624
 #, c-format
 msgid "Invalid date/time ‘%s’ in bookmark file"
 msgstr "ブックマークファイルの日付/時間‘%s’は不正です"
 
-#: glib/gbookmarkfile.c:1831
+#: glib/gbookmarkfile.c:1827
 msgid "No valid bookmark file found in data dirs"
 msgstr "データディレクトリに正しいブックマークファイルがありません"
 
-#: glib/gbookmarkfile.c:2032
+#: glib/gbookmarkfile.c:2028
 #, c-format
 msgid "A bookmark for URI “%s” already exists"
 msgstr "URI “%s”のブックマークはすでに存在します"
 
-#: glib/gbookmarkfile.c:2078 glib/gbookmarkfile.c:2236
-#: glib/gbookmarkfile.c:2321 glib/gbookmarkfile.c:2401
-#: glib/gbookmarkfile.c:2486 glib/gbookmarkfile.c:2569
-#: glib/gbookmarkfile.c:2647 glib/gbookmarkfile.c:2726
-#: glib/gbookmarkfile.c:2768 glib/gbookmarkfile.c:2865
-#: glib/gbookmarkfile.c:2986 glib/gbookmarkfile.c:3176
-#: glib/gbookmarkfile.c:3252 glib/gbookmarkfile.c:3420
-#: glib/gbookmarkfile.c:3509 glib/gbookmarkfile.c:3598
-#: glib/gbookmarkfile.c:3717
+#: glib/gbookmarkfile.c:2077 glib/gbookmarkfile.c:2235
+#: glib/gbookmarkfile.c:2320 glib/gbookmarkfile.c:2400
+#: glib/gbookmarkfile.c:2485 glib/gbookmarkfile.c:2619
+#: glib/gbookmarkfile.c:2752 glib/gbookmarkfile.c:2887
+#: glib/gbookmarkfile.c:2929 glib/gbookmarkfile.c:3026
+#: glib/gbookmarkfile.c:3147 glib/gbookmarkfile.c:3341
+#: glib/gbookmarkfile.c:3482 glib/gbookmarkfile.c:3701
+#: glib/gbookmarkfile.c:3790 glib/gbookmarkfile.c:3879
+#: glib/gbookmarkfile.c:3998
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr "URI “%s”のブックマークが見つかりませんでした"
 
-#: glib/gbookmarkfile.c:2410
+#: glib/gbookmarkfile.c:2409
 #, c-format
 msgid "No MIME type defined in the bookmark for URI “%s”"
 msgstr "URI “%s”のブックマークで MIME 型が定義されていません"
 
-#: glib/gbookmarkfile.c:2495
+#: glib/gbookmarkfile.c:2494
 #, c-format
 msgid "No private flag has been defined in bookmark for URI “%s”"
 msgstr "URI “%s”のブックマークにはプライベートではないフラグが定義されています"
 
-#: glib/gbookmarkfile.c:2874
+#: glib/gbookmarkfile.c:3035
 #, c-format
 msgid "No groups set in bookmark for URI “%s”"
 msgstr "URI “%s”のブックマークにグループがありません"
 
-#: glib/gbookmarkfile.c:3273 glib/gbookmarkfile.c:3430
+#: glib/gbookmarkfile.c:3503 glib/gbookmarkfile.c:3711
 #, c-format
 msgid "No application with name “%s” registered a bookmark for “%s”"
 msgstr "アプリケーション“%s”は“%s”というブックマークを登録していません"
 
-#: glib/gbookmarkfile.c:3453
+#: glib/gbookmarkfile.c:3734
 #, c-format
 msgid "Failed to expand exec line “%s” with URI “%s”"
 msgstr "コマンドラインの“%s”を“%s”という URI に展開できませんでした"
@@ -4813,19 +4845,19 @@ msgstr "シンボリックリンク“%s”の読み取りに失敗しました:
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "“%s”から“%s”へ変換するコンバーターを開けませんでした: %s"
 
-#: glib/giochannel.c:1741
+#: glib/giochannel.c:1749
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr "g_io_channel_read_line_string では raw モードで読み取れません"
 
-#: glib/giochannel.c:1788 glib/giochannel.c:2046 glib/giochannel.c:2133
+#: glib/giochannel.c:1796 glib/giochannel.c:2054 glib/giochannel.c:2141
 msgid "Leftover unconverted data in read buffer"
 msgstr "変換されていないデータが読み込みバッファーに残っています"
 
-#: glib/giochannel.c:1869 glib/giochannel.c:1946
+#: glib/giochannel.c:1877 glib/giochannel.c:1954
 msgid "Channel terminates in a partial character"
 msgstr "チャンネルが不完全な文字で終わっています"
 
-#: glib/giochannel.c:1932
+#: glib/giochannel.c:1940
 msgid "Can’t do a raw read in g_io_channel_read_to_end"
 msgstr "g_io_channel_read_to_end では raw モードで読み取れません"
 
@@ -5157,61 +5189,61 @@ msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "ドキュメントがコメントまたはプロセシング指示子の途中で突然終了しています"
 
-#: glib/goption.c:868
+#: glib/goption.c:873
 msgid "[OPTION…]"
 msgstr "[オプション…]"
 
-#: glib/goption.c:984
+#: glib/goption.c:989
 msgid "Help Options:"
 msgstr "ヘルプのオプション:"
 
-#: glib/goption.c:985
+#: glib/goption.c:990
 msgid "Show help options"
 msgstr "ヘルプのオプションを表示する"
 
-#: glib/goption.c:991
+#: glib/goption.c:996
 msgid "Show all help options"
 msgstr "ヘルプのオプションをすべて表示する"
 
-#: glib/goption.c:1054
+#: glib/goption.c:1059
 msgid "Application Options:"
 msgstr "アプリケーションのオプション:"
 
-#: glib/goption.c:1056
+#: glib/goption.c:1061
 msgid "Options:"
 msgstr "オプション:"
 
-#: glib/goption.c:1120 glib/goption.c:1190
+#: glib/goption.c:1125 glib/goption.c:1195
 #, c-format
 msgid "Cannot parse integer value “%s” for %s"
 msgstr "%2$s の整数値“%1$s”を解析できません"
 
-#: glib/goption.c:1130 glib/goption.c:1198
+#: glib/goption.c:1135 glib/goption.c:1203
 #, c-format
 msgid "Integer value “%s” for %s out of range"
 msgstr "%2$s の整数値“%1$s”は範囲外の値です"
 
-#: glib/goption.c:1155
+#: glib/goption.c:1160
 #, c-format
 msgid "Cannot parse double value “%s” for %s"
 msgstr "%2$s の実数値“%1$s”を解析できません"
 
-#: glib/goption.c:1163
+#: glib/goption.c:1168
 #, c-format
 msgid "Double value “%s” for %s out of range"
 msgstr "%2$s の実数値“%1$s”は範囲外の値です"
 
-#: glib/goption.c:1455 glib/goption.c:1534
+#: glib/goption.c:1460 glib/goption.c:1539
 #, c-format
 msgid "Error parsing option %s"
 msgstr "オプション %s の解析中にエラーが発生しました"
 
-#: glib/goption.c:1565 glib/goption.c:1678
+#: glib/goption.c:1570 glib/goption.c:1683
 #, c-format
 msgid "Missing argument for %s"
 msgstr "%s の引数がありません"
 
-#: glib/goption.c:2189
+#: glib/goption.c:2194
 #, c-format
 msgid "Unknown option %s"
 msgstr "%s は不明なオプションです"
index e822fb4..af6be68 100644 (file)
--- a/po/kk.po
+++ b/po/kk.po
@@ -1,14 +1,14 @@
 # glib to kazakh.
 # Copyright (C) 2010 HZ
 # This file is distributed under the same license as the glib package.
-# Baurzhan Muftakhidinov <baurthefirst@gmail.com>, 2010-2020.
+# Baurzhan Muftakhidinov <baurthefirst@gmail.com>, 2010-2016.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-06-09 04:01+0000\n"
-"PO-Revision-Date: 2020-06-25 12:38+0500\n"
+"POT-Creation-Date: 2019-02-12 14:26+0000\n"
+"PO-Revision-Date: 2019-02-16 17:15+0500\n"
 "Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
 "Language-Team: Kazakh <kk_KZ@googlegroups.com>\n"
 "Language: kk\n"
@@ -16,34 +16,34 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.3.1\n"
+"X-Generator: Poedit 2.2.1\n"
 
-#: gio/gapplication.c:500
+#: gio/gapplication.c:499
 msgid "GApplication options"
 msgstr "GApplication опциялары"
 
-#: gio/gapplication.c:500
+#: gio/gapplication.c:499
 msgid "Show GApplication options"
 msgstr "GApplication опцияларын көрсету"
 
-#: gio/gapplication.c:545
+#: gio/gapplication.c:544
 msgid "Enter GApplication service mode (use from D-Bus service files)"
 msgstr ""
 
-#: gio/gapplication.c:557
+#: gio/gapplication.c:556
 msgid "Override the application’s ID"
 msgstr ""
 
-#: gio/gapplication.c:569
+#: gio/gapplication.c:568
 msgid "Replace the running instance"
 msgstr ""
 
 #: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:493 gio/gsettings-tool.c:567
+#: gio/gresource-tool.c:495 gio/gsettings-tool.c:569
 msgid "Print help"
 msgstr "Көмекті шығару"
 
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:494 gio/gresource-tool.c:562
+#: gio/gapplication-tool.c:47 gio/gresource-tool.c:496 gio/gresource-tool.c:564
 msgid "[COMMAND]"
 msgstr "[КОМАНДА]"
 
@@ -51,7 +51,7 @@ msgstr "[КОМАНДА]"
 msgid "Print version"
 msgstr "Нұсқа ақпаратын шығару"
 
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:573
+#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:575
 msgid "Print version information and exit"
 msgstr "Нұсқа ақпаратын шығару және шығу"
 
@@ -99,7 +99,7 @@ msgstr ""
 msgid "APPID"
 msgstr "APPID"
 
-#: gio/gapplication-tool.c:70 gio/gapplication-tool.c:133 gio/gdbus-tool.c:102
+#: gio/gapplication-tool.c:70 gio/gapplication-tool.c:133 gio/gdbus-tool.c:90
 #: gio/gio-tool.c:224
 msgid "COMMAND"
 msgstr "КОМАНДА"
@@ -114,7 +114,7 @@ msgstr ""
 
 #: gio/gapplication-tool.c:72 gio/glib-compile-resources.c:738
 #: gio/glib-compile-resources.c:744 gio/glib-compile-resources.c:772
-#: gio/gresource-tool.c:500 gio/gresource-tool.c:566
+#: gio/gresource-tool.c:502 gio/gresource-tool.c:568
 msgid "FILE"
 msgstr "ФАЙЛ"
 
@@ -138,7 +138,7 @@ msgstr "ПАРАМЕТР"
 msgid "Optional parameter to the action invocation, in GVariant format"
 msgstr ""
 
-#: gio/gapplication-tool.c:96 gio/gresource-tool.c:531 gio/gsettings-tool.c:659
+#: gio/gapplication-tool.c:96 gio/gresource-tool.c:533 gio/gsettings-tool.c:661
 #, c-format
 msgid ""
 "Unknown command %s\n"
@@ -149,8 +149,8 @@ msgstr ""
 msgid "Usage:\n"
 msgstr "Қолданылуы:\n"
 
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:556
-#: gio/gsettings-tool.c:694
+#: gio/gapplication-tool.c:114 gio/gresource-tool.c:558
+#: gio/gsettings-tool.c:696
 msgid "Arguments:\n"
 msgstr "Аргументтер:\n"
 
@@ -267,7 +267,7 @@ msgstr ""
 msgid "Truncate not supported on base stream"
 msgstr ""
 
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1862 gio/gdbusprivate.c:1411
+#: gio/gcancellable.c:317 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1402
 #: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
 #, c-format
 msgid "Operation was cancelled"
@@ -286,28 +286,28 @@ msgid "Not enough space in destination"
 msgstr ""
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:447 glib/gconvert.c:877
-#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2461
-#: glib/gutf8.c:875 glib/gutf8.c:1328
+#: gio/gdatainputstream.c:1261 glib/gconvert.c:455 glib/gconvert.c:885
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr ""
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:455 glib/gconvert.c:791
-#: glib/giochannel.c:1571 glib/giochannel.c:2473
+#: gio/gcharsetconverter.c:347 glib/gconvert.c:463 glib/gconvert.c:799
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr ""
 
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1138
+#: gio/gcharsetconverter.c:445 gio/gsocket.c:1093
 msgid "Cancellable initialization not supported"
 msgstr "Бас тартуға болатын инициализацияға қолдау жоқ"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:320 glib/giochannel.c:1392
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:328 glib/giochannel.c:1385
 #, c-format
 msgid "Conversion from character set “%s” to “%s” is not supported"
 msgstr ""
 
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:324
+#: gio/gcharsetconverter.c:460 glib/gconvert.c:332
 #, c-format
 msgid "Could not open converter from “%s” to “%s”"
 msgstr ""
@@ -317,32 +317,28 @@ msgstr ""
 msgid "%s type"
 msgstr "%s түрі"
 
-#: gio/gcontenttype-win32.c:192
+#: gio/gcontenttype-win32.c:177
 msgid "Unknown type"
 msgstr "Белгісіз түрі"
 
-#: gio/gcontenttype-win32.c:194
+#: gio/gcontenttype-win32.c:179
 #, c-format
 msgid "%s filetype"
 msgstr "%s файл түрі"
 
-#: gio/gcredentials.c:289
-msgid "GCredentials contains invalid data"
-msgstr ""
-
-#: gio/gcredentials.c:345 gio/gcredentials.c:609
+#: gio/gcredentials.c:315 gio/gcredentials.c:574
 msgid "GCredentials is not implemented on this OS"
 msgstr ""
 
-#: gio/gcredentials.c:503
+#: gio/gcredentials.c:470
 msgid "There is no GCredentials support for your platform"
 msgstr ""
 
-#: gio/gcredentials.c:552
+#: gio/gcredentials.c:516
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr ""
 
-#: gio/gcredentials.c:603
+#: gio/gcredentials.c:568
 msgid "Credentials spoofing is not possible on this OS"
 msgstr ""
 
@@ -350,45 +346,43 @@ msgstr ""
 msgid "Unexpected early end-of-stream"
 msgstr ""
 
-#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:232 gio/gdbusaddress.c:321
+#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:246 gio/gdbusaddress.c:327
 #, c-format
 msgid "Unsupported key “%s” in address entry “%s”"
 msgstr ""
 
-#: gio/gdbusaddress.c:171
+#: gio/gdbusaddress.c:185
 #, c-format
-msgid "Meaningless key/value pair combination in address entry “%s”"
+msgid ""
+"Address “%s” is invalid (need exactly one of path, tmpdir or abstract keys)"
 msgstr ""
 
-#: gio/gdbusaddress.c:180
+#: gio/gdbusaddress.c:198
 #, c-format
-msgid ""
-"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
-"keys)"
+msgid "Meaningless key/value pair combination in address entry “%s”"
 msgstr ""
 
-#: gio/gdbusaddress.c:247 gio/gdbusaddress.c:258 gio/gdbusaddress.c:273
-#: gio/gdbusaddress.c:336 gio/gdbusaddress.c:347
+#: gio/gdbusaddress.c:261 gio/gdbusaddress.c:342
 #, c-format
-msgid "Error in address “%s” — the “%s” attribute is malformed"
+msgid "Error in address “%s” — the port attribute is malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:417 gio/gdbusaddress.c:681
+#: gio/gdbusaddress.c:272 gio/gdbusaddress.c:353
 #, c-format
-msgid "Unknown or unsupported transport “%s” for address “%s”"
+msgid "Error in address “%s” — the family attribute is malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:461
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:673
 #, c-format
-msgid "Address element “%s” does not contain a colon (:)"
+msgid "Unknown or unsupported transport “%s” for address “%s”"
 msgstr ""
 
-#: gio/gdbusaddress.c:470
+#: gio/gdbusaddress.c:467
 #, c-format
-msgid "Transport name in address element “%s” must not be empty"
+msgid "Address element “%s” does not contain a colon (:)"
 msgstr ""
 
-#: gio/gdbusaddress.c:491
+#: gio/gdbusaddress.c:488
 #, c-format
 msgid ""
 "Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
@@ -398,354 +392,354 @@ msgstr ""
 #: gio/gdbusaddress.c:502
 #, c-format
 msgid ""
-"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
-msgstr ""
-
-#: gio/gdbusaddress.c:516
-#, c-format
-msgid ""
 "Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
 "“%s”"
 msgstr ""
 
-#: gio/gdbusaddress.c:588
+#: gio/gdbusaddress.c:580
 #, c-format
 msgid ""
 "Error in address “%s” — the unix transport requires exactly one of the keys "
 "“path” or “abstract” to be set"
 msgstr ""
 
-#: gio/gdbusaddress.c:624
+#: gio/gdbusaddress.c:616
 #, c-format
 msgid "Error in address “%s” — the host attribute is missing or malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:638
+#: gio/gdbusaddress.c:630
 #, c-format
 msgid "Error in address “%s” — the port attribute is missing or malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:652
+#: gio/gdbusaddress.c:644
 #, c-format
 msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:673
+#: gio/gdbusaddress.c:665
 msgid "Error auto-launching: "
 msgstr ""
 
-#: gio/gdbusaddress.c:726
+#: gio/gdbusaddress.c:718
 #, c-format
 msgid "Error opening nonce file “%s”: %s"
 msgstr "\"%s\" файлын ашу қатесі: %s"
 
-#: gio/gdbusaddress.c:745
+#: gio/gdbusaddress.c:737
 #, c-format
 msgid "Error reading from nonce file “%s”: %s"
 msgstr "\"%s\" nonce файлынан оқу қатесі: %s"
 
-#: gio/gdbusaddress.c:754
+#: gio/gdbusaddress.c:746
 #, c-format
 msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
 msgstr ""
 
-#: gio/gdbusaddress.c:772
+#: gio/gdbusaddress.c:764
 #, c-format
 msgid "Error writing contents of nonce file “%s” to stream:"
 msgstr ""
 
-#: gio/gdbusaddress.c:981
+#: gio/gdbusaddress.c:973
 msgid "The given address is empty"
 msgstr ""
 
-#: gio/gdbusaddress.c:1094
+#: gio/gdbusaddress.c:1086
 #, c-format
 msgid "Cannot spawn a message bus when setuid"
 msgstr ""
 
-#: gio/gdbusaddress.c:1101
+#: gio/gdbusaddress.c:1093
 msgid "Cannot spawn a message bus without a machine-id: "
 msgstr ""
 
-#: gio/gdbusaddress.c:1108
+#: gio/gdbusaddress.c:1100
 #, c-format
 msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
 msgstr ""
 
-#: gio/gdbusaddress.c:1150
+#: gio/gdbusaddress.c:1142
 #, c-format
 msgid "Error spawning command line “%s”: "
 msgstr ""
 
-#: gio/gdbusaddress.c:1219
+#: gio/gdbusaddress.c:1359
+#, c-format
+msgid "(Type any character to close this window)\n"
+msgstr ""
+
+#: gio/gdbusaddress.c:1513
+#, c-format
+msgid "Session dbus not running, and autolaunch failed"
+msgstr ""
+
+#: gio/gdbusaddress.c:1524
 #, c-format
 msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr ""
 
-#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7190
+#: gio/gdbusaddress.c:1662 gio/gdbusconnection.c:7174
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
 "— unknown value “%s”"
 msgstr ""
 
-#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7199
+#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7183
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
 msgstr ""
 
-#: gio/gdbusaddress.c:1376
+#: gio/gdbusaddress.c:1681
 #, c-format
 msgid "Unknown bus type %d"
 msgstr ""
 
-#: gio/gdbusauth.c:294
+#: gio/gdbusauth.c:293
 msgid "Unexpected lack of content trying to read a line"
 msgstr ""
 
-#: gio/gdbusauth.c:338
+#: gio/gdbusauth.c:337
 msgid "Unexpected lack of content trying to (safely) read a line"
 msgstr ""
 
-#: gio/gdbusauth.c:482
+#: gio/gdbusauth.c:481
 #, c-format
 msgid ""
 "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
 msgstr ""
 
-#: gio/gdbusauth.c:1167
+#: gio/gdbusauth.c:1144
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:265
+#: gio/gdbusauthmechanismsha1.c:262
 #, c-format
 msgid "Error when getting information for directory “%s”: %s"
 msgstr "\"%s\" бума ақпаратын алу қатесі: %s"
 
-#: gio/gdbusauthmechanismsha1.c:280
+#: gio/gdbusauthmechanismsha1.c:274
 #, c-format
 msgid ""
 "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:310
+#: gio/gdbusauthmechanismsha1.c:299
 #, c-format
 msgid "Error creating directory “%s”: %s"
 msgstr "\"%s\" бумасын жасау қатесі: %s"
 
-#: gio/gdbusauthmechanismsha1.c:355
+#: gio/gdbusauthmechanismsha1.c:346
 #, c-format
 msgid "Error opening keyring “%s” for reading: "
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:378 gio/gdbusauthmechanismsha1.c:700
+#: gio/gdbusauthmechanismsha1.c:369 gio/gdbusauthmechanismsha1.c:687
 #, c-format
 msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:392 gio/gdbusauthmechanismsha1.c:714
+#: gio/gdbusauthmechanismsha1.c:383 gio/gdbusauthmechanismsha1.c:701
 #, c-format
 msgid ""
 "First token of line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:406 gio/gdbusauthmechanismsha1.c:728
+#: gio/gdbusauthmechanismsha1.c:397 gio/gdbusauthmechanismsha1.c:715
 #, c-format
 msgid ""
 "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:430
+#: gio/gdbusauthmechanismsha1.c:421
 #, c-format
 msgid "Didn’t find cookie with id %d in the keyring at “%s”"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:476
+#: gio/gdbusauthmechanismsha1.c:503
 #, c-format
-msgid "Error creating lock file “%s”: %s"
+msgid "Error deleting stale lock file “%s”: %s"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:540
+#: gio/gdbusauthmechanismsha1.c:535
 #, c-format
-msgid "Error deleting stale lock file “%s”: %s"
+msgid "Error creating lock file “%s”: %s"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:579
+#: gio/gdbusauthmechanismsha1.c:566
 #, c-format
 msgid "Error closing (unlinked) lock file “%s”: %s"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:590
+#: gio/gdbusauthmechanismsha1.c:577
 #, c-format
 msgid "Error unlinking lock file “%s”: %s"
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:667
+#: gio/gdbusauthmechanismsha1.c:654
 #, c-format
 msgid "Error opening keyring “%s” for writing: "
 msgstr ""
 
-#: gio/gdbusauthmechanismsha1.c:863
+#: gio/gdbusauthmechanismsha1.c:850
 #, c-format
 msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
 msgstr ""
 
-#: gio/gdbusconnection.c:595 gio/gdbusconnection.c:2391
+#: gio/gdbusconnection.c:603 gio/gdbusconnection.c:2396
 msgid "The connection is closed"
 msgstr "Байланыс жабылған"
 
-#: gio/gdbusconnection.c:1892
+#: gio/gdbusconnection.c:1897
 msgid "Timeout was reached"
 msgstr ""
 
-#: gio/gdbusconnection.c:2513
+#: gio/gdbusconnection.c:2518
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 
-#: gio/gdbusconnection.c:4161 gio/gdbusconnection.c:4508
+#: gio/gdbusconnection.c:4147 gio/gdbusconnection.c:4494
 #, c-format
 msgid ""
 "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
 msgstr ""
 
-#: gio/gdbusconnection.c:4303
+#: gio/gdbusconnection.c:4289
 #, c-format
 msgid "No such property “%s”"
 msgstr "\"%s\" қасиеті табылмады"
 
-#: gio/gdbusconnection.c:4315
+#: gio/gdbusconnection.c:4301
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "\"%s\" қасиетін оқу мүмкін емес"
 
-#: gio/gdbusconnection.c:4326
+#: gio/gdbusconnection.c:4312
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "\"%s\" қасиетін жазу мүмкін емес"
 
-#: gio/gdbusconnection.c:4346
+#: gio/gdbusconnection.c:4332
 #, c-format
 msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
 msgstr ""
 
-#: gio/gdbusconnection.c:4451 gio/gdbusconnection.c:4659
-#: gio/gdbusconnection.c:6630
+#: gio/gdbusconnection.c:4437 gio/gdbusconnection.c:4645
+#: gio/gdbusconnection.c:6614
 #, c-format
 msgid "No such interface “%s”"
 msgstr ""
 
-#: gio/gdbusconnection.c:4877 gio/gdbusconnection.c:7139
+#: gio/gdbusconnection.c:4863 gio/gdbusconnection.c:7123
 #, c-format
 msgid "No such interface “%s” on object at path %s"
 msgstr ""
 
-#: gio/gdbusconnection.c:4975
+#: gio/gdbusconnection.c:4961
 #, c-format
 msgid "No such method “%s”"
 msgstr ""
 
-#: gio/gdbusconnection.c:5006
+#: gio/gdbusconnection.c:4992
 #, c-format
 msgid "Type of message, “%s”, does not match expected type “%s”"
 msgstr ""
 
-#: gio/gdbusconnection.c:5204
+#: gio/gdbusconnection.c:5190
 #, c-format
 msgid "An object is already exported for the interface %s at %s"
 msgstr ""
 
-#: gio/gdbusconnection.c:5430
+#: gio/gdbusconnection.c:5416
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr ""
 
-#: gio/gdbusconnection.c:5486
+#: gio/gdbusconnection.c:5472
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "%s қасиетін орнату мүмкін емес.%s"
 
-#: gio/gdbusconnection.c:5664
+#: gio/gdbusconnection.c:5650
 #, c-format
 msgid "Method “%s” returned type “%s”, but expected “%s”"
 msgstr ""
 
-#: gio/gdbusconnection.c:6741
+#: gio/gdbusconnection.c:6725
 #, c-format
 msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
 msgstr ""
 
-#: gio/gdbusconnection.c:6862
+#: gio/gdbusconnection.c:6846
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr ""
 
-#: gio/gdbusmessage.c:1255
+#: gio/gdbusmessage.c:1251
 msgid "type is INVALID"
 msgstr ""
 
-#: gio/gdbusmessage.c:1266
+#: gio/gdbusmessage.c:1262
 msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
 msgstr ""
 
-#: gio/gdbusmessage.c:1277
+#: gio/gdbusmessage.c:1273
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr ""
 
-#: gio/gdbusmessage.c:1289
+#: gio/gdbusmessage.c:1285
 msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
 msgstr ""
 
-#: gio/gdbusmessage.c:1302
+#: gio/gdbusmessage.c:1298
 msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
 msgstr ""
 
-#: gio/gdbusmessage.c:1310
+#: gio/gdbusmessage.c:1306
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
 msgstr ""
 
-#: gio/gdbusmessage.c:1318
+#: gio/gdbusmessage.c:1314
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
 msgstr ""
 
-#: gio/gdbusmessage.c:1366 gio/gdbusmessage.c:1426
+#: gio/gdbusmessage.c:1362 gio/gdbusmessage.c:1422
 #, c-format
 msgid "Wanted to read %lu byte but only got %lu"
 msgid_plural "Wanted to read %lu bytes but only got %lu"
 msgstr[0] ""
 
-#: gio/gdbusmessage.c:1380
+#: gio/gdbusmessage.c:1376
 #, c-format
 msgid "Expected NUL byte after the string “%s” but found byte %d"
 msgstr ""
 
-#: gio/gdbusmessage.c:1399
+#: gio/gdbusmessage.c:1395
 #, c-format
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
 "(length of string is %d). The valid UTF-8 string up until that point was “%s”"
 msgstr ""
 
-#: gio/gdbusmessage.c:1463 gio/gdbusmessage.c:1711 gio/gdbusmessage.c:1900
-msgid "Value nested too deeply"
-msgstr ""
-
-#: gio/gdbusmessage.c:1609
+#: gio/gdbusmessage.c:1598
 #, c-format
 msgid "Parsed value “%s” is not a valid D-Bus object path"
 msgstr ""
 
-#: gio/gdbusmessage.c:1631
+#: gio/gdbusmessage.c:1620
 #, c-format
 msgid "Parsed value “%s” is not a valid D-Bus signature"
 msgstr ""
 
-#: gio/gdbusmessage.c:1678
+#: gio/gdbusmessage.c:1667
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -753,163 +747,152 @@ msgid_plural ""
 "Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
 msgstr[0] ""
 
-#: gio/gdbusmessage.c:1698
+#: gio/gdbusmessage.c:1687
 #, c-format
 msgid ""
 "Encountered array of type “a%c”, expected to have a length a multiple of %u "
 "bytes, but found to be %u bytes in length"
 msgstr ""
 
-#: gio/gdbusmessage.c:1884
+#: gio/gdbusmessage.c:1857
 #, c-format
 msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
 msgstr ""
 
-#: gio/gdbusmessage.c:1925
+#: gio/gdbusmessage.c:1881
 #, c-format
 msgid ""
 "Error deserializing GVariant with type string “%s” from the D-Bus wire format"
 msgstr ""
 
-#: gio/gdbusmessage.c:2110
+#: gio/gdbusmessage.c:2066
 #, c-format
 msgid ""
 "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
 "0x%02x"
 msgstr ""
 
-#: gio/gdbusmessage.c:2123
+#: gio/gdbusmessage.c:2079
 #, c-format
 msgid "Invalid major protocol version. Expected 1 but found %d"
 msgstr ""
 
-#: gio/gdbusmessage.c:2177 gio/gdbusmessage.c:2773
+#: gio/gdbusmessage.c:2132 gio/gdbusmessage.c:2724
 msgid "Signature header found but is not of type signature"
 msgstr ""
 
-#: gio/gdbusmessage.c:2189
+#: gio/gdbusmessage.c:2144
 #, c-format
 msgid "Signature header with signature “%s” found but message body is empty"
 msgstr ""
 
-#: gio/gdbusmessage.c:2204
+#: gio/gdbusmessage.c:2159
 #, c-format
 msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
 msgstr ""
 
-#: gio/gdbusmessage.c:2236
+#: gio/gdbusmessage.c:2190
 #, c-format
 msgid "No signature header in message but the message body is %u byte"
 msgid_plural "No signature header in message but the message body is %u bytes"
 msgstr[0] ""
 
-#: gio/gdbusmessage.c:2246
+#: gio/gdbusmessage.c:2200
 msgid "Cannot deserialize message: "
 msgstr ""
 
-#: gio/gdbusmessage.c:2590
+#: gio/gdbusmessage.c:2541
 #, c-format
 msgid ""
 "Error serializing GVariant with type string “%s” to the D-Bus wire format"
 msgstr ""
 
-#: gio/gdbusmessage.c:2727
+#: gio/gdbusmessage.c:2678
 #, c-format
 msgid ""
 "Number of file descriptors in message (%d) differs from header field (%d)"
 msgstr ""
 
-#: gio/gdbusmessage.c:2735
+#: gio/gdbusmessage.c:2686
 msgid "Cannot serialize message: "
 msgstr ""
 
-#: gio/gdbusmessage.c:2788
+#: gio/gdbusmessage.c:2739
 #, c-format
 msgid "Message body has signature “%s” but there is no signature header"
 msgstr ""
 
-#: gio/gdbusmessage.c:2798
+#: gio/gdbusmessage.c:2749
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
 "“%s”"
 msgstr ""
 
-#: gio/gdbusmessage.c:2814
+#: gio/gdbusmessage.c:2765
 #, c-format
 msgid "Message body is empty but signature in the header field is “(%s)”"
 msgstr ""
 
-#: gio/gdbusmessage.c:3367
+#: gio/gdbusmessage.c:3318
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr ""
 
-#: gio/gdbusmessage.c:3375
+#: gio/gdbusmessage.c:3326
 msgid "Error return with empty body"
 msgstr ""
 
-#: gio/gdbusprivate.c:2242
-#, c-format
-msgid "(Type any character to close this window)\n"
-msgstr ""
-
-#: gio/gdbusprivate.c:2416
-#, c-format
-msgid "Session dbus not running, and autolaunch failed"
-msgstr ""
-
-#: gio/gdbusprivate.c:2439
+#: gio/gdbusprivate.c:2075
 #, c-format
 msgid "Unable to get Hardware profile: %s"
 msgstr ""
 
-#: gio/gdbusprivate.c:2484
+#: gio/gdbusprivate.c:2120
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr ""
 
-#: gio/gdbusproxy.c:1562
+#: gio/gdbusproxy.c:1617
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr ""
 
-#: gio/gdbusproxy.c:1585
+#: gio/gdbusproxy.c:1640
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr ""
 
-#: gio/gdbusproxy.c:2685 gio/gdbusproxy.c:2820
+#: gio/gdbusproxy.c:2740 gio/gdbusproxy.c:2875
 #, c-format
 msgid ""
 "Cannot invoke method; proxy is for the well-known name %s without an owner, "
 "and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
 msgstr ""
 
-#: gio/gdbusserver.c:755
-#| msgid "Operation not supported"
-msgid "Abstract namespace not supported"
+#: gio/gdbusserver.c:708
+msgid "Abstract name space not supported"
 msgstr ""
 
-#: gio/gdbusserver.c:848
+#: gio/gdbusserver.c:795
 msgid "Cannot specify nonce file when creating a server"
 msgstr ""
 
-#: gio/gdbusserver.c:930
+#: gio/gdbusserver.c:876
 #, c-format
 msgid "Error writing nonce file at “%s”: %s"
 msgstr "\"%s\" үшін nonce файлын жазу қатесі: %s"
 
-#: gio/gdbusserver.c:1103
+#: gio/gdbusserver.c:1047
 #, c-format
 msgid "The string “%s” is not a valid D-Bus GUID"
 msgstr ""
 
-#: gio/gdbusserver.c:1143
+#: gio/gdbusserver.c:1087
 #, c-format
 msgid "Cannot listen on unsupported transport “%s”"
 msgstr ""
 
-#: gio/gdbus-tool.c:107
+#: gio/gdbus-tool.c:95
 #, c-format
 msgid ""
 "Commands:\n"
@@ -923,283 +906,283 @@ msgid ""
 "Use “%s COMMAND --help” to get help on each command.\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:197 gio/gdbus-tool.c:264 gio/gdbus-tool.c:336
-#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:850 gio/gdbus-tool.c:1187
-#: gio/gdbus-tool.c:1672
+#: gio/gdbus-tool.c:185 gio/gdbus-tool.c:252 gio/gdbus-tool.c:324
+#: gio/gdbus-tool.c:348 gio/gdbus-tool.c:834 gio/gdbus-tool.c:1171
+#: gio/gdbus-tool.c:1613
 #, c-format
 msgid "Error: %s\n"
 msgstr "Қате: %s\n"
 
-#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1688
+#: gio/gdbus-tool.c:196 gio/gdbus-tool.c:265 gio/gdbus-tool.c:1629
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:246
+#: gio/gdbus-tool.c:234
 #, c-format
 msgid "Error: %s is not a valid name\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:394
+#: gio/gdbus-tool.c:382
 msgid "Connect to the system bus"
 msgstr ""
 
-#: gio/gdbus-tool.c:395
+#: gio/gdbus-tool.c:383
 msgid "Connect to the session bus"
 msgstr ""
 
-#: gio/gdbus-tool.c:396
+#: gio/gdbus-tool.c:384
 msgid "Connect to given D-Bus address"
 msgstr ""
 
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:394
 msgid "Connection Endpoint Options:"
 msgstr ""
 
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:395
 msgid "Options specifying the connection endpoint"
 msgstr ""
 
-#: gio/gdbus-tool.c:430
+#: gio/gdbus-tool.c:417
 #, c-format
 msgid "No connection endpoint specified"
 msgstr ""
 
-#: gio/gdbus-tool.c:440
+#: gio/gdbus-tool.c:427
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr ""
 
-#: gio/gdbus-tool.c:513
+#: gio/gdbus-tool.c:497
 #, c-format
 msgid ""
 "Warning: According to introspection data, interface “%s” does not exist\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:522
+#: gio/gdbus-tool.c:506
 #, c-format
 msgid ""
 "Warning: According to introspection data, method “%s” does not exist on "
 "interface “%s”\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:584
+#: gio/gdbus-tool.c:568
 msgid "Optional destination for signal (unique name)"
 msgstr ""
 
-#: gio/gdbus-tool.c:585
+#: gio/gdbus-tool.c:569
 msgid "Object path to emit signal on"
 msgstr ""
 
-#: gio/gdbus-tool.c:586
+#: gio/gdbus-tool.c:570
 msgid "Signal and interface name"
 msgstr ""
 
-#: gio/gdbus-tool.c:619
+#: gio/gdbus-tool.c:603
 msgid "Emit a signal."
 msgstr "Сигналды жіберу."
 
-#: gio/gdbus-tool.c:674 gio/gdbus-tool.c:981 gio/gdbus-tool.c:1775
-#: gio/gdbus-tool.c:2007 gio/gdbus-tool.c:2227
+#: gio/gdbus-tool.c:658 gio/gdbus-tool.c:965 gio/gdbus-tool.c:1715
+#: gio/gdbus-tool.c:1944 gio/gdbus-tool.c:2164
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "Байланысу қатесі: %s\n"
 
-#: gio/gdbus-tool.c:694
+#: gio/gdbus-tool.c:678
 #, c-format
 msgid "Error: %s is not a valid unique bus name.\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:713 gio/gdbus-tool.c:1024 gio/gdbus-tool.c:1818
+#: gio/gdbus-tool.c:697 gio/gdbus-tool.c:1008 gio/gdbus-tool.c:1758
 msgid "Error: Object path is not specified\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:736 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1838
-#: gio/gdbus-tool.c:2078
+#: gio/gdbus-tool.c:720 gio/gdbus-tool.c:1028 gio/gdbus-tool.c:1778
+#: gio/gdbus-tool.c:2015
 #, c-format
 msgid "Error: %s is not a valid object path\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:756
+#: gio/gdbus-tool.c:740
 msgid "Error: Signal name is not specified\n"
 msgstr "Қате: сигнал көрсетілмеген.\n"
 
-#: gio/gdbus-tool.c:770
+#: gio/gdbus-tool.c:754
 #, c-format
 msgid "Error: Signal name “%s” is invalid\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:766
 #, c-format
 msgid "Error: %s is not a valid interface name\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:788
+#: gio/gdbus-tool.c:772
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr ""
 
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:825 gio/gdbus-tool.c:1156
+#: gio/gdbus-tool.c:809 gio/gdbus-tool.c:1140
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:857
+#: gio/gdbus-tool.c:841
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:884
+#: gio/gdbus-tool.c:868
 msgid "Destination name to invoke method on"
 msgstr ""
 
-#: gio/gdbus-tool.c:885
+#: gio/gdbus-tool.c:869
 msgid "Object path to invoke method on"
 msgstr ""
 
-#: gio/gdbus-tool.c:886
+#: gio/gdbus-tool.c:870
 msgid "Method and interface name"
 msgstr ""
 
-#: gio/gdbus-tool.c:887
+#: gio/gdbus-tool.c:871
 msgid "Timeout in seconds"
 msgstr ""
 
-#: gio/gdbus-tool.c:926
+#: gio/gdbus-tool.c:910
 msgid "Invoke a method on a remote object."
 msgstr ""
 
-#: gio/gdbus-tool.c:998 gio/gdbus-tool.c:1792 gio/gdbus-tool.c:2032
+#: gio/gdbus-tool.c:982 gio/gdbus-tool.c:1732 gio/gdbus-tool.c:1969
 msgid "Error: Destination is not specified\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1009 gio/gdbus-tool.c:1809 gio/gdbus-tool.c:2043
+#: gio/gdbus-tool.c:993 gio/gdbus-tool.c:1749 gio/gdbus-tool.c:1980
 #, c-format
 msgid "Error: %s is not a valid bus name\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1059
+#: gio/gdbus-tool.c:1043
 msgid "Error: Method name is not specified\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1070
+#: gio/gdbus-tool.c:1054
 #, c-format
 msgid "Error: Method name “%s” is invalid\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1148
+#: gio/gdbus-tool.c:1132
 #, c-format
 msgid "Error parsing parameter %d of type “%s”: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:1634
+#: gio/gdbus-tool.c:1576
 msgid "Destination name to introspect"
 msgstr ""
 
-#: gio/gdbus-tool.c:1635
+#: gio/gdbus-tool.c:1577
 msgid "Object path to introspect"
 msgstr ""
 
-#: gio/gdbus-tool.c:1636
+#: gio/gdbus-tool.c:1578
 msgid "Print XML"
 msgstr "XML баспаға шығару"
 
-#: gio/gdbus-tool.c:1637
+#: gio/gdbus-tool.c:1579
 msgid "Introspect children"
 msgstr ""
 
-#: gio/gdbus-tool.c:1638
+#: gio/gdbus-tool.c:1580
 msgid "Only print properties"
 msgstr "Тек қасиеттерін баспаға шығару"
 
-#: gio/gdbus-tool.c:1727
+#: gio/gdbus-tool.c:1667
 msgid "Introspect a remote object."
 msgstr ""
 
-#: gio/gdbus-tool.c:1933
+#: gio/gdbus-tool.c:1870
 msgid "Destination name to monitor"
 msgstr "Бақылау үшін мақсат атауы"
 
-#: gio/gdbus-tool.c:1934
+#: gio/gdbus-tool.c:1871
 msgid "Object path to monitor"
 msgstr ""
 
-#: gio/gdbus-tool.c:1959
+#: gio/gdbus-tool.c:1896
 msgid "Monitor a remote object."
 msgstr ""
 
-#: gio/gdbus-tool.c:2017
+#: gio/gdbus-tool.c:1954
 msgid "Error: can’t monitor a non-message-bus connection\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:2141
+#: gio/gdbus-tool.c:2078
 msgid "Service to activate before waiting for the other one (well-known name)"
 msgstr ""
 
-#: gio/gdbus-tool.c:2144
+#: gio/gdbus-tool.c:2081
 msgid ""
 "Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
 "(default)"
 msgstr ""
 
-#: gio/gdbus-tool.c:2192
+#: gio/gdbus-tool.c:2129
 msgid "[OPTION…] BUS-NAME"
 msgstr "[ОПЦИЯ…] ШИНА-АТЫ"
 
-#: gio/gdbus-tool.c:2193
+#: gio/gdbus-tool.c:2130
 msgid "Wait for a bus name to appear."
 msgstr ""
 
-#: gio/gdbus-tool.c:2269
+#: gio/gdbus-tool.c:2206
 msgid "Error: A service to activate for must be specified.\n"
 msgstr "Қате: белсендіру үшін қызмет көрсетілуі керек.\n"
 
-#: gio/gdbus-tool.c:2274
+#: gio/gdbus-tool.c:2211
 msgid "Error: A service to wait for must be specified.\n"
 msgstr "Қате: күту үшін қызмет көрсетілуі керек.\n"
 
-#: gio/gdbus-tool.c:2279
+#: gio/gdbus-tool.c:2216
 msgid "Error: Too many arguments.\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:2287 gio/gdbus-tool.c:2294
+#: gio/gdbus-tool.c:2224 gio/gdbus-tool.c:2231
 #, c-format
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "Қате: \"%s\" - кеңінен белгілі шина аты емес.\n"
 
-#: gio/gdesktopappinfo.c:2071 gio/gdesktopappinfo.c:4877
+#: gio/gdesktopappinfo.c:2041 gio/gdesktopappinfo.c:4822
 msgid "Unnamed"
 msgstr "Атаусыз"
 
-#: gio/gdesktopappinfo.c:2481
+#: gio/gdesktopappinfo.c:2451
 msgid "Desktop file didn’t specify Exec field"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:2761
+#: gio/gdesktopappinfo.c:2710
 msgid "Unable to find terminal required for application"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:3413
+#: gio/gdesktopappinfo.c:3362
 #, c-format
 msgid "Can’t create user application configuration folder %s: %s"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:3417
+#: gio/gdesktopappinfo.c:3366
 #, c-format
 msgid "Can’t create user MIME configuration folder %s: %s"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:3657 gio/gdesktopappinfo.c:3681
+#: gio/gdesktopappinfo.c:3606 gio/gdesktopappinfo.c:3630
 msgid "Application information lacks an identifier"
 msgstr ""
 
-#: gio/gdesktopappinfo.c:3915
+#: gio/gdesktopappinfo.c:3864
 #, c-format
 msgid "Can’t create user desktop file %s"
 msgstr "%s пайдаланушы жұмыс үстел файлын жасау мүмкін емес"
 
-#: gio/gdesktopappinfo.c:4049
+#: gio/gdesktopappinfo.c:3998
 #, c-format
 msgid "Custom definition for %s"
 msgstr ""
@@ -1227,12 +1210,12 @@ msgstr ""
 msgid "drive doesn’t implement stop"
 msgstr ""
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
+#: gio/gdummytlsbackend.c:509
 msgid "TLS support is not available"
 msgstr "TLS қолдауы қолжетерсіз"
 
-#: gio/gdummytlsbackend.c:423
+#: gio/gdummytlsbackend.c:419
 msgid "DTLS support is not available"
 msgstr "DTLS қолдауы қолжетерсіз"
 
@@ -1260,12 +1243,12 @@ msgstr ""
 msgid "Expected a GEmblem for GEmblemedIcon"
 msgstr ""
 
-#: gio/gfile.c:1044 gio/gfile.c:1282 gio/gfile.c:1420 gio/gfile.c:1658
-#: gio/gfile.c:1713 gio/gfile.c:1771 gio/gfile.c:1855 gio/gfile.c:1912
-#: gio/gfile.c:1976 gio/gfile.c:2031 gio/gfile.c:3722 gio/gfile.c:3777
-#: gio/gfile.c:4055 gio/gfile.c:4523 gio/gfile.c:4934 gio/gfile.c:5019
-#: gio/gfile.c:5109 gio/gfile.c:5206 gio/gfile.c:5293 gio/gfile.c:5394
-#: gio/gfile.c:8104 gio/gfile.c:8194 gio/gfile.c:8278
+#: gio/gfile.c:1076 gio/gfile.c:1314 gio/gfile.c:1452 gio/gfile.c:1690
+#: gio/gfile.c:1745 gio/gfile.c:1803 gio/gfile.c:1887 gio/gfile.c:1944
+#: gio/gfile.c:2008 gio/gfile.c:2063 gio/gfile.c:3738 gio/gfile.c:3793
+#: gio/gfile.c:4029 gio/gfile.c:4071 gio/gfile.c:4539 gio/gfile.c:4950
+#: gio/gfile.c:5035 gio/gfile.c:5125 gio/gfile.c:5222 gio/gfile.c:5309
+#: gio/gfile.c:5410 gio/gfile.c:8113 gio/gfile.c:8203 gio/gfile.c:8287
 #: gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "Әрекетке қолдау жоқ"
@@ -1274,73 +1257,69 @@ msgstr "Әрекетке қолдау жоқ"
 #. * trying to find the enclosing (user visible)
 #. * mount of a file, but none exists.
 #.
-#: gio/gfile.c:1543
+#: gio/gfile.c:1575
 msgid "Containing mount does not exist"
 msgstr ""
 
-#: gio/gfile.c:2590 gio/glocalfile.c:2428
+#: gio/gfile.c:2622 gio/glocalfile.c:2446
 msgid "Can’t copy over directory"
 msgstr "Бума үстіне көшіру мүмкін емес"
 
-#: gio/gfile.c:2650
+#: gio/gfile.c:2682
 msgid "Can’t copy directory over directory"
 msgstr "Буманы бума үстіне көшіру мүмкін емес"
 
-#: gio/gfile.c:2658
+#: gio/gfile.c:2690
 msgid "Target file exists"
 msgstr "Мақсат файлы бар болып тұр"
 
-#: gio/gfile.c:2677
+#: gio/gfile.c:2709
 msgid "Can’t recursively copy directory"
 msgstr "Буманы рекурсивті көшіру мүмкін емес"
 
-#: gio/gfile.c:2952
+#: gio/gfile.c:2984
 msgid "Splice not supported"
 msgstr ""
 
-#: gio/gfile.c:2956 gio/gfile.c:3001
+#: gio/gfile.c:2988 gio/gfile.c:3033
 #, c-format
 msgid "Error splicing file: %s"
 msgstr ""
 
-#: gio/gfile.c:3117
+#: gio/gfile.c:3149
 msgid "Copy (reflink/clone) between mounts is not supported"
 msgstr ""
 
-#: gio/gfile.c:3121
+#: gio/gfile.c:3153
 msgid "Copy (reflink/clone) is not supported or invalid"
 msgstr ""
 
-#: gio/gfile.c:3126
+#: gio/gfile.c:3158
 msgid "Copy (reflink/clone) is not supported or didn’t work"
 msgstr ""
 
-#: gio/gfile.c:3190
+#: gio/gfile.c:3221
 msgid "Can’t copy special file"
-msgstr "Арнайы файлды көшіру мүмкін емес"
+msgstr ""
 
-#: gio/gfile.c:4003
+#: gio/gfile.c:4019
 msgid "Invalid symlink value given"
 msgstr ""
 
-#: gio/gfile.c:4013 glib/gfileutils.c:2172
-msgid "Symbolic links not supported"
-msgstr "Символдық сілтемелерге қолдау жоқ"
-
-#: gio/gfile.c:4164
+#: gio/gfile.c:4180
 msgid "Trash not supported"
-msgstr "Қоқыс шелегіне қолдау жоқ"
+msgstr ""
 
-#: gio/gfile.c:4276
+#: gio/gfile.c:4292
 #, c-format
 msgid "File names cannot contain “%c”"
 msgstr ""
 
-#: gio/gfile.c:6757 gio/gvolume.c:364
+#: gio/gfile.c:6773 gio/gvolume.c:364
 msgid "volume doesn’t implement mount"
-msgstr "том тіркеуді жүзеге асырмайды"
+msgstr ""
 
-#: gio/gfile.c:6871 gio/gfile.c:6919
+#: gio/gfile.c:6884 gio/gfile.c:6930
 msgid "No application is registered as handling this file"
 msgstr ""
 
@@ -1385,35 +1364,35 @@ msgstr ""
 msgid "Truncate not supported on stream"
 msgstr ""
 
-#: gio/ghttpproxy.c:91 gio/gresolver.c:443 gio/gresolver.c:595
-#: glib/gconvert.c:1777
+#: gio/ghttpproxy.c:91 gio/gresolver.c:377 gio/gresolver.c:529
+#: glib/gconvert.c:1785
 msgid "Invalid hostname"
 msgstr "Хост аты қате"
 
 #: gio/ghttpproxy.c:143
 msgid "Bad HTTP proxy reply"
-msgstr "HTTP прокси жауабы қате"
+msgstr ""
 
 #: gio/ghttpproxy.c:159
 msgid "HTTP proxy connection not allowed"
-msgstr "HTTP прокси байланысы рұқсат етілмеген"
+msgstr ""
 
 #: gio/ghttpproxy.c:164
 msgid "HTTP proxy authentication failed"
-msgstr "HTTP прокси аутентификациясы сәтсіз"
+msgstr ""
 
 #: gio/ghttpproxy.c:167
 msgid "HTTP proxy authentication required"
-msgstr "HTTP прокси аутентификациясы керек"
+msgstr ""
 
 #: gio/ghttpproxy.c:171
 #, c-format
 msgid "HTTP proxy connection failed: %i"
-msgstr "HTTP прокси байланысы сәтсіз аяқталды: %i"
+msgstr ""
 
 #: gio/ghttpproxy.c:269
 msgid "HTTP proxy server closed connection unexpectedly."
-msgstr "HTTP прокси сервері күтпегенде байланысты үзді."
+msgstr ""
 
 #: gio/gicon.c:298
 #, c-format
@@ -1502,7 +1481,7 @@ msgstr ""
 msgid "“version” takes no arguments"
 msgstr "\"version\" аргументтерді қабылдамайды"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:864
+#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:857
 msgid "Usage:"
 msgstr "Қолданылуы:"
 
@@ -1588,10 +1567,10 @@ msgid "Error writing to stdout"
 msgstr "Қалыпты шығысқа жазу қатесі"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:333 gio/gio-tool-list.c:172
+#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:282 gio/gio-tool-list.c:165
 #: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
 #: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:203 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
+#: gio/gio-tool-monitor.c:203 gio/gio-tool-mount.c:1212 gio/gio-tool-open.c:70
 #: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:89
 #: gio/gio-tool-trash.c:81 gio/gio-tool-tree.c:239
 msgid "LOCATION"
@@ -1608,158 +1587,144 @@ msgid ""
 "like smb://server/resource/file.txt as location."
 msgstr ""
 
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:364 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
+#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:313 gio/gio-tool-mkdir.c:76
+#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1263 gio/gio-tool-open.c:96
 #: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
 msgid "No locations given"
 msgstr ""
 
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
+#: gio/gio-tool-copy.c:42 gio/gio-tool-move.c:38
 msgid "No target directory"
 msgstr "Мақсат бумасы жоқ"
 
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
+#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:39
 msgid "Show progress"
 msgstr "Орындалу барысын көрсету"
 
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:40
 msgid "Prompt before overwrite"
 msgstr "Үстінен жазу алдында сұрау"
 
-#: gio/gio-tool-copy.c:46
+#: gio/gio-tool-copy.c:45
 msgid "Preserve all attributes"
 msgstr "Барлық атрибуттарды сақтап қалу"
 
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
 msgid "Backup existing destination files"
 msgstr "Бар болып тұрған мақсат файлдардың қор көшірмелерін жасау"
 
-#: gio/gio-tool-copy.c:48
+#: gio/gio-tool-copy.c:47
 msgid "Never follow symbolic links"
 msgstr "Символдық сілтемелер соңынан ермеу"
 
-#: gio/gio-tool-copy.c:49
-msgid "Use default permissions for the destination"
-msgstr ""
-
-#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
+#: gio/gio-tool-copy.c:72 gio/gio-tool-move.c:67
 #, c-format
 msgid "Transferred %s out of %s (%s/s)"
 msgstr ""
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
+#: gio/gio-tool-copy.c:98 gio/gio-tool-move.c:94
 msgid "SOURCE"
 msgstr "ҚАЙНАР_КӨЗІ"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
+#: gio/gio-tool-copy.c:98 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
 msgid "DESTINATION"
 msgstr "МАҚСАТЫ"
 
-#: gio/gio-tool-copy.c:105
+#: gio/gio-tool-copy.c:103
 msgid "Copy one or more files from SOURCE to DESTINATION."
 msgstr ""
 
-#: gio/gio-tool-copy.c:107
+#: gio/gio-tool-copy.c:105
 msgid ""
 "gio copy is similar to the traditional cp utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/file.txt as location."
 msgstr ""
 
-#: gio/gio-tool-copy.c:149
+#: gio/gio-tool-copy.c:147
 #, c-format
 msgid "Destination %s is not a directory"
 msgstr "%s мақсаты бума емес"
 
-#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
+#: gio/gio-tool-copy.c:192 gio/gio-tool-move.c:186
 #, c-format
 msgid "%s: overwrite “%s”? "
 msgstr "%s: \"%s\" үстінен жазу керек пе? "
 
-#: gio/gio-tool-info.c:37
+#: gio/gio-tool-info.c:34
 msgid "List writable attributes"
 msgstr ""
 
-#: gio/gio-tool-info.c:38
+#: gio/gio-tool-info.c:35
 msgid "Get file system info"
 msgstr "Файлдық жүйе ақпаратын алу"
 
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
 msgid "The attributes to get"
 msgstr ""
 
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
 msgid "ATTRIBUTES"
 msgstr "АТРИБУТТАР"
 
-#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
+#: gio/gio-tool-info.c:37 gio/gio-tool-list.c:38 gio/gio-tool-set.c:34
 msgid "Don’t follow symbolic links"
 msgstr ""
 
-#: gio/gio-tool-info.c:78
+#: gio/gio-tool-info.c:75
 msgid "attributes:\n"
 msgstr "атрибуттар:\n"
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:134
+#: gio/gio-tool-info.c:127
 #, c-format
 msgid "display name: %s\n"
 msgstr ""
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:139
+#: gio/gio-tool-info.c:132
 #, c-format
 msgid "edit name: %s\n"
 msgstr ""
 
-#: gio/gio-tool-info.c:145
+#: gio/gio-tool-info.c:138
 #, c-format
 msgid "name: %s\n"
 msgstr "аты: %s\n"
 
-#: gio/gio-tool-info.c:152
+#: gio/gio-tool-info.c:145
 #, c-format
 msgid "type: %s\n"
 msgstr "түрі: %s\n"
 
-#: gio/gio-tool-info.c:158
+#: gio/gio-tool-info.c:151
 msgid "size: "
 msgstr "өлшемі: "
 
-#: gio/gio-tool-info.c:163
+#: gio/gio-tool-info.c:156
 msgid "hidden\n"
 msgstr "жасырын\n"
 
-#: gio/gio-tool-info.c:166
+#: gio/gio-tool-info.c:159
 #, c-format
 msgid "uri: %s\n"
 msgstr "uri: %s\n"
 
-#: gio/gio-tool-info.c:172
-#, c-format
-msgid "local path: %s\n"
-msgstr ""
-
-#: gio/gio-tool-info.c:199
-#, c-format
-msgid "unix mount: %s%s %s %s %s\n"
-msgstr ""
-
-#: gio/gio-tool-info.c:279
+#: gio/gio-tool-info.c:228
 msgid "Settable attributes:\n"
 msgstr "Орнатуға болатын атрибуттар:\n"
 
-#: gio/gio-tool-info.c:303
+#: gio/gio-tool-info.c:252
 msgid "Writable attribute namespaces:\n"
 msgstr ""
 
-#: gio/gio-tool-info.c:338
+#: gio/gio-tool-info.c:287
 msgid "Show information about locations."
 msgstr "Орналасулар жөнінде ақпаратты көрсету."
 
-#: gio/gio-tool-info.c:340
+#: gio/gio-tool-info.c:289
 msgid ""
 "gio info is similar to the traditional ls utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
@@ -1768,27 +1733,23 @@ msgid ""
 "namespace, e.g. unix, or by “*”, which matches all attributes"
 msgstr ""
 
-#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
+#: gio/gio-tool-list.c:36 gio/gio-tool-tree.c:32
 msgid "Show hidden files"
 msgstr "Жасырын файлдарды көрсету"
 
-#: gio/gio-tool-list.c:38
+#: gio/gio-tool-list.c:37
 msgid "Use a long listing format"
 msgstr ""
 
-#: gio/gio-tool-list.c:40
-msgid "Print display names"
-msgstr ""
-
-#: gio/gio-tool-list.c:41
+#: gio/gio-tool-list.c:39
 msgid "Print full URIs"
 msgstr "Толық URI шығару"
 
-#: gio/gio-tool-list.c:177
+#: gio/gio-tool-list.c:170
 msgid "List the contents of the locations."
 msgstr "Орналасулар құрамаларын тізіп шығару."
 
-#: gio/gio-tool-list.c:179
+#: gio/gio-tool-list.c:172
 msgid ""
 "gio list is similar to the traditional ls utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
@@ -1904,12 +1865,12 @@ msgid "Mount as mountable"
 msgstr "Тіркелетін ретінде тіркеу"
 
 #: gio/gio-tool-mount.c:64
-msgid "Mount volume with device file, or other identifier"
+msgid "Mount volume with device file"
 msgstr ""
 
-#: gio/gio-tool-mount.c:64
-msgid "ID"
-msgstr "ID"
+#: gio/gio-tool-mount.c:64 gio/gio-tool-mount.c:67
+msgid "DEVICE"
+msgstr "ҚҰРЫЛҒЫ"
 
 #: gio/gio-tool-mount.c:65
 msgid "Unmount"
@@ -1923,10 +1884,6 @@ msgstr "Шығару"
 msgid "Stop drive with device file"
 msgstr ""
 
-#: gio/gio-tool-mount.c:67
-msgid "DEVICE"
-msgstr "ҚҰРЫЛҒЫ"
-
 #: gio/gio-tool-mount.c:68
 msgid "Unmount all mounts with the given scheme"
 msgstr ""
@@ -1958,11 +1915,11 @@ msgstr "Қосымша ақпаратты көрсету"
 
 #: gio/gio-tool-mount.c:75
 msgid "The numeric PIM when unlocking a VeraCrypt volume"
-msgstr "VeraCrypt томын ашу кезіндегі сандық PIM"
+msgstr ""
 
 #: gio/gio-tool-mount.c:75
 msgid "PIM"
-msgstr "PIM"
+msgstr ""
 
 #: gio/gio-tool-mount.c:76
 msgid "Mount a TCRYPT hidden volume"
@@ -1980,12 +1937,16 @@ msgstr ""
 msgid "No drive for device file"
 msgstr ""
 
-#: gio/gio-tool-mount.c:1014
-#| msgid "No files given"
-msgid "No volume for given ID"
+#: gio/gio-tool-mount.c:975
+#, c-format
+msgid "Mounted %s at %s\n"
+msgstr ""
+
+#: gio/gio-tool-mount.c:1027
+msgid "No volume for device file"
 msgstr ""
 
-#: gio/gio-tool-mount.c:1203
+#: gio/gio-tool-mount.c:1216
 msgid "Mount or unmount the locations."
 msgstr "Орналасуларды тіркеу немесе тіркеуден шығару."
 
@@ -2144,32 +2105,32 @@ msgstr "Символдық сілтемелер, тіркеулер және ж
 msgid "List contents of directories in a tree-like format."
 msgstr "Бумалар құрамаларын ағаш тектес пішімде шығару."
 
-#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
+#: gio/glib-compile-resources.c:143 gio/glib-compile-schemas.c:1515
 #, c-format
 msgid "Element <%s> not allowed inside <%s>"
 msgstr "<%s> элементін <%s> ішінде орналастыру рұқсат етілмеген"
 
-#: gio/glib-compile-resources.c:144
+#: gio/glib-compile-resources.c:147
 #, c-format
 msgid "Element <%s> not allowed at toplevel"
 msgstr "<%s> элементі жоғары деңгейде орналасуы рұқсат етілмеген"
 
-#: gio/glib-compile-resources.c:234
+#: gio/glib-compile-resources.c:237
 #, c-format
 msgid "File %s appears multiple times in the resource"
 msgstr ""
 
-#: gio/glib-compile-resources.c:245
+#: gio/glib-compile-resources.c:248
 #, c-format
 msgid "Failed to locate “%s” in any source directory"
 msgstr ""
 
-#: gio/glib-compile-resources.c:256
+#: gio/glib-compile-resources.c:259
 #, c-format
 msgid "Failed to locate “%s” in current directory"
 msgstr ""
 
-#: gio/glib-compile-resources.c:290
+#: gio/glib-compile-resources.c:293
 #, c-format
 msgid "Unknown processing option “%s”"
 msgstr "Белгісіз өңдеу опциясы \"%s\""
@@ -2178,18 +2139,18 @@ msgstr "Белгісіз өңдеу опциясы \"%s\""
 #. * the second %s is an environment variable, and the third
 #. * %s is a command line tool
 #.
-#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
-#: gio/glib-compile-resources.c:424
+#: gio/glib-compile-resources.c:313 gio/glib-compile-resources.c:370
+#: gio/glib-compile-resources.c:427
 #, c-format
 msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
 msgstr ""
 
-#: gio/glib-compile-resources.c:457
+#: gio/glib-compile-resources.c:460
 #, c-format
 msgid "Error reading file %s: %s"
 msgstr "%s файлын оқу қатесі: %s"
 
-#: gio/glib-compile-resources.c:477
+#: gio/glib-compile-resources.c:480
 #, c-format
 msgid "Error compressing file %s"
 msgstr "%s файлын сығу қатесі"
@@ -2199,7 +2160,7 @@ msgstr "%s файлын сығу қатесі"
 msgid "text may not appear inside <%s>"
 msgstr "мәтін <%s> ішінде болмауы мүмкін"
 
-#: gio/glib-compile-resources.c:737 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-resources.c:737 gio/glib-compile-schemas.c:2139
 msgid "Show program version and exit"
 msgstr ""
 
@@ -2213,8 +2174,8 @@ msgid ""
 "directory)"
 msgstr ""
 
-#: gio/glib-compile-resources.c:739 gio/glib-compile-schemas.c:2173
-#: gio/glib-compile-schemas.c:2202
+#: gio/glib-compile-resources.c:739 gio/glib-compile-schemas.c:2140
+#: gio/glib-compile-schemas.c:2169
 msgid "DIRECTORY"
 msgstr "БУМА"
 
@@ -2272,437 +2233,428 @@ msgstr ""
 msgid "You should give exactly one file name\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:92
+#: gio/glib-compile-schemas.c:95
 #, c-format
 msgid "nick must be a minimum of 2 characters"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:103
+#: gio/glib-compile-schemas.c:106
 #, c-format
 msgid "Invalid numeric value"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:111
+#: gio/glib-compile-schemas.c:114
 #, c-format
 msgid "<value nick='%s'/> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:119
+#: gio/glib-compile-schemas.c:122
 #, c-format
 msgid "value='%s' already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:133
+#: gio/glib-compile-schemas.c:136
 #, c-format
 msgid "flags values must have at most 1 bit set"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:158
+#: gio/glib-compile-schemas.c:161
 #, c-format
 msgid "<%s> must contain at least one <value>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:314
+#: gio/glib-compile-schemas.c:317
 #, c-format
 msgid "<%s> is not contained in the specified range"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:326
+#: gio/glib-compile-schemas.c:329
 #, c-format
 msgid "<%s> is not a valid member of the specified enumerated type"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:332
+#: gio/glib-compile-schemas.c:335
 #, c-format
 msgid "<%s> contains string not in the specified flags type"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:338
+#: gio/glib-compile-schemas.c:341
 #, c-format
 msgid "<%s> contains a string not in <choices>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:372
+#: gio/glib-compile-schemas.c:375
 msgid "<range/> already specified for this key"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:390
+#: gio/glib-compile-schemas.c:393
 #, c-format
 msgid "<range> not allowed for keys of type “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:407
+#: gio/glib-compile-schemas.c:410
 #, c-format
 msgid "<range> specified minimum is greater than maximum"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:432
+#: gio/glib-compile-schemas.c:435
 #, c-format
 msgid "unsupported l10n category: %s"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:440
+#: gio/glib-compile-schemas.c:443
 msgid "l10n requested, but no gettext domain given"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:452
+#: gio/glib-compile-schemas.c:455
 msgid "translation context given for value without l10n enabled"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:474
+#: gio/glib-compile-schemas.c:477
 #, c-format
 msgid "Failed to parse <default> value of type “%s”: "
 msgstr ""
 
-#: gio/glib-compile-schemas.c:491
+#: gio/glib-compile-schemas.c:494
 msgid ""
 "<choices> cannot be specified for keys tagged as having an enumerated type"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:500
+#: gio/glib-compile-schemas.c:503
 msgid "<choices> already specified for this key"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:512
+#: gio/glib-compile-schemas.c:515
 #, c-format
 msgid "<choices> not allowed for keys of type “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:528
+#: gio/glib-compile-schemas.c:531
 #, c-format
 msgid "<choice value='%s'/> already given"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:543
+#: gio/glib-compile-schemas.c:546
 #, c-format
 msgid "<choices> must contain at least one <choice>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:557
+#: gio/glib-compile-schemas.c:560
 msgid "<aliases> already specified for this key"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:561
+#: gio/glib-compile-schemas.c:564
 msgid ""
 "<aliases> can only be specified for keys with enumerated or flags types or "
 "after <choices>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:580
+#: gio/glib-compile-schemas.c:583
 #, c-format
 msgid ""
 "<alias value='%s'/> given when “%s” is already a member of the enumerated "
 "type"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:586
+#: gio/glib-compile-schemas.c:589
 #, c-format
 msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:594
+#: gio/glib-compile-schemas.c:597
 #, c-format
 msgid "<alias value='%s'/> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:604
+#: gio/glib-compile-schemas.c:607
 #, c-format
 msgid "alias target “%s” is not in enumerated type"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:605
+#: gio/glib-compile-schemas.c:608
 #, c-format
 msgid "alias target “%s” is not in <choices>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:620
+#: gio/glib-compile-schemas.c:623
 #, c-format
 msgid "<aliases> must contain at least one <alias>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:797
+#: gio/glib-compile-schemas.c:798
 msgid "Empty names are not permitted"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:807
+#: gio/glib-compile-schemas.c:808
 #, c-format
 msgid "Invalid name “%s”: names must begin with a lowercase letter"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:819
+#: gio/glib-compile-schemas.c:820
 #, c-format
 msgid ""
 "Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
 "and hyphen (“-”) are permitted"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:828
+#: gio/glib-compile-schemas.c:829
 #, c-format
 msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:837
+#: gio/glib-compile-schemas.c:838
 #, c-format
 msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:845
+#: gio/glib-compile-schemas.c:846
 #, c-format
 msgid "Invalid name “%s”: maximum length is 1024"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:917
+#: gio/glib-compile-schemas.c:918
 #, c-format
 msgid "<child name='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:943
+#: gio/glib-compile-schemas.c:944
 msgid "Cannot add keys to a “list-of” schema"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:954
+#: gio/glib-compile-schemas.c:955
 #, c-format
 msgid "<key name='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:972
+#: gio/glib-compile-schemas.c:973
 #, c-format
 msgid ""
 "<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
 "to modify value"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:983
+#: gio/glib-compile-schemas.c:984
 #, c-format
 msgid ""
 "Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
 "to <key>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1002
+#: gio/glib-compile-schemas.c:1003
 #, c-format
 msgid "<%s id='%s'> not (yet) defined."
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1017
+#: gio/glib-compile-schemas.c:1018
 #, c-format
 msgid "Invalid GVariant type string “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1047
+#: gio/glib-compile-schemas.c:1048
 msgid "<override> given but schema isn’t extending anything"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1060
+#: gio/glib-compile-schemas.c:1061
 #, c-format
 msgid "No <key name='%s'> to override"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1068
+#: gio/glib-compile-schemas.c:1069
 #, c-format
 msgid "<override name='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1141
+#: gio/glib-compile-schemas.c:1142
 #, c-format
 msgid "<schema id='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1153
+#: gio/glib-compile-schemas.c:1154
 #, c-format
 msgid "<schema id='%s'> extends not yet existing schema “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1169
+#: gio/glib-compile-schemas.c:1170
 #, c-format
 msgid "<schema id='%s'> is list of not yet existing schema “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1177
+#: gio/glib-compile-schemas.c:1178
 #, c-format
 msgid "Cannot be a list of a schema with a path"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1187
+#: gio/glib-compile-schemas.c:1188
 #, c-format
 msgid "Cannot extend a schema with a path"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1197
+#: gio/glib-compile-schemas.c:1198
 #, c-format
 msgid ""
 "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1207
+#: gio/glib-compile-schemas.c:1208
 #, c-format
 msgid ""
 "<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
 "does not extend “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1224
+#: gio/glib-compile-schemas.c:1225
 #, c-format
 msgid "A path, if given, must begin and end with a slash"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1231
+#: gio/glib-compile-schemas.c:1232
 #, c-format
 msgid "The path of a list must end with “:/”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1240
+#: gio/glib-compile-schemas.c:1241
 #, c-format
 msgid ""
 "Warning: Schema “%s” has path “%s”.  Paths starting with “/apps/”, “/"
 "desktop/” or “/system/” are deprecated."
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1270
+#: gio/glib-compile-schemas.c:1271
 #, c-format
 msgid "<%s id='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
+#: gio/glib-compile-schemas.c:1421 gio/glib-compile-schemas.c:1437
 #, c-format
 msgid "Only one <%s> element allowed inside <%s>"
 msgstr "<%s> ішінде тек бір <%s> элементіне рұқсат етілген"
 
-#: gio/glib-compile-schemas.c:1518
+#: gio/glib-compile-schemas.c:1519
 #, c-format
 msgid "Element <%s> not allowed at the top level"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1536
+#: gio/glib-compile-schemas.c:1537
 msgid "Element <default> is required in <key>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1626
+#: gio/glib-compile-schemas.c:1627
 #, c-format
 msgid "Text may not appear inside <%s>"
-msgstr "Мәтін <%s> ішінде көрсетілмеуі керек"
+msgstr ""
 
-#: gio/glib-compile-schemas.c:1694
+#: gio/glib-compile-schemas.c:1695
 #, c-format
 msgid "Warning: undefined reference to <schema id='%s'/>"
 msgstr ""
 
 #. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
-msgid "--strict was specified; exiting."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1845
-msgid "This entire file has been ignored."
-msgstr ""
-
-#: gio/glib-compile-schemas.c:1908
-msgid "Ignoring this file."
+#: gio/glib-compile-schemas.c:1834 gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:2025
+#, c-format
+msgid "--strict was specified; exiting.\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1963
+#: gio/glib-compile-schemas.c:1844
 #, c-format
-msgid ""
-"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
-"override for this key."
+msgid "This entire file has been ignored.\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1971
+#: gio/glib-compile-schemas.c:1906
 #, c-format
-msgid ""
-"No such key “%s” in schema “%s” as specified in override file “%s” and --"
-"strict was specified; exiting."
+msgid "Ignoring this file.\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1993
+#: gio/glib-compile-schemas.c:1959
 #, c-format
-msgid ""
-"Cannot provide per-desktop overrides for localized key “%s” in schema "
-"“%s” (override file “%s”); ignoring override for this key."
+msgid "No such key “%s” in schema “%s” as specified in override file “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2002
+#: gio/glib-compile-schemas.c:1965 gio/glib-compile-schemas.c:1990
+#: gio/glib-compile-schemas.c:2050 gio/glib-compile-schemas.c:2079
 #, c-format
-msgid ""
-"Cannot provide per-desktop overrides for localized key “%s” in schema "
-"“%s” (override file “%s”) and --strict was specified; exiting."
+msgid "; ignoring override for this key.\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2026
+#: gio/glib-compile-schemas.c:1969 gio/glib-compile-schemas.c:1994
+#: gio/glib-compile-schemas.c:2054 gio/glib-compile-schemas.c:2083
 #, c-format
-msgid ""
-"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
-"%s. Ignoring override for this key."
+msgid " and --strict was specified; exiting.\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2038
+#: gio/glib-compile-schemas.c:1984
 #, c-format
 msgid ""
-"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
-"%s. --strict was specified; exiting."
+"cannot provide per-desktop overrides for localised key “%s” in schema "
+"“%s” (override file “%s”)"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2065
+#: gio/glib-compile-schemas.c:2011
 #, c-format
 msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is outside the "
-"range given in the schema; ignoring override for this key."
+"error parsing key “%s” in schema “%s” as specified in override file “%s”: %s."
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2075
+#: gio/glib-compile-schemas.c:2021
 #, c-format
-msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is outside the "
-"range given in the schema and --strict was specified; exiting."
+msgid "Ignoring override for this key.\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2101
+#: gio/glib-compile-schemas.c:2040
 #, c-format
 msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is not in the "
-"list of valid choices; ignoring override for this key."
+"override for key “%s” in schema “%s” in override file “%s” is outside the "
+"range given in the schema"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2111
+#: gio/glib-compile-schemas.c:2069
 #, c-format
 msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is not in the "
-"list of valid choices and --strict was specified; exiting."
+"override for key “%s” in schema “%s” in override file “%s” is not in the "
+"list of valid choices"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2173
-msgid "Where to store the gschemas.compiled file"
+#: gio/glib-compile-schemas.c:2140
+msgid "where to store the gschemas.compiled file"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-schemas.c:2141
 msgid "Abort on any errors in schemas"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2142
 msgid "Do not write the gschema.compiled file"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2143
 msgid "Do not enforce key name restrictions"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2205
+#: gio/glib-compile-schemas.c:2172
 msgid ""
 "Compile all GSettings schema files into a schema cache.\n"
 "Schema files are required to have the extension .gschema.xml,\n"
 "and the cache file is called gschemas.compiled."
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2226
-msgid "You should give exactly one directory name"
+#: gio/glib-compile-schemas.c:2193
+#, c-format
+msgid "You should give exactly one directory name\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2269
-msgid "No schema files found: doing nothing."
+#: gio/glib-compile-schemas.c:2235
+#, c-format
+msgid "No schema files found: "
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2271
-msgid "No schema files found: removed existing output file."
+#: gio/glib-compile-schemas.c:2238
+#, c-format
+msgid "doing nothing.\n"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2241
+#, c-format
+msgid "removed existing output file.\n"
 msgstr ""
 
 #: gio/glocalfile.c:546 gio/win32/gwinhttpfile.c:420
@@ -2738,7 +2690,7 @@ msgid "Can’t rename file, filename already exists"
 msgstr "Файл атын ауыстыру мүмкін емес, ондай файл бар болып тұр"
 
 #: gio/glocalfile.c:1213 gio/glocalfile.c:2322 gio/glocalfile.c:2350
-#: gio/glocalfile.c:2489 gio/glocalfileoutputstream.c:647
+#: gio/glocalfile.c:2507 gio/glocalfileoutputstream.c:646
 msgid "Invalid filename"
 msgstr "Файл аты қате"
 
@@ -2812,196 +2764,200 @@ msgstr ""
 msgid "Error making symbolic link %s: %s"
 msgstr "%s символдық сілтемесін жасау қатесі: %s"
 
-#: gio/glocalfile.c:2400 gio/glocalfile.c:2435 gio/glocalfile.c:2492
+#: gio/glocalfile.c:2363 glib/gfileutils.c:2138
+msgid "Symbolic links not supported"
+msgstr "Символдық сілтемелерге қолдау жоқ"
+
+#: gio/glocalfile.c:2418 gio/glocalfile.c:2453 gio/glocalfile.c:2510
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "%s файлын жылжыту қатесі: %s"
 
-#: gio/glocalfile.c:2423
+#: gio/glocalfile.c:2441
 msgid "Can’t move directory over directory"
 msgstr "Буманы бума үстіне жылжыту мүмкін емес"
 
-#: gio/glocalfile.c:2449 gio/glocalfileoutputstream.c:1031
-#: gio/glocalfileoutputstream.c:1045 gio/glocalfileoutputstream.c:1060
-#: gio/glocalfileoutputstream.c:1077 gio/glocalfileoutputstream.c:1091
+#: gio/glocalfile.c:2467 gio/glocalfileoutputstream.c:1030
+#: gio/glocalfileoutputstream.c:1044 gio/glocalfileoutputstream.c:1059
+#: gio/glocalfileoutputstream.c:1076 gio/glocalfileoutputstream.c:1090
 msgid "Backup file creation failed"
 msgstr ""
 
-#: gio/glocalfile.c:2468
+#: gio/glocalfile.c:2486
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Мақсат файлын өшіру қатесі: %s"
 
-#: gio/glocalfile.c:2482
+#: gio/glocalfile.c:2500
 msgid "Move between mounts not supported"
 msgstr ""
 
-#: gio/glocalfile.c:2673
+#: gio/glocalfile.c:2691
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:755
+#: gio/glocalfileinfo.c:745
 msgid "Attribute value must be non-NULL"
 msgstr ""
 
-#: gio/glocalfileinfo.c:762
+#: gio/glocalfileinfo.c:752
 msgid "Invalid attribute type (string expected)"
 msgstr ""
 
-#: gio/glocalfileinfo.c:769
+#: gio/glocalfileinfo.c:759
 msgid "Invalid extended attribute name"
 msgstr ""
 
-#: gio/glocalfileinfo.c:809
+#: gio/glocalfileinfo.c:799
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "\"%s\" кеңейтілген атрибутын орнату қатесі: %s"
 
-#: gio/glocalfileinfo.c:1637
+#: gio/glocalfileinfo.c:1625
 msgid " (invalid encoding)"
 msgstr " (кодталуы қате)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1789 gio/glocalfileoutputstream.c:908
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "\"%s\" файлы ақпаратын алу қатесі: %s"
 
-#: gio/glocalfileinfo.c:2071
+#: gio/glocalfileinfo.c:2059
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2116
+#: gio/glocalfileinfo.c:2104
 msgid "Invalid attribute type (uint32 expected)"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2122
 msgid "Invalid attribute type (uint64 expected)"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: gio/glocalfileinfo.c:2141 gio/glocalfileinfo.c:2160
 msgid "Invalid attribute type (byte string expected)"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2219
+#: gio/glocalfileinfo.c:2207
 msgid "Cannot set permissions on symlinks"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2223
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Рұқсаттарды орнату қатесі: %s"
 
-#: gio/glocalfileinfo.c:2286
+#: gio/glocalfileinfo.c:2274
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Иесін орнату қатесі: %s"
 
-#: gio/glocalfileinfo.c:2309
+#: gio/glocalfileinfo.c:2297
 msgid "symlink must be non-NULL"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2307 gio/glocalfileinfo.c:2326
+#: gio/glocalfileinfo.c:2337
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2328
+#: gio/glocalfileinfo.c:2316
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2454
+#: gio/glocalfileinfo.c:2442
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2477
+#: gio/glocalfileinfo.c:2465
 msgid "SELinux context must be non-NULL"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2480
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2499
+#: gio/glocalfileinfo.c:2487
 msgid "SELinux is not enabled on this system"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2591
+#: gio/glocalfileinfo.c:2579
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr ""
 
-#: gio/glocalfileinputstream.c:168 gio/glocalfileoutputstream.c:792
+#: gio/glocalfileinputstream.c:168 gio/glocalfileoutputstream.c:791
 #, c-format
 msgid "Error reading from file: %s"
 msgstr "Файлдан оқу қатесі: %s"
 
 #: gio/glocalfileinputstream.c:199 gio/glocalfileinputstream.c:211
 #: gio/glocalfileinputstream.c:225 gio/glocalfileinputstream.c:333
-#: gio/glocalfileoutputstream.c:554 gio/glocalfileoutputstream.c:1109
+#: gio/glocalfileoutputstream.c:553 gio/glocalfileoutputstream.c:1108
 #, c-format
 msgid "Error seeking in file: %s"
 msgstr "Файлдан іздеу қатесі: %s"
 
-#: gio/glocalfileinputstream.c:255 gio/glocalfileoutputstream.c:344
-#: gio/glocalfileoutputstream.c:438
+#: gio/glocalfileinputstream.c:255 gio/glocalfileoutputstream.c:343
+#: gio/glocalfileoutputstream.c:437
 #, c-format
 msgid "Error closing file: %s"
 msgstr "Файлды жабу қатесі: %s"
 
-#: gio/glocalfilemonitor.c:865
+#: gio/glocalfilemonitor.c:856
 msgid "Unable to find default local file monitor type"
 msgstr ""
 
-#: gio/glocalfileoutputstream.c:209 gio/glocalfileoutputstream.c:287
-#: gio/glocalfileoutputstream.c:324 gio/glocalfileoutputstream.c:813
+#: gio/glocalfileoutputstream.c:208 gio/glocalfileoutputstream.c:286
+#: gio/glocalfileoutputstream.c:323 gio/glocalfileoutputstream.c:812
 #, c-format
 msgid "Error writing to file: %s"
 msgstr "Файлға жазу қатесі: %s"
 
-#: gio/glocalfileoutputstream.c:371
+#: gio/glocalfileoutputstream.c:370
 #, c-format
 msgid "Error removing old backup link: %s"
 msgstr ""
 
-#: gio/glocalfileoutputstream.c:385 gio/glocalfileoutputstream.c:398
+#: gio/glocalfileoutputstream.c:384 gio/glocalfileoutputstream.c:397
 #, c-format
 msgid "Error creating backup copy: %s"
 msgstr ""
 
-#: gio/glocalfileoutputstream.c:416
+#: gio/glocalfileoutputstream.c:415
 #, c-format
 msgid "Error renaming temporary file: %s"
 msgstr ""
 
-#: gio/glocalfileoutputstream.c:600 gio/glocalfileoutputstream.c:1160
+#: gio/glocalfileoutputstream.c:599 gio/glocalfileoutputstream.c:1159
 #, c-format
 msgid "Error truncating file: %s"
 msgstr ""
 
-#: gio/glocalfileoutputstream.c:653 gio/glocalfileoutputstream.c:891
-#: gio/glocalfileoutputstream.c:1141 gio/gsubprocess.c:380
+#: gio/glocalfileoutputstream.c:652 gio/glocalfileoutputstream.c:890
+#: gio/glocalfileoutputstream.c:1140 gio/gsubprocess.c:380
 #, c-format
 msgid "Error opening file “%s”: %s"
 msgstr "\"%s\" файлын ашу қатесі: %s"
 
-#: gio/glocalfileoutputstream.c:922
+#: gio/glocalfileoutputstream.c:921
 msgid "Target file is a directory"
 msgstr "Мақсат файлы бума болып тұр"
 
-#: gio/glocalfileoutputstream.c:927
+#: gio/glocalfileoutputstream.c:926
 msgid "Target file is not a regular file"
 msgstr "Мақсат файлы қалыпты файл емес болып тұр"
 
-#: gio/glocalfileoutputstream.c:939
+#: gio/glocalfileoutputstream.c:938
 msgid "The file was externally modified"
 msgstr ""
 
-#: gio/glocalfileoutputstream.c:1125
+#: gio/glocalfileoutputstream.c:1124
 #, c-format
 msgid "Error removing old file: %s"
 msgstr "Ескі файлды өшіру қатесі: %s"
@@ -3089,16 +3045,16 @@ msgstr ""
 msgid "mount doesn’t implement synchronous content type guessing"
 msgstr ""
 
-#: gio/gnetworkaddress.c:415
+#: gio/gnetworkaddress.c:388
 #, c-format
 msgid "Hostname “%s” contains “[” but not “]”"
 msgstr ""
 
-#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
+#: gio/gnetworkmonitorbase.c:211 gio/gnetworkmonitorbase.c:315
 msgid "Network unreachable"
 msgstr "Желі қолжетерсіз"
 
-#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
+#: gio/gnetworkmonitorbase.c:249 gio/gnetworkmonitorbase.c:279
 msgid "Host unreachable"
 msgstr "Хост қолжетерсіз"
 
@@ -3116,12 +3072,12 @@ msgstr ""
 msgid "Could not get network status: "
 msgstr ""
 
-#: gio/gnetworkmonitornm.c:348
+#: gio/gnetworkmonitornm.c:313
 #, c-format
 msgid "NetworkManager not running"
 msgstr "NetworkManager орындалы тұрған жоқ"
 
-#: gio/gnetworkmonitornm.c:359
+#: gio/gnetworkmonitornm.c:324
 #, c-format
 msgid "NetworkManager version too old"
 msgstr "NetworkManager нұсқасы тым ескі"
@@ -3139,18 +3095,18 @@ msgstr ""
 msgid "Source stream is already closed"
 msgstr ""
 
-#: gio/gresolver.c:386 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
+#: gio/gresolver.c:344 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:160
 #, c-format
 msgid "Error resolving “%s”: %s"
 msgstr ""
 
 #. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:455 gio/gresolver.c:613
+#: gio/gresolver.c:389 gio/gresolver.c:547
 #, c-format
 msgid "%s not implemented"
 msgstr ""
 
-#: gio/gresolver.c:981 gio/gresolver.c:1033
+#: gio/gresolver.c:915 gio/gresolver.c:967
 msgid "Invalid domain"
 msgstr "Хост аты қате"
 
@@ -3176,26 +3132,26 @@ msgstr ""
 msgid "Input stream doesn’t implement seek"
 msgstr ""
 
-#: gio/gresource-tool.c:499
+#: gio/gresource-tool.c:501
 msgid "List sections containing resources in an elf FILE"
 msgstr ""
 
-#: gio/gresource-tool.c:505
+#: gio/gresource-tool.c:507
 msgid ""
 "List resources\n"
 "If SECTION is given, only list resources in this section\n"
 "If PATH is given, only list matching resources"
 msgstr ""
 
-#: gio/gresource-tool.c:508 gio/gresource-tool.c:518
+#: gio/gresource-tool.c:510 gio/gresource-tool.c:520
 msgid "FILE [PATH]"
 msgstr ""
 
-#: gio/gresource-tool.c:509 gio/gresource-tool.c:519 gio/gresource-tool.c:526
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521 gio/gresource-tool.c:528
 msgid "SECTION"
 msgstr ""
 
-#: gio/gresource-tool.c:514
+#: gio/gresource-tool.c:516
 msgid ""
 "List resources with details\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3203,15 +3159,15 @@ msgid ""
 "Details include the section, size and compression"
 msgstr ""
 
-#: gio/gresource-tool.c:524
+#: gio/gresource-tool.c:526
 msgid "Extract a resource file to stdout"
 msgstr ""
 
-#: gio/gresource-tool.c:525
+#: gio/gresource-tool.c:527
 msgid "FILE PATH"
 msgstr ""
 
-#: gio/gresource-tool.c:539
+#: gio/gresource-tool.c:541
 msgid ""
 "Usage:\n"
 "  gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3227,7 +3183,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gresource-tool.c:553
+#: gio/gresource-tool.c:555
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3237,158 +3193,158 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gresource-tool.c:560
+#: gio/gresource-tool.c:562
 msgid "  SECTION   An (optional) elf section name\n"
 msgstr ""
 
-#: gio/gresource-tool.c:564 gio/gsettings-tool.c:701
+#: gio/gresource-tool.c:566 gio/gsettings-tool.c:703
 msgid "  COMMAND   The (optional) command to explain\n"
 msgstr ""
 
-#: gio/gresource-tool.c:570
+#: gio/gresource-tool.c:572
 msgid "  FILE      An elf file (a binary or a shared library)\n"
 msgstr ""
 
-#: gio/gresource-tool.c:573
+#: gio/gresource-tool.c:575
 msgid ""
 "  FILE      An elf file (a binary or a shared library)\n"
 "            or a compiled resource file\n"
 msgstr ""
 
-#: gio/gresource-tool.c:577
+#: gio/gresource-tool.c:579
 msgid "[PATH]"
 msgstr ""
 
-#: gio/gresource-tool.c:579
+#: gio/gresource-tool.c:581
 msgid "  PATH      An (optional) resource path (may be partial)\n"
 msgstr ""
 
-#: gio/gresource-tool.c:580
+#: gio/gresource-tool.c:582
 msgid "PATH"
 msgstr "ЖОЛ"
 
-#: gio/gresource-tool.c:582
+#: gio/gresource-tool.c:584
 msgid "  PATH      A resource path\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:906
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:908
 #, c-format
 msgid "No such schema “%s”\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:55
+#: gio/gsettings-tool.c:57
 #, c-format
 msgid "Schema “%s” is not relocatable (path must not be specified)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:76
+#: gio/gsettings-tool.c:78
 #, c-format
 msgid "Schema “%s” is relocatable (path must be specified)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:90
+#: gio/gsettings-tool.c:92
 msgid "Empty path given.\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:96
+#: gio/gsettings-tool.c:98
 msgid "Path must begin with a slash (/)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:102
+#: gio/gsettings-tool.c:104
 msgid "Path must end with a slash (/)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:108
+#: gio/gsettings-tool.c:110
 msgid "Path must not contain two adjacent slashes (//)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:536
+#: gio/gsettings-tool.c:538
 msgid "The provided value is outside of the valid range\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:543
+#: gio/gsettings-tool.c:545
 msgid "The key is not writable\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:579
+#: gio/gsettings-tool.c:581
 msgid "List the installed (non-relocatable) schemas"
 msgstr ""
 
-#: gio/gsettings-tool.c:585
+#: gio/gsettings-tool.c:587
 msgid "List the installed relocatable schemas"
 msgstr ""
 
-#: gio/gsettings-tool.c:591
+#: gio/gsettings-tool.c:593
 msgid "List the keys in SCHEMA"
 msgstr ""
 
-#: gio/gsettings-tool.c:592 gio/gsettings-tool.c:598 gio/gsettings-tool.c:641
+#: gio/gsettings-tool.c:594 gio/gsettings-tool.c:600 gio/gsettings-tool.c:643
 msgid "SCHEMA[:PATH]"
 msgstr "SCHEMA[:PATH]"
 
-#: gio/gsettings-tool.c:597
+#: gio/gsettings-tool.c:599
 msgid "List the children of SCHEMA"
 msgstr ""
 
-#: gio/gsettings-tool.c:603
+#: gio/gsettings-tool.c:605
 msgid ""
 "List keys and values, recursively\n"
 "If no SCHEMA is given, list all keys\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:605
+#: gio/gsettings-tool.c:607
 msgid "[SCHEMA[:PATH]]"
 msgstr "[SCHEMA[:PATH]]"
 
-#: gio/gsettings-tool.c:610
+#: gio/gsettings-tool.c:612
 msgid "Get the value of KEY"
 msgstr ""
 
-#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:623
-#: gio/gsettings-tool.c:635 gio/gsettings-tool.c:647
+#: gio/gsettings-tool.c:613 gio/gsettings-tool.c:619 gio/gsettings-tool.c:625
+#: gio/gsettings-tool.c:637 gio/gsettings-tool.c:649
 msgid "SCHEMA[:PATH] KEY"
 msgstr "SCHEMA[:PATH] KEY"
 
-#: gio/gsettings-tool.c:616
+#: gio/gsettings-tool.c:618
 msgid "Query the range of valid values for KEY"
 msgstr ""
 
-#: gio/gsettings-tool.c:622
+#: gio/gsettings-tool.c:624
 msgid "Query the description for KEY"
 msgstr ""
 
-#: gio/gsettings-tool.c:628
+#: gio/gsettings-tool.c:630
 msgid "Set the value of KEY to VALUE"
 msgstr ""
 
-#: gio/gsettings-tool.c:629
+#: gio/gsettings-tool.c:631
 msgid "SCHEMA[:PATH] KEY VALUE"
 msgstr "SCHEMA[:PATH] KEY VALUE"
 
-#: gio/gsettings-tool.c:634
+#: gio/gsettings-tool.c:636
 msgid "Reset KEY to its default value"
 msgstr ""
 
-#: gio/gsettings-tool.c:640
+#: gio/gsettings-tool.c:642
 msgid "Reset all keys in SCHEMA to their defaults"
 msgstr ""
 
-#: gio/gsettings-tool.c:646
+#: gio/gsettings-tool.c:648
 msgid "Check if KEY is writable"
 msgstr ""
 
-#: gio/gsettings-tool.c:652
+#: gio/gsettings-tool.c:654
 msgid ""
 "Monitor KEY for changes.\n"
 "If no KEY is specified, monitor all keys in SCHEMA.\n"
 "Use ^C to stop monitoring.\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:655
+#: gio/gsettings-tool.c:657
 msgid "SCHEMA[:PATH] [KEY]"
 msgstr ""
 
-#: gio/gsettings-tool.c:667
+#: gio/gsettings-tool.c:669
 msgid ""
 "Usage:\n"
 "  gsettings --version\n"
@@ -3414,7 +3370,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:691
+#: gio/gsettings-tool.c:693
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3424,248 +3380,247 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:697
+#: gio/gsettings-tool.c:699
 msgid "  SCHEMADIR A directory to search for additional schemas\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:705
+#: gio/gsettings-tool.c:707
 msgid ""
 "  SCHEMA    The name of the schema\n"
 "  PATH      The path, for relocatable schemas\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:710
+#: gio/gsettings-tool.c:712
 msgid "  KEY       The (optional) key within the schema\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:714
+#: gio/gsettings-tool.c:716
 msgid "  KEY       The key within the schema\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:718
+#: gio/gsettings-tool.c:720
 msgid "  VALUE     The value to set\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:773
+#: gio/gsettings-tool.c:775
 #, c-format
 msgid "Could not load schemas from %s: %s\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:785
+#: gio/gsettings-tool.c:787
 msgid "No schemas installed\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:864
+#: gio/gsettings-tool.c:866
 msgid "Empty schema name given\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:919
+#: gio/gsettings-tool.c:921
 #, c-format
 msgid "No such key “%s”\n"
 msgstr ""
 
-#: gio/gsocket.c:418
+#: gio/gsocket.c:373
 msgid "Invalid socket, not initialized"
 msgstr ""
 
-#: gio/gsocket.c:425
+#: gio/gsocket.c:380
 #, c-format
 msgid "Invalid socket, initialization failed due to: %s"
 msgstr ""
 
-#: gio/gsocket.c:433
+#: gio/gsocket.c:388
 msgid "Socket is already closed"
 msgstr ""
 
-#: gio/gsocket.c:448 gio/gsocket.c:3182 gio/gsocket.c:4399 gio/gsocket.c:4457
+#: gio/gsocket.c:403 gio/gsocket.c:3027 gio/gsocket.c:4244 gio/gsocket.c:4302
 msgid "Socket I/O timed out"
 msgstr ""
 
-#: gio/gsocket.c:583
+#: gio/gsocket.c:538
 #, c-format
 msgid "creating GSocket from fd: %s"
 msgstr ""
 
-#: gio/gsocket.c:612 gio/gsocket.c:666 gio/gsocket.c:673
+#: gio/gsocket.c:567 gio/gsocket.c:621 gio/gsocket.c:628
 #, c-format
 msgid "Unable to create socket: %s"
 msgstr ""
 
-#: gio/gsocket.c:666
+#: gio/gsocket.c:621
 msgid "Unknown family was specified"
 msgstr ""
 
-#: gio/gsocket.c:673
+#: gio/gsocket.c:628
 msgid "Unknown protocol was specified"
 msgstr ""
 
-#: gio/gsocket.c:1164
+#: gio/gsocket.c:1119
 #, c-format
 msgid "Cannot use datagram operations on a non-datagram socket."
 msgstr ""
 
-#: gio/gsocket.c:1181
+#: gio/gsocket.c:1136
 #, c-format
 msgid "Cannot use datagram operations on a socket with a timeout set."
 msgstr ""
 
-#: gio/gsocket.c:1988
+#: gio/gsocket.c:1943
 #, c-format
 msgid "could not get local address: %s"
 msgstr ""
 
-#: gio/gsocket.c:2034
+#: gio/gsocket.c:1989
 #, c-format
 msgid "could not get remote address: %s"
 msgstr ""
 
-#: gio/gsocket.c:2100
+#: gio/gsocket.c:2055
 #, c-format
 msgid "could not listen: %s"
 msgstr ""
 
-#: gio/gsocket.c:2204
+#: gio/gsocket.c:2157
 #, c-format
-#| msgid "Error reading file %s: %s"
-msgid "Error binding to address %s: %s"
+msgid "Error binding to address: %s"
 msgstr ""
 
-#: gio/gsocket.c:2380 gio/gsocket.c:2417 gio/gsocket.c:2527 gio/gsocket.c:2552
-#: gio/gsocket.c:2615 gio/gsocket.c:2673 gio/gsocket.c:2691
+#: gio/gsocket.c:2215 gio/gsocket.c:2252 gio/gsocket.c:2362 gio/gsocket.c:2387
+#: gio/gsocket.c:2460 gio/gsocket.c:2518 gio/gsocket.c:2536
 #, c-format
 msgid "Error joining multicast group: %s"
 msgstr ""
 
-#: gio/gsocket.c:2381 gio/gsocket.c:2418 gio/gsocket.c:2528 gio/gsocket.c:2553
-#: gio/gsocket.c:2616 gio/gsocket.c:2674 gio/gsocket.c:2692
+#: gio/gsocket.c:2216 gio/gsocket.c:2253 gio/gsocket.c:2363 gio/gsocket.c:2388
+#: gio/gsocket.c:2461 gio/gsocket.c:2519 gio/gsocket.c:2537
 #, c-format
 msgid "Error leaving multicast group: %s"
 msgstr ""
 
-#: gio/gsocket.c:2382
+#: gio/gsocket.c:2217
 msgid "No support for source-specific multicast"
 msgstr ""
 
-#: gio/gsocket.c:2529
+#: gio/gsocket.c:2364
 msgid "Unsupported socket family"
 msgstr ""
 
-#: gio/gsocket.c:2554
+#: gio/gsocket.c:2389
 msgid "source-specific not an IPv4 address"
 msgstr ""
 
-#: gio/gsocket.c:2578
+#: gio/gsocket.c:2407 gio/gsocket.c:2436 gio/gsocket.c:2486
 #, c-format
-msgid "Interface name too long"
+msgid "Interface not found: %s"
 msgstr ""
 
-#: gio/gsocket.c:2591 gio/gsocket.c:2641
+#: gio/gsocket.c:2423
 #, c-format
-msgid "Interface not found: %s"
+msgid "Interface name too long"
 msgstr ""
 
-#: gio/gsocket.c:2617
+#: gio/gsocket.c:2462
 msgid "No support for IPv4 source-specific multicast"
 msgstr ""
 
-#: gio/gsocket.c:2675
+#: gio/gsocket.c:2520
 msgid "No support for IPv6 source-specific multicast"
 msgstr ""
 
-#: gio/gsocket.c:2884
+#: gio/gsocket.c:2729
 #, c-format
 msgid "Error accepting connection: %s"
 msgstr ""
 
-#: gio/gsocket.c:3010
+#: gio/gsocket.c:2855
 msgid "Connection in progress"
 msgstr ""
 
-#: gio/gsocket.c:3061
+#: gio/gsocket.c:2906
 msgid "Unable to get pending error: "
 msgstr ""
 
-#: gio/gsocket.c:3247
+#: gio/gsocket.c:3092
 #, c-format
 msgid "Error receiving data: %s"
 msgstr ""
 
-#: gio/gsocket.c:3444
+#: gio/gsocket.c:3289
 #, c-format
 msgid "Error sending data: %s"
 msgstr ""
 
-#: gio/gsocket.c:3631
+#: gio/gsocket.c:3476
 #, c-format
 msgid "Unable to shutdown socket: %s"
 msgstr ""
 
-#: gio/gsocket.c:3712
+#: gio/gsocket.c:3557
 #, c-format
 msgid "Error closing socket: %s"
 msgstr ""
 
-#: gio/gsocket.c:4392
+#: gio/gsocket.c:4237
 #, c-format
 msgid "Waiting for socket condition: %s"
 msgstr ""
 
-#: gio/gsocket.c:4770 gio/gsocket.c:4772 gio/gsocket.c:4919 gio/gsocket.c:5004
-#: gio/gsocket.c:5182 gio/gsocket.c:5222 gio/gsocket.c:5224
+#: gio/gsocket.c:4614 gio/gsocket.c:4616 gio/gsocket.c:4762 gio/gsocket.c:4847
+#: gio/gsocket.c:5027 gio/gsocket.c:5067 gio/gsocket.c:5069
 #, c-format
 msgid "Error sending message: %s"
 msgstr "Хабарламаны жіберу сәтсіз: %s"
 
-#: gio/gsocket.c:4946
+#: gio/gsocket.c:4789
 msgid "GSocketControlMessage not supported on Windows"
 msgstr ""
 
-#: gio/gsocket.c:5415 gio/gsocket.c:5488 gio/gsocket.c:5714
+#: gio/gsocket.c:5260 gio/gsocket.c:5333 gio/gsocket.c:5560
 #, c-format
 msgid "Error receiving message: %s"
 msgstr ""
 
-#: gio/gsocket.c:5995
+#: gio/gsocket.c:5832
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr ""
 
-#: gio/gsocket.c:6004
+#: gio/gsocket.c:5841
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr ""
 
-#: gio/gsocketclient.c:182
+#: gio/gsocketclient.c:181
 #, c-format
 msgid "Could not connect to proxy server %s: "
 msgstr ""
 
-#: gio/gsocketclient.c:196
+#: gio/gsocketclient.c:195
 #, c-format
 msgid "Could not connect to %s: "
 msgstr ""
 
-#: gio/gsocketclient.c:198
+#: gio/gsocketclient.c:197
 msgid "Could not connect: "
 msgstr "Байланысу мүмкін емес: "
 
-#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1866
+#: gio/gsocketclient.c:1032 gio/gsocketclient.c:1731
 msgid "Unknown error on connect"
 msgstr "Байланысты орнату кезіндегі белгісіз қате"
 
-#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1668
+#: gio/gsocketclient.c:1086 gio/gsocketclient.c:1640
 msgid "Proxying over a non-TCP connection is not supported."
 msgstr ""
 
-#: gio/gsocketclient.c:1120 gio/gsocketclient.c:1698
+#: gio/gsocketclient.c:1115 gio/gsocketclient.c:1666
 #, c-format
 msgid "Proxy protocol “%s” is not supported."
 msgstr ""
 
-#: gio/gsocketlistener.c:230
+#: gio/gsocketlistener.c:225
 msgid "Listener is already closed"
 msgstr ""
 
-#: gio/gsocketlistener.c:276
+#: gio/gsocketlistener.c:271
 msgid "Added socket is closed"
 msgstr ""
 
@@ -3691,66 +3646,66 @@ msgstr ""
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr ""
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr ""
 
-#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
+#: gio/gsocks5proxy.c:167
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr ""
 
-#: gio/gsocks5proxy.c:191
+#: gio/gsocks5proxy.c:177
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
 msgstr ""
 
-#: gio/gsocks5proxy.c:220
+#: gio/gsocks5proxy.c:206
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr ""
 
-#: gio/gsocks5proxy.c:250
+#: gio/gsocks5proxy.c:236
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr ""
 
-#: gio/gsocks5proxy.c:300
+#: gio/gsocks5proxy.c:286
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv5 protocol"
 msgstr ""
 
-#: gio/gsocks5proxy.c:362
+#: gio/gsocks5proxy.c:348
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr ""
 
-#: gio/gsocks5proxy.c:369
+#: gio/gsocks5proxy.c:355
 msgid "Internal SOCKSv5 proxy server error."
 msgstr ""
 
-#: gio/gsocks5proxy.c:375
+#: gio/gsocks5proxy.c:361
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr ""
 
-#: gio/gsocks5proxy.c:382
+#: gio/gsocks5proxy.c:368
 msgid "Host unreachable through SOCKSv5 server."
 msgstr ""
 
-#: gio/gsocks5proxy.c:388
+#: gio/gsocks5proxy.c:374
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr ""
 
-#: gio/gsocks5proxy.c:394
+#: gio/gsocks5proxy.c:380
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr ""
 
-#: gio/gsocks5proxy.c:400
+#: gio/gsocks5proxy.c:386
 msgid "SOCKSv5 proxy does not support “connect” command."
 msgstr ""
 
-#: gio/gsocks5proxy.c:406
+#: gio/gsocks5proxy.c:392
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr ""
 
-#: gio/gsocks5proxy.c:412
+#: gio/gsocks5proxy.c:398
 msgid "Unknown SOCKSv5 proxy error."
 msgstr ""
 
@@ -3763,24 +3718,24 @@ msgstr ""
 msgid "No valid addresses were found"
 msgstr ""
 
-#: gio/gthreadedresolver.c:334
+#: gio/gthreadedresolver.c:317
 #, c-format
 msgid "Error reverse-resolving “%s”: %s"
 msgstr ""
 
-#: gio/gthreadedresolver.c:671 gio/gthreadedresolver.c:750
-#: gio/gthreadedresolver.c:848 gio/gthreadedresolver.c:898
+#: gio/gthreadedresolver.c:653 gio/gthreadedresolver.c:732
+#: gio/gthreadedresolver.c:830 gio/gthreadedresolver.c:880
 #, c-format
 msgid "No DNS record of the requested type for “%s”"
 msgstr ""
 
-#: gio/gthreadedresolver.c:676 gio/gthreadedresolver.c:853
+#: gio/gthreadedresolver.c:658 gio/gthreadedresolver.c:835
 #, c-format
 msgid "Temporarily unable to resolve “%s”"
 msgstr ""
 
-#: gio/gthreadedresolver.c:681 gio/gthreadedresolver.c:858
-#: gio/gthreadedresolver.c:968
+#: gio/gthreadedresolver.c:663 gio/gthreadedresolver.c:840
+#: gio/gthreadedresolver.c:948
 #, c-format
 msgid "Error resolving “%s”"
 msgstr ""
@@ -3826,13 +3781,13 @@ msgstr ""
 msgid "The password entered is incorrect."
 msgstr ""
 
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:579
+#: gio/gunixconnection.c:166 gio/gunixconnection.c:563
 #, c-format
 msgid "Expecting 1 control message, got %d"
 msgid_plural "Expecting 1 control message, got %d"
 msgstr[0] ""
 
-#: gio/gunixconnection.c:182 gio/gunixconnection.c:591
+#: gio/gunixconnection.c:182 gio/gunixconnection.c:575
 msgid "Unexpected type of ancillary data"
 msgstr ""
 
@@ -3846,31 +3801,31 @@ msgstr[0] ""
 msgid "Received invalid fd"
 msgstr ""
 
-#: gio/gunixconnection.c:363
+#: gio/gunixconnection.c:355
 msgid "Error sending credentials: "
 msgstr ""
 
-#: gio/gunixconnection.c:520
+#: gio/gunixconnection.c:504
 #, c-format
 msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
 msgstr ""
 
-#: gio/gunixconnection.c:536
+#: gio/gunixconnection.c:520
 #, c-format
 msgid "Error enabling SO_PASSCRED: %s"
 msgstr ""
 
-#: gio/gunixconnection.c:565
+#: gio/gunixconnection.c:549
 msgid ""
 "Expecting to read a single byte for receiving credentials but read zero bytes"
 msgstr ""
 
-#: gio/gunixconnection.c:605
+#: gio/gunixconnection.c:589
 #, c-format
 msgid "Not expecting control message, but got %d"
 msgstr ""
 
-#: gio/gunixconnection.c:630
+#: gio/gunixconnection.c:614
 #, c-format
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr ""
@@ -3880,19 +3835,19 @@ msgstr ""
 msgid "Error reading from file descriptor: %s"
 msgstr ""
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
+#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:534
 #: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr ""
 
-#: gio/gunixmounts.c:2709 gio/gunixmounts.c:2762
+#: gio/gunixmounts.c:2650 gio/gunixmounts.c:2703
 msgid "Filesystem root"
 msgstr "Файлдық жүйе түбірі"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:371 gio/gunixoutputstream.c:391
+#: gio/gunixoutputstream.c:478 gio/gunixoutputstream.c:498
+#: gio/gunixoutputstream.c:675
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr ""
@@ -3968,153 +3923,148 @@ msgstr ""
 msgid "Wrong args\n"
 msgstr ""
 
-#: glib/gbookmarkfile.c:756
+#: glib/gbookmarkfile.c:754
 #, c-format
 msgid "Unexpected attribute “%s” for element “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:767 glib/gbookmarkfile.c:847 glib/gbookmarkfile.c:857
-#: glib/gbookmarkfile.c:969
+#: glib/gbookmarkfile.c:765 glib/gbookmarkfile.c:836 glib/gbookmarkfile.c:846
+#: glib/gbookmarkfile.c:955
 #, c-format
 msgid "Attribute “%s” of element “%s” not found"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1178 glib/gbookmarkfile.c:1243
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1317
+#: glib/gbookmarkfile.c:1164 glib/gbookmarkfile.c:1229
+#: glib/gbookmarkfile.c:1293 glib/gbookmarkfile.c:1303
 #, c-format
 msgid "Unexpected tag “%s”, tag “%s” expected"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1203 glib/gbookmarkfile.c:1217
-#: glib/gbookmarkfile.c:1285 glib/gbookmarkfile.c:1331
+#: glib/gbookmarkfile.c:1189 glib/gbookmarkfile.c:1203
+#: glib/gbookmarkfile.c:1271 glib/gbookmarkfile.c:1317
 #, c-format
 msgid "Unexpected tag “%s” inside “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1625
-#, c-format
-msgid "Invalid date/time ‘%s’ in bookmark file"
-msgstr ""
-
-#: glib/gbookmarkfile.c:1831
+#: glib/gbookmarkfile.c:1813
 msgid "No valid bookmark file found in data dirs"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2032
+#: glib/gbookmarkfile.c:2014
 #, c-format
 msgid "A bookmark for URI “%s” already exists"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2078 glib/gbookmarkfile.c:2236
-#: glib/gbookmarkfile.c:2321 glib/gbookmarkfile.c:2401
-#: glib/gbookmarkfile.c:2486 glib/gbookmarkfile.c:2569
-#: glib/gbookmarkfile.c:2647 glib/gbookmarkfile.c:2726
-#: glib/gbookmarkfile.c:2768 glib/gbookmarkfile.c:2865
-#: glib/gbookmarkfile.c:2986 glib/gbookmarkfile.c:3176
-#: glib/gbookmarkfile.c:3252 glib/gbookmarkfile.c:3420
-#: glib/gbookmarkfile.c:3509 glib/gbookmarkfile.c:3598
-#: glib/gbookmarkfile.c:3717
+#: glib/gbookmarkfile.c:2060 glib/gbookmarkfile.c:2218
+#: glib/gbookmarkfile.c:2303 glib/gbookmarkfile.c:2383
+#: glib/gbookmarkfile.c:2468 glib/gbookmarkfile.c:2551
+#: glib/gbookmarkfile.c:2629 glib/gbookmarkfile.c:2708
+#: glib/gbookmarkfile.c:2750 glib/gbookmarkfile.c:2847
+#: glib/gbookmarkfile.c:2968 glib/gbookmarkfile.c:3158
+#: glib/gbookmarkfile.c:3234 glib/gbookmarkfile.c:3402
+#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3580
+#: glib/gbookmarkfile.c:3699
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2410
+#: glib/gbookmarkfile.c:2392
 #, c-format
 msgid "No MIME type defined in the bookmark for URI “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2495
+#: glib/gbookmarkfile.c:2477
 #, c-format
 msgid "No private flag has been defined in bookmark for URI “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2874
+#: glib/gbookmarkfile.c:2856
 #, c-format
 msgid "No groups set in bookmark for URI “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:3273 glib/gbookmarkfile.c:3430
+#: glib/gbookmarkfile.c:3255 glib/gbookmarkfile.c:3412
 #, c-format
 msgid "No application with name “%s” registered a bookmark for “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:3453
+#: glib/gbookmarkfile.c:3435
 #, c-format
 msgid "Failed to expand exec line “%s” with URI “%s”"
 msgstr ""
 
-#: glib/gconvert.c:466
+#: glib/gconvert.c:474
 msgid "Unrepresentable character in conversion input"
 msgstr ""
 
-#: glib/gconvert.c:493 glib/gutf8.c:871 glib/gutf8.c:1083 glib/gutf8.c:1220
-#: glib/gutf8.c:1324
+#: glib/gconvert.c:501 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr ""
 
-#: glib/gconvert.c:762
+#: glib/gconvert.c:770
 #, c-format
 msgid "Cannot convert fallback “%s” to codeset “%s”"
 msgstr ""
 
-#: glib/gconvert.c:934
+#: glib/gconvert.c:942
 msgid "Embedded NUL byte in conversion input"
 msgstr ""
 
-#: glib/gconvert.c:955
+#: glib/gconvert.c:963
 msgid "Embedded NUL byte in conversion output"
 msgstr ""
 
-#: glib/gconvert.c:1640
+#: glib/gconvert.c:1648
 #, c-format
 msgid "The URI “%s” is not an absolute URI using the “file” scheme"
 msgstr ""
 
-#: glib/gconvert.c:1650
+#: glib/gconvert.c:1658
 #, c-format
 msgid "The local file URI “%s” may not include a “#”"
 msgstr ""
 
-#: glib/gconvert.c:1667
+#: glib/gconvert.c:1675
 #, c-format
 msgid "The URI “%s” is invalid"
 msgstr "URI \"%s\" қате"
 
-#: glib/gconvert.c:1679
+#: glib/gconvert.c:1687
 #, c-format
 msgid "The hostname of the URI “%s” is invalid"
 msgstr ""
 
-#: glib/gconvert.c:1695
+#: glib/gconvert.c:1703
 #, c-format
 msgid "The URI “%s” contains invalidly escaped characters"
 msgstr ""
 
-#: glib/gconvert.c:1767
+#: glib/gconvert.c:1775
 #, c-format
 msgid "The pathname “%s” is not an absolute path"
 msgstr ""
 
 #. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:220
+#: glib/gdatetime.c:214
 msgctxt "GDateTime"
 msgid "%a %b %e %H:%M:%S %Y"
 msgstr "%a %d %b %Y %T"
 
 #. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:223
+#: glib/gdatetime.c:217
 msgctxt "GDateTime"
 msgid "%m/%d/%y"
 msgstr "%d.%m.%Y"
 
 #. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:226
+#: glib/gdatetime.c:220
 msgctxt "GDateTime"
 msgid "%H:%M:%S"
 msgstr "%T"
 
 #. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:229
+#: glib/gdatetime.c:223
 msgctxt "GDateTime"
 msgid "%I:%M:%S %p"
 msgstr "%I:%M:%S %p"
@@ -4135,62 +4085,62 @@ msgstr "%I:%M:%S %p"
 #. * non-European) there is no difference between the standalone and
 #. * complete date form.
 #.
-#: glib/gdatetime.c:268
+#: glib/gdatetime.c:262
 msgctxt "full month name"
 msgid "January"
 msgstr "Қаңтар"
 
-#: glib/gdatetime.c:270
+#: glib/gdatetime.c:264
 msgctxt "full month name"
 msgid "February"
 msgstr "Ақпан"
 
-#: glib/gdatetime.c:272
+#: glib/gdatetime.c:266
 msgctxt "full month name"
 msgid "March"
 msgstr "Наурыз"
 
-#: glib/gdatetime.c:274
+#: glib/gdatetime.c:268
 msgctxt "full month name"
 msgid "April"
 msgstr "Сәуір"
 
-#: glib/gdatetime.c:276
+#: glib/gdatetime.c:270
 msgctxt "full month name"
 msgid "May"
 msgstr "Мамыр"
 
-#: glib/gdatetime.c:278
+#: glib/gdatetime.c:272
 msgctxt "full month name"
 msgid "June"
 msgstr "Маусым"
 
-#: glib/gdatetime.c:280
+#: glib/gdatetime.c:274
 msgctxt "full month name"
 msgid "July"
 msgstr "Шілде"
 
-#: glib/gdatetime.c:282
+#: glib/gdatetime.c:276
 msgctxt "full month name"
 msgid "August"
 msgstr "Тамыз"
 
-#: glib/gdatetime.c:284
+#: glib/gdatetime.c:278
 msgctxt "full month name"
 msgid "September"
 msgstr "Қыркүйек"
 
-#: glib/gdatetime.c:286
+#: glib/gdatetime.c:280
 msgctxt "full month name"
 msgid "October"
 msgstr "Қазан"
 
-#: glib/gdatetime.c:288
+#: glib/gdatetime.c:282
 msgctxt "full month name"
 msgid "November"
 msgstr "Қараша"
 
-#: glib/gdatetime.c:290
+#: glib/gdatetime.c:284
 msgctxt "full month name"
 msgid "December"
 msgstr "Желтоқсан"
@@ -4212,132 +4162,132 @@ msgstr "Желтоқсан"
 #. * other platform.  Here are abbreviated month names in a form
 #. * appropriate when they are used standalone.
 #.
-#: glib/gdatetime.c:322
+#: glib/gdatetime.c:316
 msgctxt "abbreviated month name"
 msgid "Jan"
 msgstr "Қаң"
 
-#: glib/gdatetime.c:324
+#: glib/gdatetime.c:318
 msgctxt "abbreviated month name"
 msgid "Feb"
 msgstr "Ақп"
 
-#: glib/gdatetime.c:326
+#: glib/gdatetime.c:320
 msgctxt "abbreviated month name"
 msgid "Mar"
 msgstr "Нау"
 
-#: glib/gdatetime.c:328
+#: glib/gdatetime.c:322
 msgctxt "abbreviated month name"
 msgid "Apr"
 msgstr "Сәу"
 
-#: glib/gdatetime.c:330
+#: glib/gdatetime.c:324
 msgctxt "abbreviated month name"
 msgid "May"
 msgstr "Мам"
 
-#: glib/gdatetime.c:332
+#: glib/gdatetime.c:326
 msgctxt "abbreviated month name"
 msgid "Jun"
 msgstr "Мау"
 
-#: glib/gdatetime.c:334
+#: glib/gdatetime.c:328
 msgctxt "abbreviated month name"
 msgid "Jul"
 msgstr "Шіл"
 
-#: glib/gdatetime.c:336
+#: glib/gdatetime.c:330
 msgctxt "abbreviated month name"
 msgid "Aug"
 msgstr "Там"
 
-#: glib/gdatetime.c:338
+#: glib/gdatetime.c:332
 msgctxt "abbreviated month name"
 msgid "Sep"
 msgstr "Қыр"
 
-#: glib/gdatetime.c:340
+#: glib/gdatetime.c:334
 msgctxt "abbreviated month name"
 msgid "Oct"
 msgstr "Қаз"
 
-#: glib/gdatetime.c:342
+#: glib/gdatetime.c:336
 msgctxt "abbreviated month name"
 msgid "Nov"
 msgstr "Қар"
 
-#: glib/gdatetime.c:344
+#: glib/gdatetime.c:338
 msgctxt "abbreviated month name"
 msgid "Dec"
 msgstr "Жел"
 
-#: glib/gdatetime.c:359
+#: glib/gdatetime.c:353
 msgctxt "full weekday name"
 msgid "Monday"
 msgstr "Дүйсенбі"
 
-#: glib/gdatetime.c:361
+#: glib/gdatetime.c:355
 msgctxt "full weekday name"
 msgid "Tuesday"
 msgstr "Сейсенбі"
 
-#: glib/gdatetime.c:363
+#: glib/gdatetime.c:357
 msgctxt "full weekday name"
 msgid "Wednesday"
 msgstr "Сәрсенбі"
 
-#: glib/gdatetime.c:365
+#: glib/gdatetime.c:359
 msgctxt "full weekday name"
 msgid "Thursday"
 msgstr "Бейсенбі"
 
-#: glib/gdatetime.c:367
+#: glib/gdatetime.c:361
 msgctxt "full weekday name"
 msgid "Friday"
 msgstr "Жұма"
 
-#: glib/gdatetime.c:369
+#: glib/gdatetime.c:363
 msgctxt "full weekday name"
 msgid "Saturday"
 msgstr "Сенбі"
 
-#: glib/gdatetime.c:371
+#: glib/gdatetime.c:365
 msgctxt "full weekday name"
 msgid "Sunday"
 msgstr "Жексенбі"
 
-#: glib/gdatetime.c:386
+#: glib/gdatetime.c:380
 msgctxt "abbreviated weekday name"
 msgid "Mon"
 msgstr "Дс"
 
-#: glib/gdatetime.c:388
+#: glib/gdatetime.c:382
 msgctxt "abbreviated weekday name"
 msgid "Tue"
 msgstr "Сс"
 
-#: glib/gdatetime.c:390
+#: glib/gdatetime.c:384
 msgctxt "abbreviated weekday name"
 msgid "Wed"
 msgstr "Ср"
 
-#: glib/gdatetime.c:392
+#: glib/gdatetime.c:386
 msgctxt "abbreviated weekday name"
 msgid "Thu"
 msgstr "Бс"
 
-#: glib/gdatetime.c:394
+#: glib/gdatetime.c:388
 msgctxt "abbreviated weekday name"
 msgid "Fri"
 msgstr "Жм"
 
-#: glib/gdatetime.c:396
+#: glib/gdatetime.c:390
 msgctxt "abbreviated weekday name"
 msgid "Sat"
 msgstr "Сн"
 
-#: glib/gdatetime.c:398
+#: glib/gdatetime.c:392
 msgctxt "abbreviated weekday name"
 msgid "Sun"
 msgstr "Жк"
@@ -4359,62 +4309,62 @@ msgstr "Жк"
 #. * (western European, non-European) there is no difference between the
 #. * standalone and complete date form.
 #.
-#: glib/gdatetime.c:462
+#: glib/gdatetime.c:456
 msgctxt "full month name with day"
 msgid "January"
 msgstr "Қаңтар"
 
-#: glib/gdatetime.c:464
+#: glib/gdatetime.c:458
 msgctxt "full month name with day"
 msgid "February"
 msgstr "Ақпан"
 
-#: glib/gdatetime.c:466
+#: glib/gdatetime.c:460
 msgctxt "full month name with day"
 msgid "March"
 msgstr "Наурыз"
 
-#: glib/gdatetime.c:468
+#: glib/gdatetime.c:462
 msgctxt "full month name with day"
 msgid "April"
 msgstr "Сәуір"
 
-#: glib/gdatetime.c:470
+#: glib/gdatetime.c:464
 msgctxt "full month name with day"
 msgid "May"
 msgstr "Мамыр"
 
-#: glib/gdatetime.c:472
+#: glib/gdatetime.c:466
 msgctxt "full month name with day"
 msgid "June"
 msgstr "Маусым"
 
-#: glib/gdatetime.c:474
+#: glib/gdatetime.c:468
 msgctxt "full month name with day"
 msgid "July"
 msgstr "Шілде"
 
-#: glib/gdatetime.c:476
+#: glib/gdatetime.c:470
 msgctxt "full month name with day"
 msgid "August"
 msgstr "Тамыз"
 
-#: glib/gdatetime.c:478
+#: glib/gdatetime.c:472
 msgctxt "full month name with day"
 msgid "September"
 msgstr "Қыркүйек"
 
-#: glib/gdatetime.c:480
+#: glib/gdatetime.c:474
 msgctxt "full month name with day"
 msgid "October"
 msgstr "Қазан"
 
-#: glib/gdatetime.c:482
+#: glib/gdatetime.c:476
 msgctxt "full month name with day"
 msgid "November"
 msgstr "Қараша"
 
-#: glib/gdatetime.c:484
+#: glib/gdatetime.c:478
 msgctxt "full month name with day"
 msgid "December"
 msgstr "Желтоқсан"
@@ -4436,74 +4386,74 @@ msgstr "Желтоқсан"
 #. * month names almost ready to copy and paste here.  In other systems
 #. * due to a bug the result is incorrect in some languages.
 #.
-#: glib/gdatetime.c:549
+#: glib/gdatetime.c:543
 msgctxt "abbreviated month name with day"
 msgid "Jan"
 msgstr "Қаң"
 
-#: glib/gdatetime.c:551
+#: glib/gdatetime.c:545
 msgctxt "abbreviated month name with day"
 msgid "Feb"
 msgstr "Ақп"
 
-#: glib/gdatetime.c:553
+#: glib/gdatetime.c:547
 msgctxt "abbreviated month name with day"
 msgid "Mar"
 msgstr "Нау"
 
-#: glib/gdatetime.c:555
+#: glib/gdatetime.c:549
 msgctxt "abbreviated month name with day"
 msgid "Apr"
 msgstr "Сәу"
 
-#: glib/gdatetime.c:557
+#: glib/gdatetime.c:551
 msgctxt "abbreviated month name with day"
 msgid "May"
 msgstr "Мам"
 
-#: glib/gdatetime.c:559
+#: glib/gdatetime.c:553
 msgctxt "abbreviated month name with day"
 msgid "Jun"
 msgstr "Мау"
 
-#: glib/gdatetime.c:561
+#: glib/gdatetime.c:555
 msgctxt "abbreviated month name with day"
 msgid "Jul"
 msgstr "Шіл"
 
-#: glib/gdatetime.c:563
+#: glib/gdatetime.c:557
 msgctxt "abbreviated month name with day"
 msgid "Aug"
 msgstr "Там"
 
-#: glib/gdatetime.c:565
+#: glib/gdatetime.c:559
 msgctxt "abbreviated month name with day"
 msgid "Sep"
 msgstr "Қыр"
 
-#: glib/gdatetime.c:567
+#: glib/gdatetime.c:561
 msgctxt "abbreviated month name with day"
 msgid "Oct"
 msgstr "Қаз"
 
-#: glib/gdatetime.c:569
+#: glib/gdatetime.c:563
 msgctxt "abbreviated month name with day"
 msgid "Nov"
 msgstr "Қар"
 
-#: glib/gdatetime.c:571
+#: glib/gdatetime.c:565
 msgctxt "abbreviated month name with day"
 msgid "Dec"
 msgstr "Жел"
 
 #. Translators: 'before midday' indicator
-#: glib/gdatetime.c:588
+#: glib/gdatetime.c:582
 msgctxt "GDateTime"
 msgid "AM"
 msgstr "AM"
 
 #. Translators: 'after midday' indicator
-#: glib/gdatetime.c:591
+#: glib/gdatetime.c:585
 msgctxt "GDateTime"
 msgid "PM"
 msgstr "PM"
@@ -4513,100 +4463,100 @@ msgstr "PM"
 msgid "Error opening directory “%s”: %s"
 msgstr "\"%s\" бумасын ашу қатесі: %s"
 
-#: glib/gfileutils.c:733 glib/gfileutils.c:825
+#: glib/gfileutils.c:716 glib/gfileutils.c:808
 #, c-format
 msgid "Could not allocate %lu byte to read file “%s”"
 msgid_plural "Could not allocate %lu bytes to read file “%s”"
 msgstr[0] ""
 
-#: glib/gfileutils.c:750
+#: glib/gfileutils.c:733
 #, c-format
 msgid "Error reading file “%s”: %s"
 msgstr "\"%s\" файлын оқу қатесі: %s"
 
-#: glib/gfileutils.c:786
+#: glib/gfileutils.c:769
 #, c-format
 msgid "File “%s” is too large"
 msgstr "\"%s\" файлы тым үлкен"
 
-#: glib/gfileutils.c:850
+#: glib/gfileutils.c:833
 #, c-format
 msgid "Failed to read from file “%s”: %s"
 msgstr "\"%s\" файлынан оқу қатесі: %s"
 
-#: glib/gfileutils.c:898 glib/gfileutils.c:970
+#: glib/gfileutils.c:881 glib/gfileutils.c:953
 #, c-format
 msgid "Failed to open file “%s”: %s"
 msgstr "\"%s\" файлын ашу қатесі: %s"
 
-#: glib/gfileutils.c:910
+#: glib/gfileutils.c:893
 #, c-format
 msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:940
+#: glib/gfileutils.c:923
 #, c-format
 msgid "Failed to open file “%s”: fdopen() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:1039
+#: glib/gfileutils.c:1022
 #, c-format
 msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:1074 glib/gfileutils.c:1592
+#: glib/gfileutils.c:1057 glib/gfileutils.c:1575
 #, c-format
 msgid "Failed to create file “%s”: %s"
 msgstr "\"%s\" файлын жасау сәтсіз: %s"
 
-#: glib/gfileutils.c:1101
+#: glib/gfileutils.c:1084
 #, c-format
 msgid "Failed to write file “%s”: write() failed: %s"
 msgstr "\"%s\" файлын жазу сәтсіз: write() сәтсіз аяқталды: %s"
 
-#: glib/gfileutils.c:1144
+#: glib/gfileutils.c:1127
 #, c-format
 msgid "Failed to write file “%s”: fsync() failed: %s"
 msgstr "\"%s\" файлын жазу сәтсіз: fsync() сәтсіз аяқталды: %s"
 
-#: glib/gfileutils.c:1279
+#: glib/gfileutils.c:1262
 #, c-format
 msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:1558
+#: glib/gfileutils.c:1541
 #, c-format
 msgid "Template “%s” invalid, should not contain a “%s”"
 msgstr ""
 
-#: glib/gfileutils.c:1571
+#: glib/gfileutils.c:1554
 #, c-format
 msgid "Template “%s” doesn’t contain XXXXXX"
 msgstr ""
 
-#: glib/gfileutils.c:2129 glib/gfileutils.c:2157
+#: glib/gfileutils.c:2116
 #, c-format
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr ""
 
-#: glib/giochannel.c:1396
+#: glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr ""
 
-#: glib/giochannel.c:1749
+#: glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr ""
 
-#: glib/giochannel.c:1796 glib/giochannel.c:2054 glib/giochannel.c:2141
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr ""
 
-#: glib/giochannel.c:1877 glib/giochannel.c:1954
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr ""
 
-#: glib/giochannel.c:1940
+#: glib/giochannel.c:1925
 msgid "Can’t do a raw read in g_io_channel_read_to_end"
 msgstr ""
 
@@ -4644,8 +4594,8 @@ msgid "Key file contains unsupported encoding “%s”"
 msgstr ""
 
 #: glib/gkeyfile.c:1650 glib/gkeyfile.c:1823 glib/gkeyfile.c:3276
-#: glib/gkeyfile.c:3340 glib/gkeyfile.c:3470 glib/gkeyfile.c:3602
-#: glib/gkeyfile.c:3748 glib/gkeyfile.c:3977 glib/gkeyfile.c:4044
+#: glib/gkeyfile.c:3339 glib/gkeyfile.c:3469 glib/gkeyfile.c:3601
+#: glib/gkeyfile.c:3747 glib/gkeyfile.c:3976 glib/gkeyfile.c:4043
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr ""
@@ -4678,31 +4628,31 @@ msgstr ""
 msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
 msgstr ""
 
-#: glib/gkeyfile.c:4284
+#: glib/gkeyfile.c:4283
 msgid "Key file contains escape character at end of line"
 msgstr ""
 
-#: glib/gkeyfile.c:4306
+#: glib/gkeyfile.c:4305
 #, c-format
 msgid "Key file contains invalid escape sequence “%s”"
 msgstr ""
 
-#: glib/gkeyfile.c:4450
+#: glib/gkeyfile.c:4449
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr ""
 
-#: glib/gkeyfile.c:4464
+#: glib/gkeyfile.c:4463
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr ""
 
-#: glib/gkeyfile.c:4497
+#: glib/gkeyfile.c:4496
 #, c-format
 msgid "Value “%s” cannot be interpreted as a float number."
 msgstr ""
 
-#: glib/gkeyfile.c:4536
+#: glib/gkeyfile.c:4535
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr ""
@@ -4782,37 +4732,31 @@ msgid ""
 "character without intending to start an entity — escape ampersand as &amp;"
 msgstr ""
 
-#: glib/gmarkup.c:1193
+#: glib/gmarkup.c:1187
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr ""
 
-#: glib/gmarkup.c:1233
+#: glib/gmarkup.c:1227
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
 "element name"
 msgstr ""
 
-#: glib/gmarkup.c:1276
+#: glib/gmarkup.c:1270
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
 "“%s”"
 msgstr ""
 
-#: glib/gmarkup.c:1346
-#, c-format
-#| msgid "Invalid attribute type “%s”"
-msgid "Too many attributes in element “%s”"
-msgstr ""
-
-#: glib/gmarkup.c:1366
+#: glib/gmarkup.c:1352
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
 msgstr ""
 
-#: glib/gmarkup.c:1408
+#: glib/gmarkup.c:1394
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -4820,150 +4764,150 @@ msgid ""
 "character in an attribute name"
 msgstr ""
 
-#: glib/gmarkup.c:1453
+#: glib/gmarkup.c:1439
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
 "giving value for attribute “%s” of element “%s”"
 msgstr ""
 
-#: glib/gmarkup.c:1587
+#: glib/gmarkup.c:1573
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
 "begin an element name"
 msgstr ""
 
-#: glib/gmarkup.c:1625
+#: glib/gmarkup.c:1611
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
 "allowed character is “>”"
 msgstr ""
 
-#: glib/gmarkup.c:1637
+#: glib/gmarkup.c:1623
 #, c-format
 msgid "Element “%s” was closed, no element is currently open"
 msgstr ""
 
-#: glib/gmarkup.c:1646
+#: glib/gmarkup.c:1632
 #, c-format
 msgid "Element “%s” was closed, but the currently open element is “%s”"
 msgstr ""
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1785
 msgid "Document was empty or contained only whitespace"
 msgstr ""
 
-#: glib/gmarkup.c:1813
+#: glib/gmarkup.c:1799
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr ""
 
-#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
+#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
 "element opened"
 msgstr ""
 
-#: glib/gmarkup.c:1829
+#: glib/gmarkup.c:1815
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
 "the tag <%s/>"
 msgstr ""
 
-#: glib/gmarkup.c:1835
+#: glib/gmarkup.c:1821
 msgid "Document ended unexpectedly inside an element name"
 msgstr ""
 
-#: glib/gmarkup.c:1841
+#: glib/gmarkup.c:1827
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr ""
 
-#: glib/gmarkup.c:1846
+#: glib/gmarkup.c:1832
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr ""
 
-#: glib/gmarkup.c:1852
+#: glib/gmarkup.c:1838
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
 msgstr ""
 
-#: glib/gmarkup.c:1859
+#: glib/gmarkup.c:1845
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr ""
 
-#: glib/gmarkup.c:1876
+#: glib/gmarkup.c:1862
 #, c-format
 msgid "Document ended unexpectedly inside the close tag for element “%s”"
 msgstr ""
 
-#: glib/gmarkup.c:1880
+#: glib/gmarkup.c:1866
 msgid ""
 "Document ended unexpectedly inside the close tag for an unopened element"
 msgstr ""
 
-#: glib/gmarkup.c:1886
+#: glib/gmarkup.c:1872
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 
-#: glib/goption.c:868
+#: glib/goption.c:861
 msgid "[OPTION…]"
 msgstr "[ОПЦИЯ…]"
 
-#: glib/goption.c:984
+#: glib/goption.c:977
 msgid "Help Options:"
 msgstr "Көмек опциялары:"
 
-#: glib/goption.c:985
+#: glib/goption.c:978
 msgid "Show help options"
 msgstr "Көмек опцияларын көрсету"
 
-#: glib/goption.c:991
+#: glib/goption.c:984
 msgid "Show all help options"
 msgstr "Барлық көмек опцияларын көрсету"
 
-#: glib/goption.c:1054
+#: glib/goption.c:1047
 msgid "Application Options:"
 msgstr "Қолданба опциялары:"
 
-#: glib/goption.c:1056
+#: glib/goption.c:1049
 msgid "Options:"
 msgstr "Опциялар:"
 
-#: glib/goption.c:1120 glib/goption.c:1190
+#: glib/goption.c:1113 glib/goption.c:1183
 #, c-format
 msgid "Cannot parse integer value “%s” for %s"
 msgstr ""
 
-#: glib/goption.c:1130 glib/goption.c:1198
+#: glib/goption.c:1123 glib/goption.c:1191
 #, c-format
 msgid "Integer value “%s” for %s out of range"
 msgstr ""
 
-#: glib/goption.c:1155
+#: glib/goption.c:1148
 #, c-format
 msgid "Cannot parse double value “%s” for %s"
 msgstr ""
 
-#: glib/goption.c:1163
+#: glib/goption.c:1156
 #, c-format
 msgid "Double value “%s” for %s out of range"
 msgstr ""
 
-#: glib/goption.c:1455 glib/goption.c:1534
+#: glib/goption.c:1448 glib/goption.c:1527
 #, c-format
 msgid "Error parsing option %s"
 msgstr ""
 
-#: glib/goption.c:1565 glib/goption.c:1678
+#: glib/goption.c:1558 glib/goption.c:1671
 #, c-format
 msgid "Missing argument for %s"
 msgstr ""
 
-#: glib/goption.c:2189
+#: glib/goption.c:2132
 #, c-format
 msgid "Unknown option %s"
 msgstr "Белгісіз опция %s"
@@ -5360,77 +5304,77 @@ msgstr "Мәтін бос болды (немесе тек бос аралықт
 msgid "Failed to read data from child process (%s)"
 msgstr ""
 
-#: glib/gspawn.c:460
+#: glib/gspawn.c:463
 #, c-format
-msgid "Unexpected error in reading data from a child process (%s)"
+msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr ""
 
-#: glib/gspawn.c:545
+#: glib/gspawn.c:548
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1053 glib/gspawn-win32.c:1329
+#: glib/gspawn.c:1056 glib/gspawn-win32.c:1329
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr ""
 
-#: glib/gspawn.c:1061
+#: glib/gspawn.c:1064
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr ""
 
-#: glib/gspawn.c:1068
+#: glib/gspawn.c:1071
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr ""
 
-#: glib/gspawn.c:1075
+#: glib/gspawn.c:1078
 #, c-format
 msgid "Child process exited abnormally"
 msgstr ""
 
-#: glib/gspawn.c:1475 glib/gspawn-win32.c:350 glib/gspawn-win32.c:358
+#: glib/gspawn.c:1405 glib/gspawn-win32.c:350 glib/gspawn-win32.c:358
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1723
+#: glib/gspawn.c:1653
 #, c-format
 msgid "Failed to spawn child process “%s” (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1762
+#: glib/gspawn.c:1692
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1911 glib/gspawn-win32.c:381
+#: glib/gspawn.c:1841 glib/gspawn-win32.c:381
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "\"%s\" бумасына ауысу сәтсіз аяқталды (%s)"
 
-#: glib/gspawn.c:1921
+#: glib/gspawn.c:1851
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1931
+#: glib/gspawn.c:1861
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1940
+#: glib/gspawn.c:1870
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1948
+#: glib/gspawn.c:1878
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr ""
 
-#: glib/gspawn.c:1972
+#: glib/gspawn.c:1902
 #, c-format
 msgid "Failed to read enough data from child pid pipe (%s)"
 msgstr ""
@@ -5480,207 +5424,208 @@ msgid ""
 "process"
 msgstr ""
 
-#: glib/gstrfuncs.c:3309 glib/gstrfuncs.c:3411
+#: glib/gstrfuncs.c:3286 glib/gstrfuncs.c:3388
 msgid "Empty string is not a number"
 msgstr ""
 
-#: glib/gstrfuncs.c:3333
+#: glib/gstrfuncs.c:3310
 #, c-format
 msgid "“%s” is not a signed number"
 msgstr "\"%s\" таңбасы бар сан емес"
 
-#: glib/gstrfuncs.c:3343 glib/gstrfuncs.c:3447
+#: glib/gstrfuncs.c:3320 glib/gstrfuncs.c:3424
 #, c-format
 msgid "Number “%s” is out of bounds [%s, %s]"
 msgstr ""
 
-#: glib/gstrfuncs.c:3437
+#: glib/gstrfuncs.c:3414
 #, c-format
 msgid "“%s” is not an unsigned number"
 msgstr "\"%s\" таңбасы жоқ сан емес"
 
-#: glib/gutf8.c:817
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Жадыны бөлу сәтсіз"
 
-#: glib/gutf8.c:950
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr ""
 
-#: glib/gutf8.c:1051 glib/gutf8.c:1060 glib/gutf8.c:1190 glib/gutf8.c:1199
-#: glib/gutf8.c:1338 glib/gutf8.c:1435
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr ""
 
-#: glib/gutf8.c:1349 glib/gutf8.c:1446
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr ""
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2756
+#: glib/gutils.c:2339
 #, c-format
+#| msgid "%.1f kB"
 msgid "%.1f kB"
 msgstr "%.1f КБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2758
+#: glib/gutils.c:2341
 #, c-format
 msgid "%.1f MB"
 msgstr "%.1f МБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2760
+#: glib/gutils.c:2343
 #, c-format
 msgid "%.1f GB"
 msgstr "%.1f ГБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2762
+#: glib/gutils.c:2345
 #, c-format
 msgid "%.1f TB"
 msgstr "%.1f ТБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2764
+#: glib/gutils.c:2347
 #, c-format
 msgid "%.1f PB"
 msgstr "%.1f ПБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2766
+#: glib/gutils.c:2349
 #, c-format
 msgid "%.1f EB"
 msgstr "%.1f ЭБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2770
+#: glib/gutils.c:2353
 #, c-format
 msgid "%.1f KiB"
 msgstr "%.1f КиБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2772
+#: glib/gutils.c:2355
 #, c-format
 msgid "%.1f MiB"
 msgstr "%.1f МиБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2774
+#: glib/gutils.c:2357
 #, c-format
 msgid "%.1f GiB"
 msgstr "%.1f ГиБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2776
+#: glib/gutils.c:2359
 #, c-format
 msgid "%.1f TiB"
 msgstr "%.1f ТиБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2778
+#: glib/gutils.c:2361
 #, c-format
 msgid "%.1f PiB"
 msgstr "%.1f ПиБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2780
+#: glib/gutils.c:2363
 #, c-format
 msgid "%.1f EiB"
 msgstr "%.1f ЭиБ"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2784
+#: glib/gutils.c:2367
 #, c-format
 msgid "%.1f kb"
 msgstr "%.1f кб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2786
+#: glib/gutils.c:2369
 #, c-format
 msgid "%.1f Mb"
 msgstr "%.1f Мб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2788
+#: glib/gutils.c:2371
 #, c-format
 msgid "%.1f Gb"
 msgstr "%.1f Гб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2790
+#: glib/gutils.c:2373
 #, c-format
 msgid "%.1f Tb"
 msgstr "%.1f Тб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2792
+#: glib/gutils.c:2375
 #, c-format
 msgid "%.1f Pb"
 msgstr "%.1f Пб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2794
+#: glib/gutils.c:2377
 #, c-format
 msgid "%.1f Eb"
 msgstr "%.1f Эб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2798
+#: glib/gutils.c:2381
 #, c-format
 msgid "%.1f Kib"
 msgstr "%.1f Киб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2800
+#: glib/gutils.c:2383
 #, c-format
 msgid "%.1f Mib"
 msgstr "%.1f Миб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2802
+#: glib/gutils.c:2385
 #, c-format
 msgid "%.1f Gib"
 msgstr "%.1f Гиб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2804
+#: glib/gutils.c:2387
 #, c-format
 msgid "%.1f Tib"
 msgstr "%.1f Тиб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2806
+#: glib/gutils.c:2389
 #, c-format
 msgid "%.1f Pib"
 msgstr "%.1f Пиб"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2808
+#: glib/gutils.c:2391
 #, c-format
 msgid "%.1f Eib"
 msgstr "%.1f Эиб"
 
-#: glib/gutils.c:2842 glib/gutils.c:2959
+#: glib/gutils.c:2425 glib/gutils.c:2551
 #, c-format
 msgid "%u byte"
 msgid_plural "%u bytes"
 msgstr[0] "%u байт"
 
-#: glib/gutils.c:2846
+#: glib/gutils.c:2429
 #, c-format
 msgid "%u bit"
 msgid_plural "%u bits"
 msgstr[0] "%u бит"
 
 #. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2913
+#: glib/gutils.c:2496
 #, c-format
 msgid "%s byte"
 msgid_plural "%s bytes"
 msgstr[0] "%s байт"
 
 #. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2918
+#: glib/gutils.c:2501
 #, c-format
 msgid "%s bit"
 msgid_plural "%s bits"
@@ -5691,32 +5636,32 @@ msgstr[0] "%s бит"
 #. * compatibility.  Users will not see this string unless a program is using this deprecated function.
 #. * Please translate as literally as possible.
 #.
-#: glib/gutils.c:2972
+#: glib/gutils.c:2564
 #, c-format
 msgid "%.1f KB"
 msgstr "%.1f КБ"
 
-#: glib/gutils.c:2977
+#: glib/gutils.c:2569
 #, c-format
 msgid "%.1f MB"
 msgstr "%.1f МБ"
 
-#: glib/gutils.c:2982
+#: glib/gutils.c:2574
 #, c-format
 msgid "%.1f GB"
 msgstr "%.1f ГБ"
 
-#: glib/gutils.c:2987
+#: glib/gutils.c:2579
 #, c-format
 msgid "%.1f TB"
 msgstr "%.1f ТБ"
 
-#: glib/gutils.c:2992
+#: glib/gutils.c:2584
 #, c-format
 msgid "%.1f PB"
 msgstr "%.1f ПБ"
 
-#: glib/gutils.c:2997
+#: glib/gutils.c:2589
 #, c-format
 msgid "%.1f EB"
 msgstr "%.1f ЭБ"
@@ -5724,6 +5669,9 @@ msgstr "%.1f ЭБ"
 #~ msgid "[ARGS...]"
 #~ msgstr "[АРГУМЕНТТЕР...]"
 
+#~ msgid "No files given"
+#~ msgstr "Файлдар көрсетілмеген"
+
 #~ msgid "Error mounting location: %s\n"
 #~ msgstr "Орналасуды тіркеу қатесі: %s\n"
 
index 7116169..da63941 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -2418,7 +2418,7 @@ msgstr "Neteisinga skaitinė vertė"
 #: gio/glib-compile-schemas.c:111
 #, c-format
 msgid "<value nick='%s'/> already specified"
-msgstr "<value nick='%s'> jau nurodytas"
+msgstr "<value nick='%s'/> jau nurodytas"
 
 #: gio/glib-compile-schemas.c:119
 #, c-format
@@ -2506,7 +2506,7 @@ msgstr "<choices> neleidžiamas „%s“ tipo raktams"
 #: gio/glib-compile-schemas.c:528
 #, c-format
 msgid "<choice value='%s'/> already given"
-msgstr "<choice value='%s'> jau nurodytas"
+msgstr "<choice value='%s'/> jau nurodytas"
 
 #: gio/glib-compile-schemas.c:543
 #, c-format
@@ -2541,7 +2541,7 @@ msgstr ""
 #: gio/glib-compile-schemas.c:594
 #, c-format
 msgid "<alias value='%s'/> already specified"
-msgstr "<alias value='%s'> jau nurodytas"
+msgstr "<alias value='%s'/> jau nurodytas"
 
 #: gio/glib-compile-schemas.c:604
 #, c-format
index 84fdd6f..28097b6 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -2375,7 +2375,7 @@ msgstr "Nederīga skaitļa vērtība"
 #: ../gio/glib-compile-schemas.c:114
 #, c-format
 msgid "<value nick='%s'/> already specified"
-msgstr "<value nick='%s'> jau norādīts"
+msgstr "<value nick='%s'/> jau norādīts"
 
 #: ../gio/glib-compile-schemas.c:122
 #, c-format
@@ -2452,7 +2452,7 @@ msgstr ""
 
 #: ../gio/glib-compile-schemas.c:501
 msgid "<choices> already specified for this key"
-msgstr "<child name='%s'> jau ir norādīts šai atslēgai"
+msgstr "<choices> jau ir norādīts šai atslēgai"
 
 #: ../gio/glib-compile-schemas.c:513
 #, c-format
@@ -2462,7 +2462,7 @@ msgstr "<choices> nav atļautas atslēgām ar tipu “%s”"
 #: ../gio/glib-compile-schemas.c:529
 #, c-format
 msgid "<choice value='%s'/> already given"
-msgstr "<child name='%s'> jau dots"
+msgstr "<choice value='%s'/> jau dots"
 
 #: ../gio/glib-compile-schemas.c:544
 #, c-format
index 0d10858..df15e60 100644 (file)
--- a/po/ms.po
+++ b/po/ms.po
@@ -2408,7 +2408,7 @@ msgstr "Nilai angka tidak sah"
 #: gio/glib-compile-schemas.c:111
 #, c-format
 msgid "<value nick='%s'/> already specified"
-msgstr "<value nick='%s'> sudah dinyatakan"
+msgstr "<value nick='%s'/> sudah dinyatakan"
 
 #: gio/glib-compile-schemas.c:119
 #, c-format
@@ -2535,7 +2535,7 @@ msgstr ""
 #: gio/glib-compile-schemas.c:594
 #, c-format
 msgid "<alias value='%s'/> already specified"
-msgstr "<alias value='%s'> sudah dinyatakan"
+msgstr "<alias value='%s'/> sudah dinyatakan"
 
 #: gio/glib-compile-schemas.c:604
 #, c-format
index ed6c855..e448ca7 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -2323,7 +2323,7 @@ msgstr "Ugyldig numerisk verdi"
 #: ../gio/glib-compile-schemas.c:114
 #, c-format
 msgid "<value nick='%s'/> already specified"
-msgstr "<value nick=«%s»/> er allerede spesifisert"
+msgstr "<value nick='%s'/> er allerede spesifisert"
 
 #: ../gio/glib-compile-schemas.c:122
 #, c-format
@@ -2409,7 +2409,7 @@ msgstr "<choices> ikke tillatt for nøkler av type «%s»"
 #: ../gio/glib-compile-schemas.c:529
 #, c-format
 msgid "<choice value='%s'/> already given"
-msgstr "<choice value='%s'> allerede oppgitt"
+msgstr "<choice value='%s'/> allerede oppgitt"
 
 #: ../gio/glib-compile-schemas.c:544
 #, c-format
@@ -2610,7 +2610,7 @@ msgstr ""
 #: ../gio/glib-compile-schemas.c:1257
 #, c-format
 msgid "<%s id='%s'> already specified"
-msgstr "<%s id=«%s»> er allerede spesifisert"
+msgstr "<%s id='%s'> er allerede spesifisert"
 
 #: ../gio/glib-compile-schemas.c:1407 ../gio/glib-compile-schemas.c:1423
 #, c-format
index 1a6f397..db70634 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
 # Pedro Albuquerque <palbuquerque73@gmail.com>, 2015.
 # Sérgio Cardeira <cardeira.sergio@gmail.com>, 2016.
 # Tiago Santos <tiagofsantos81@sapo.pt>, 2014 - 2016.
-# Juliano de Souza Camargo <julianosc@pm.me>, 2020.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: 3.12\n"
-"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-06-09 04:01+0000\n"
-"PO-Revision-Date: 2020-09-21 15:03+0100\n"
-"Last-Translator: Juliano de Souza Camargo <julianosc@pm.me>\n"
-"Language-Team: Portuguese <>\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=glib&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2016-09-03 14:08+0000\n"
+"PO-Revision-Date: 2016-09-07 06:54+0100\n"
+"Last-Translator: Tiago Santos <tiagofsantos81@sapo.pt>\n"
+"Language-Team: Português\n"
 "Language: pt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Generator: Gtranslator 3.38.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.8.7.1\n"
 
-#: gio/gapplication.c:500
+#: ../gio/gapplication.c:493
 msgid "GApplication options"
 msgstr "Opções GApplication"
 
-#: gio/gapplication.c:500
+#: ../gio/gapplication.c:493
 msgid "Show GApplication options"
 msgstr "Mostrar opções GApplication"
 
-#: gio/gapplication.c:545
+#: ../gio/gapplication.c:538
 msgid "Enter GApplication service mode (use from D-Bus service files)"
 msgstr ""
 "Entrar em modo de serviço GApplication (utilizar a partir de ficheiros D-Bus "
 "de serviço)"
 
-#: gio/gapplication.c:557
-#| msgid "Override the application's ID"
-msgid "Override the application’s ID"
+#: ../gio/gapplication.c:550
+msgid "Override the application's ID"
 msgstr "Ignorar o ID da aplicação"
 
-#: gio/gapplication.c:569
-msgid "Replace the running instance"
-msgstr "Substituir a instância em execução"
-
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:493 gio/gsettings-tool.c:567
+#: ../gio/gapplication-tool.c:45 ../gio/gapplication-tool.c:46
+#: ../gio/gio-tool.c:209 ../gio/gresource-tool.c:488
+#: ../gio/gsettings-tool.c:520
 msgid "Print help"
 msgstr "Imprimir a ajuda"
 
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:494 gio/gresource-tool.c:562
+#: ../gio/gapplication-tool.c:47 ../gio/gresource-tool.c:489
+#: ../gio/gresource-tool.c:557
 msgid "[COMMAND]"
 msgstr "[COMANDO]"
 
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: ../gio/gapplication-tool.c:49 ../gio/gio-tool.c:210
 msgid "Print version"
 msgstr "Imprimir versão"
 
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:573
+#: ../gio/gapplication-tool.c:50 ../gio/gsettings-tool.c:526
 msgid "Print version information and exit"
 msgstr "Imprimir informação de versão e sair"
 
-#: gio/gapplication-tool.c:52
+#: ../gio/gapplication-tool.c:52
 msgid "List applications"
 msgstr "Listar aplicações"
 
-#: gio/gapplication-tool.c:53
+#: ../gio/gapplication-tool.c:53
 msgid "List the installed D-Bus activatable applications (by .desktop files)"
 msgstr ""
 "Listar as aplicações D-Bus ativáveis instaladas (por ficheiros .desktop)"
 
-#: gio/gapplication-tool.c:55
+#: ../gio/gapplication-tool.c:55
 msgid "Launch an application"
 msgstr "Iniciar uma aplicação"
 
-#: gio/gapplication-tool.c:56
+#: ../gio/gapplication-tool.c:56
 msgid "Launch the application (with optional files to open)"
 msgstr "Iniciar a aplicação (com ficheiros opcionais a abrir)"
 
-#: gio/gapplication-tool.c:57
-#| msgid "APPID [FILE...]"
-msgid "APPID [FILE…]"
+#: ../gio/gapplication-tool.c:57
+msgid "APPID [FILE...]"
 msgstr "IDAPLICAÇÃO [FICHEIRO...]"
 
-#: gio/gapplication-tool.c:59
+#: ../gio/gapplication-tool.c:59
 msgid "Activate an action"
 msgstr "Ativar uma ação"
 
-#: gio/gapplication-tool.c:60
+#: ../gio/gapplication-tool.c:60
 msgid "Invoke an action on the application"
 msgstr "Invocar uma ação na aplicação"
 
-#: gio/gapplication-tool.c:61
+#: ../gio/gapplication-tool.c:61
 msgid "APPID ACTION [PARAMETER]"
 msgstr "IDAPLICAÇÃO AÇÃO [PARÂMETRO]"
 
-#: gio/gapplication-tool.c:63
+#: ../gio/gapplication-tool.c:63
 msgid "List available actions"
 msgstr "Listar ações disponíveis"
 
-#: gio/gapplication-tool.c:64
+#: ../gio/gapplication-tool.c:64
 msgid "List static actions for an application (from .desktop file)"
 msgstr "Listar ações estáticas para uma aplicação (de ficheiro .desktop)"
 
-#: gio/gapplication-tool.c:65 gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:65 ../gio/gapplication-tool.c:71
 msgid "APPID"
 msgstr "IDAPLICAÇÃO"
 
-#: gio/gapplication-tool.c:70 gio/gapplication-tool.c:133 gio/gdbus-tool.c:102
-#: gio/gio-tool.c:224
+#: ../gio/gapplication-tool.c:70 ../gio/gapplication-tool.c:133
+#: ../gio/gdbus-tool.c:90 ../gio/gio-tool.c:206
 msgid "COMMAND"
 msgstr "COMANDO"
 
-#: gio/gapplication-tool.c:70
+#: ../gio/gapplication-tool.c:70
 msgid "The command to print detailed help for"
 msgstr "O comando para imprimir ajuda detalhada para"
 
-#: gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:71
 msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
 msgstr ""
 "Identificador de aplicação em formato D-Bus (por ex: org.exemplo."
 "visualizador)"
 
-#: gio/gapplication-tool.c:72 gio/glib-compile-resources.c:738
-#: gio/glib-compile-resources.c:744 gio/glib-compile-resources.c:772
-#: gio/gresource-tool.c:500 gio/gresource-tool.c:566
+#: ../gio/gapplication-tool.c:72 ../gio/glib-compile-resources.c:620
+#: ../gio/glib-compile-resources.c:626 ../gio/glib-compile-resources.c:652
+#: ../gio/gresource-tool.c:495 ../gio/gresource-tool.c:561
 msgid "FILE"
 msgstr "FICHEIRO"
 
-#: gio/gapplication-tool.c:72
+#: ../gio/gapplication-tool.c:72
 msgid "Optional relative or absolute filenames, or URIs to open"
 msgstr "Nomes de ficheiro relativos ou absolutos opcionais, ou URIs a abrir"
 
-#: gio/gapplication-tool.c:73
+#: ../gio/gapplication-tool.c:73
 msgid "ACTION"
 msgstr "AÇÃO"
 
-#: gio/gapplication-tool.c:73
+#: ../gio/gapplication-tool.c:73
 msgid "The action name to invoke"
 msgstr "O nome da ação a invocar"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 msgid "PARAMETER"
 msgstr "PARÂMETRO"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 msgid "Optional parameter to the action invocation, in GVariant format"
 msgstr "Parâmetro opcional para a invocação da ação, em formato GVariant"
 
-#: gio/gapplication-tool.c:96 gio/gresource-tool.c:531 gio/gsettings-tool.c:659
+#: ../gio/gapplication-tool.c:96 ../gio/gresource-tool.c:526
+#: ../gio/gsettings-tool.c:612
 #, c-format
 msgid ""
 "Unknown command %s\n"
@@ -158,39 +155,35 @@ msgstr ""
 "Comando %s desconhecido\n"
 "\n"
 
-#: gio/gapplication-tool.c:101
+#: ../gio/gapplication-tool.c:101
 msgid "Usage:\n"
 msgstr "Utilização:\n"
 
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:556
-#: gio/gsettings-tool.c:694
+#: ../gio/gapplication-tool.c:114 ../gio/gresource-tool.c:551
+#: ../gio/gsettings-tool.c:647
 msgid "Arguments:\n"
 msgstr "Argumentos:\n"
 
-#: gio/gapplication-tool.c:133 gio/gio-tool.c:224
-#| msgid "[ARGS...]"
-msgid "[ARGS…]"
+#: ../gio/gapplication-tool.c:133 ../gio/gio-tool.c:206
+msgid "[ARGS...]"
 msgstr "[ARGUMENTOS...]"
 
-#: gio/gapplication-tool.c:134
+#: ../gio/gapplication-tool.c:134
 #, c-format
 msgid "Commands:\n"
 msgstr "Comandos:\n"
 
 #. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:146
+#: ../gio/gapplication-tool.c:146
 #, c-format
-#| msgid ""
-#| "Use '%s help COMMAND' to get detailed help.\n"
-#| "\n"
 msgid ""
-"Use “%s help COMMAND” to get detailed help.\n"
+"Use '%s help COMMAND' to get detailed help.\n"
 "\n"
 msgstr ""
-"Utilizar “%s help COMANDO” para obter ajuda detalhada.\n"
+"Utilizar \"%s help COMANDO\" para obter ajuda detalhada.\n"
 "\n"
 
-#: gio/gapplication-tool.c:165
+#: ../gio/gapplication-tool.c:165
 #, c-format
 msgid ""
 "%s command requires an application id to directly follow\n"
@@ -199,70 +192,66 @@ msgstr ""
 "O comando %s tem de ser imediatamente seguido de um id de aplicação\n"
 "\n"
 
-#: gio/gapplication-tool.c:171
+#: ../gio/gapplication-tool.c:171
 #, c-format
-#| msgid "invalid application id: '%s'\n"
-msgid "invalid application id: “%s”\n"
-msgstr "id de aplicação inválido: “%s”\n"
+msgid "invalid application id: '%s'\n"
+msgstr "id de aplicação inválido: \"%s\"\n"
 
 #. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:182
+#: ../gio/gapplication-tool.c:182
 #, c-format
-#| msgid ""
-#| "'%s' takes no arguments\n"
-#| "\n"
 msgid ""
-"“%s” takes no arguments\n"
+"'%s' takes no arguments\n"
 "\n"
 msgstr ""
-"“%s” não recebe argumentos\n"
+"\"%s\" não recebe argumentos\n"
 "\n"
 
-#: gio/gapplication-tool.c:266
+#: ../gio/gapplication-tool.c:266
 #, c-format
 msgid "unable to connect to D-Bus: %s\n"
 msgstr "impossível ligar ao D-Bus: %s\n"
 
-#: gio/gapplication-tool.c:286
+#: ../gio/gapplication-tool.c:286
 #, c-format
 msgid "error sending %s message to application: %s\n"
 msgstr "erro ao enviar a mensagem %s para a aplicação: %s\n"
 
-#: gio/gapplication-tool.c:317
+#: ../gio/gapplication-tool.c:317
+#, c-format
 msgid "action name must be given after application id\n"
 msgstr "nome da ação tem de ser especificado após o id de aplicação\n"
 
-#: gio/gapplication-tool.c:325
+#: ../gio/gapplication-tool.c:325
 #, c-format
-#| msgid ""
-#| "invalid action name: '%s'\n"
-#| "action names must consist of only alphanumerics, '-' and '.'\n"
 msgid ""
-"invalid action name: “%s”\n"
-"action names must consist of only alphanumerics, “-” and “.”\n"
+"invalid action name: '%s'\n"
+"action names must consist of only alphanumerics, '-' and '.'\n"
 msgstr ""
-"nome de ação inválido: “%s”\n"
-"nomes de ações têm de consistir apenas de alfanuméricos, “-” e “.”\n"
+"nome de ação inválido: \"%s\"\n"
+"nomes de ações têm de consistir apenas de alfanuméricos, \"-\" e \".\"\n"
 
-#: gio/gapplication-tool.c:344
+#: ../gio/gapplication-tool.c:344
 #, c-format
 msgid "error parsing action parameter: %s\n"
 msgstr "erro ao processar o parâmetro de ação: %s\n"
 
-#: gio/gapplication-tool.c:356
+#: ../gio/gapplication-tool.c:356
+#, c-format
 msgid "actions accept a maximum of one parameter\n"
 msgstr "ação aceita no máximo um parâmetro\n"
 
-#: gio/gapplication-tool.c:411
+#: ../gio/gapplication-tool.c:411
+#, c-format
 msgid "list-actions command takes only the application id"
 msgstr "o comando list-actions apenas aceita o id de aplicação"
 
-#: gio/gapplication-tool.c:421
+#: ../gio/gapplication-tool.c:421
 #, c-format
 msgid "unable to find desktop file for application %s\n"
 msgstr "impossível encontrar o ficheiro desktop da aplicação %s\n"
 
-#: gio/gapplication-tool.c:466
+#: ../gio/gapplication-tool.c:466
 #, c-format
 msgid ""
 "unrecognised command: %s\n"
@@ -271,324 +260,292 @@ msgstr ""
 "comando desconhecido: %s\n"
 "\n"
 
-#: gio/gbufferedinputstream.c:420 gio/gbufferedinputstream.c:498
-#: gio/ginputstream.c:179 gio/ginputstream.c:379 gio/ginputstream.c:617
-#: gio/ginputstream.c:1019 gio/goutputstream.c:223 gio/goutputstream.c:1049
-#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:277
+#: ../gio/gbufferedinputstream.c:420 ../gio/gbufferedinputstream.c:498
+#: ../gio/ginputstream.c:179 ../gio/ginputstream.c:379
+#: ../gio/ginputstream.c:617 ../gio/ginputstream.c:1019
+#: ../gio/goutputstream.c:203 ../gio/goutputstream.c:834
+#: ../gio/gpollableinputstream.c:205 ../gio/gpollableoutputstream.c:206
 #, c-format
 msgid "Too large count value passed to %s"
 msgstr "Valor de contagem demasiado grande passado para %s"
 
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: ../gio/gbufferedinputstream.c:891 ../gio/gbufferedoutputstream.c:575
+#: ../gio/gdataoutputstream.c:562
 msgid "Seek not supported on base stream"
 msgstr "Procura não é suportada no fluxo base"
 
-#: gio/gbufferedinputstream.c:937
+#: ../gio/gbufferedinputstream.c:937
 msgid "Cannot truncate GBufferedInputStream"
 msgstr "Impossível truncar um GBufferedInputStream"
 
-#: gio/gbufferedinputstream.c:982 gio/ginputstream.c:1208 gio/giostream.c:300
-#: gio/goutputstream.c:2198
+#: ../gio/gbufferedinputstream.c:982 ../gio/ginputstream.c:1208
+#: ../gio/giostream.c:300 ../gio/goutputstream.c:1660
 msgid "Stream is already closed"
 msgstr "O fluxo já se encontra fechado"
 
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: ../gio/gbufferedoutputstream.c:612 ../gio/gdataoutputstream.c:592
 msgid "Truncate not supported on base stream"
 msgstr "Truncar não é suportado no fluxo base"
 
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1862 gio/gdbusprivate.c:1411
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: ../gio/gcancellable.c:317 ../gio/gdbusconnection.c:1849
+#: ../gio/gdbusprivate.c:1377 ../gio/gsimpleasyncresult.c:870
+#: ../gio/gsimpleasyncresult.c:896
 #, c-format
 msgid "Operation was cancelled"
 msgstr "A operação foi cancelada"
 
-#: gio/gcharsetconverter.c:260
+#: ../gio/gcharsetconverter.c:260
 msgid "Invalid object, not initialized"
 msgstr "Objeto inválido, não inicializado"
 
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: ../gio/gcharsetconverter.c:281 ../gio/gcharsetconverter.c:309
 msgid "Incomplete multibyte sequence in input"
 msgstr "Sequência multibyte inválida na entrada"
 
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: ../gio/gcharsetconverter.c:315 ../gio/gcharsetconverter.c:324
 msgid "Not enough space in destination"
 msgstr "Espaço insuficiente no destino"
 
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:447 glib/gconvert.c:877
-#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2461
-#: glib/gutf8.c:875 glib/gutf8.c:1328
+#: ../gio/gcharsetconverter.c:342 ../gio/gdatainputstream.c:848
+#: ../gio/gdatainputstream.c:1257 ../glib/gconvert.c:438 ../glib/gconvert.c:845
+#: ../glib/giochannel.c:1556 ../glib/giochannel.c:1598
+#: ../glib/giochannel.c:2442 ../glib/gutf8.c:855 ../glib/gutf8.c:1308
 msgid "Invalid byte sequence in conversion input"
 msgstr "Sequência de bytes inválida na origem da conversão"
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:455 glib/gconvert.c:791
-#: glib/giochannel.c:1571 glib/giochannel.c:2473
+#: ../gio/gcharsetconverter.c:347 ../glib/gconvert.c:446 ../glib/gconvert.c:770
+#: ../glib/giochannel.c:1563 ../glib/giochannel.c:2454
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Erro durante a conversão: %s"
 
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1138
+#: ../gio/gcharsetconverter.c:444 ../gio/gsocket.c:1078
 msgid "Cancellable initialization not supported"
 msgstr "Não é suportada a inicialização cancelável"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:320 glib/giochannel.c:1392
+#: ../gio/gcharsetconverter.c:454 ../glib/gconvert.c:321
+#: ../glib/giochannel.c:1384
 #, c-format
-#| msgid "Conversion from character set '%s' to '%s' is not supported"
-msgid "Conversion from character set “%s” to “%s” is not supported"
-msgstr "Conversão do conjunto de caracteres “%s” para “%s” não é suportada"
+msgid "Conversion from character set '%s' to '%s' is not supported"
+msgstr "Conversão do conjunto de caracteres \"%s\" para \"%s\" não é suportada"
 
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:324
+#: ../gio/gcharsetconverter.c:458 ../glib/gconvert.c:325
 #, c-format
-#| msgid "Could not open converter from '%s' to '%s'"
-msgid "Could not open converter from “%s” to “%s”"
-msgstr "Impossível abrir conversor de “%s” para “%s”"
+msgid "Could not open converter from '%s' to '%s'"
+msgstr "Impossível abrir conversor de \"%s\" para \"%s\""
 
-#: gio/gcontenttype.c:452
+#: ../gio/gcontenttype.c:335
 #, c-format
 msgid "%s type"
 msgstr "Tipo %s"
 
-#: gio/gcontenttype-win32.c:192
+#: ../gio/gcontenttype-win32.c:160
 msgid "Unknown type"
 msgstr "Tipo desconhecido"
 
-#: gio/gcontenttype-win32.c:194
+#: ../gio/gcontenttype-win32.c:162
 #, c-format
 msgid "%s filetype"
 msgstr "Tipo de ficheiro %s"
 
-#: gio/gcredentials.c:289
-msgid "GCredentials contains invalid data"
-msgstr "GCredentials contém dados inválidos"
-
-#: gio/gcredentials.c:345 gio/gcredentials.c:609
+#: ../gio/gcredentials.c:312 ../gio/gcredentials.c:571
 msgid "GCredentials is not implemented on this OS"
 msgstr "GCredentials não está implementado neste SO"
 
-#: gio/gcredentials.c:503
+#: ../gio/gcredentials.c:467
 msgid "There is no GCredentials support for your platform"
 msgstr "Não existe suporte para GCredentials na sua plataforma"
 
-#: gio/gcredentials.c:552
+#: ../gio/gcredentials.c:513
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr "GCredentials não contém um ID de processo neste SO"
 
-#: gio/gcredentials.c:603
+#: ../gio/gcredentials.c:565
 msgid "Credentials spoofing is not possible on this OS"
 msgstr "Simular credenciais não é possível neste SO"
 
-#: gio/gdatainputstream.c:304
+#: ../gio/gdatainputstream.c:304
 msgid "Unexpected early end-of-stream"
 msgstr "Final precoce de fluxo inesperado"
 
-#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:232 gio/gdbusaddress.c:321
-#, c-format
-#| msgid "Unsupported key '%s' in address entry '%s'"
-msgid "Unsupported key “%s” in address entry “%s”"
-msgstr "Chave “%s” não suportada na entrada de endereço “%s”"
-
-#: gio/gdbusaddress.c:171
+#: ../gio/gdbusaddress.c:153 ../gio/gdbusaddress.c:241
+#: ../gio/gdbusaddress.c:322
 #, c-format
-#| msgid "Meaningless key/value pair combination in address entry '%s'"
-msgid "Meaningless key/value pair combination in address entry “%s”"
-msgstr "Combinação chave/valor sem sentido na entrada de endereço “%s”"
+msgid "Unsupported key '%s' in address entry '%s'"
+msgstr "Chave \"%s\" não suportada na entrada de endereço \"%s\""
 
-#: gio/gdbusaddress.c:180
+#: ../gio/gdbusaddress.c:180
 #, c-format
-#| msgid ""
-#| "Address '%s' is invalid (need exactly one of path, tmpdir or abstract "
-#| "keys)"
 msgid ""
-"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
-"keys)"
+"Address '%s' is invalid (need exactly one of path, tmpdir or abstract keys)"
 msgstr ""
-"Endereço “%s” é inválido (é necessário um de caminho, dir, tmpdir ou chaves "
+"Endereço \"%s\" é inválido (é necessário um de caminho, tmpdir ou chaves "
 "abstratas)"
 
-#: gio/gdbusaddress.c:247 gio/gdbusaddress.c:258 gio/gdbusaddress.c:273
-#: gio/gdbusaddress.c:336 gio/gdbusaddress.c:347
+#: ../gio/gdbusaddress.c:193
 #, c-format
-#| msgid "Error in address '%s' - the port attribute is malformed"
-msgid "Error in address “%s” — the “%s” attribute is malformed"
-msgstr "Erro no endereço “%s” - o atributo “%s” está mal formado"
+msgid "Meaningless key/value pair combination in address entry '%s'"
+msgstr "Combinação chave/valor sem sentido na entrada de endereço \"%s\""
 
-#: gio/gdbusaddress.c:417 gio/gdbusaddress.c:681
+#: ../gio/gdbusaddress.c:256 ../gio/gdbusaddress.c:337
 #, c-format
-#| msgid "Unknown or unsupported transport '%s' for address '%s'"
-msgid "Unknown or unsupported transport “%s” for address “%s”"
-msgstr "Transporte “%s” desconhecido ou não suportado para o endereço “%s”"
+msgid "Error in address '%s' - the port attribute is malformed"
+msgstr "Erro no endereço \"%s\" - o atributo port está mal formado"
 
-#: gio/gdbusaddress.c:461
+#: ../gio/gdbusaddress.c:267 ../gio/gdbusaddress.c:348
 #, c-format
-#| msgid "Address element '%s' does not contain a colon (:)"
-msgid "Address element “%s” does not contain a colon (:)"
-msgstr "Elemento “%s” de endereço não contém dois-pontos (:)"
+msgid "Error in address '%s' - the family attribute is malformed"
+msgstr "Erro no endereço \"%s\" - o atributo family está mal formado"
 
-#: gio/gdbusaddress.c:470
+#: ../gio/gdbusaddress.c:457
 #, c-format
-msgid "Transport name in address element “%s” must not be empty"
-msgstr "Nome do transporte no elemento “%s” endereço não pode ser vazio"
+msgid "Address element '%s' does not contain a colon (:)"
+msgstr "Elemento \"%s\" de endereço não contém dois-pontos (:)"
 
-#: gio/gdbusaddress.c:491
+#: ../gio/gdbusaddress.c:478
 #, c-format
-#| msgid ""
-#| "Key/Value pair %d, '%s', in address element '%s' does not contain an "
-#| "equal sign"
 msgid ""
-"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
+"Key/Value pair %d, '%s', in address element '%s' does not contain an equal "
 "sign"
 msgstr ""
-"Par chave/valor %d, “%s”, no elemento “%s” de endereço, não contém um sinal "
-"de igual"
-
-#: gio/gdbusaddress.c:502
-#, c-format
-#| msgid ""
-#| "Key/Value pair %d, '%s', in address element '%s' does not contain an "
-#| "equal sign"
-msgid ""
-"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
-msgstr ""
-"Par chave/valor %d, “%s”, no elemento “%s” de endereço não pode ser vazio"
+"Par chave/valor %d, \"%s\", no elemento \"%s\" de endereço, não contém um "
+"sinal de igual"
 
-#: gio/gdbusaddress.c:516
+#: ../gio/gdbusaddress.c:492
 #, c-format
-#| msgid ""
-#| "Error unescaping key or value in Key/Value pair %d, '%s', in address "
-#| "element '%s'"
 msgid ""
-"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
-"“%s”"
+"Error unescaping key or value in Key/Value pair %d, '%s', in address element "
+"'%s'"
 msgstr ""
-"Erro ao desfazer o escape de chave ou valor no par Chave/Valor %d, “%s”, no "
-"elemento “%s” de endereço"
+"Erro ao desfazer o escape de chave ou valor no par Chave/Valor %d, \"%s\", "
+"no elemento \"%s\" de endereço"
 
-#: gio/gdbusaddress.c:588
+#: ../gio/gdbusaddress.c:570
 #, c-format
-#| msgid ""
-#| "Error in address '%s' - the unix transport requires exactly one of the "
-#| "keys 'path' or 'abstract' to be set"
 msgid ""
-"Error in address “%s” — the unix transport requires exactly one of the keys "
-"“path” or “abstract” to be set"
+"Error in address '%s' - the unix transport requires exactly one of the keys "
+"'path' or 'abstract' to be set"
 msgstr ""
-"Erro no endereço “%s” — o transporte unix requer que exatamente uma das "
-"chaves “path” ou “abstract” esteja definida"
+"Erro no endereço \"%s\" - o transporte unix requer que exatamente uma das "
+"chaves \"path\" ou \"abstract\" esteja definida"
 
-#: gio/gdbusaddress.c:624
+#: ../gio/gdbusaddress.c:606
 #, c-format
-#| msgid "Error in address '%s' - the host attribute is missing or malformed"
-msgid "Error in address “%s” — the host attribute is missing or malformed"
-msgstr "Erro no endereço “%s” — o atributo host está em falta ou mal formado"
+msgid "Error in address '%s' - the host attribute is missing or malformed"
+msgstr "Erro no endereço \"%s\" - o atributo host está em falta ou mal formado"
 
-#: gio/gdbusaddress.c:638
+#: ../gio/gdbusaddress.c:620
 #, c-format
-#| msgid "Error in address '%s' - the port attribute is missing or malformed"
-msgid "Error in address “%s” — the port attribute is missing or malformed"
-msgstr "Erro no endereço “%s” — o atributo port está em falta ou mal formado"
+msgid "Error in address '%s' - the port attribute is missing or malformed"
+msgstr "Erro no endereço \"%s\" - o atributo port está em falta ou mal formado"
 
-#: gio/gdbusaddress.c:652
+#: ../gio/gdbusaddress.c:634
 #, c-format
-#| msgid ""
-#| "Error in address '%s' - the noncefile attribute is missing or malformed"
-msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
+msgid "Error in address '%s' - the noncefile attribute is missing or malformed"
 msgstr ""
-"Erro no endereço “%s” — o atributo noncefile está em falta ou mal formado"
+"Erro no endereço \"%s\" - o atributo noncefile está em falta ou mal formado"
 
-#: gio/gdbusaddress.c:673
+#: ../gio/gdbusaddress.c:655
 msgid "Error auto-launching: "
 msgstr "Erro ao autoiniciar: "
 
-#: gio/gdbusaddress.c:726
+#: ../gio/gdbusaddress.c:663
+#, c-format
+msgid "Unknown or unsupported transport '%s' for address '%s'"
+msgstr "Transporte \"%s\" desconhecido ou não suportado para o endereço \"%s\""
+
+#: ../gio/gdbusaddress.c:699
 #, c-format
-#| msgid "Error opening nonce file '%s': %s"
-msgid "Error opening nonce file “%s”: %s"
-msgstr "Erro ao abrir o ficheiro nonce “%s”: %s"
+msgid "Error opening nonce file '%s': %s"
+msgstr "Erro ao abrir o ficheiro nonce \"%s\": %s"
 
-#: gio/gdbusaddress.c:745
+#: ../gio/gdbusaddress.c:717
 #, c-format
-#| msgid "Error reading from nonce file '%s': %s"
-msgid "Error reading from nonce file “%s”: %s"
-msgstr "Erro ao ler do ficheiro nonce “%s”: %s"
+msgid "Error reading from nonce file '%s': %s"
+msgstr "Erro ao ler do ficheiro nonce \"%s\": %s"
 
-#: gio/gdbusaddress.c:754
+#: ../gio/gdbusaddress.c:726
 #, c-format
-#| msgid "Error reading from nonce file '%s', expected 16 bytes, got %d"
-msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
-msgstr "Erro ao ler do ficheiro nonce “%s”, esperados 16 bytes, obtidos %d"
+msgid "Error reading from nonce file '%s', expected 16 bytes, got %d"
+msgstr "Erro ao ler do ficheiro nonce \"%s\", esperados 16 bytes, obtidos %d"
 
-#: gio/gdbusaddress.c:772
+#: ../gio/gdbusaddress.c:744
 #, c-format
-#| msgid "Error writing contents of nonce file '%s' to stream:"
-msgid "Error writing contents of nonce file “%s” to stream:"
-msgstr "Erro ao escrever o conteúdo do ficheiro nonce “%s” para o fluxo:"
+msgid "Error writing contents of nonce file '%s' to stream:"
+msgstr "Erro ao escrever o conteúdo do ficheiro nonce \"%s\" para o fluxo:"
 
-#: gio/gdbusaddress.c:981
+#: ../gio/gdbusaddress.c:951
 msgid "The given address is empty"
 msgstr "O endereço indicado está vazio"
 
-#: gio/gdbusaddress.c:1094
+#: ../gio/gdbusaddress.c:1064
 #, c-format
 msgid "Cannot spawn a message bus when setuid"
 msgstr "Impossível criar um canal de mensagem quando em setuid"
 
-#: gio/gdbusaddress.c:1101
+#: ../gio/gdbusaddress.c:1071
 msgid "Cannot spawn a message bus without a machine-id: "
 msgstr "Impossível criar um canal de mensagem sem um id de máquina: "
 
-#: gio/gdbusaddress.c:1108
+#: ../gio/gdbusaddress.c:1078
 #, c-format
 msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
 msgstr "Não foi possível lançar automaticamente o D-Bus sem o $DISPLAY X-11"
 
-#: gio/gdbusaddress.c:1150
+#: ../gio/gdbusaddress.c:1120
+#, c-format
+msgid "Error spawning command line '%s': "
+msgstr "Erro ao criar uma linha de comando \"%s\": "
+
+#: ../gio/gdbusaddress.c:1337
+#, c-format
+msgid "(Type any character to close this window)\n"
+msgstr "(insira um qualquer carácter para fechar esta janela)\n"
+
+#: ../gio/gdbusaddress.c:1489
 #, c-format
-#| msgid "Error spawning command line '%s': "
-msgid "Error spawning command line “%s”: "
-msgstr "Erro ao criar uma linha de comando “%s”: "
+msgid "Session dbus not running, and autolaunch failed"
+msgstr ""
+"Dbus de sessão não se encontra em execução e o início automático falhou"
 
-#: gio/gdbusaddress.c:1219
+#: ../gio/gdbusaddress.c:1500
 #, c-format
 msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr ""
 "Impossível determinar o endereço do canal de sessão (não implementado para "
 "este SO)"
 
-#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7190
+#: ../gio/gdbusaddress.c:1635 ../gio/gdbusconnection.c:7133
 #, c-format
-#| msgid ""
-#| "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment "
-#| "variable - unknown value '%s'"
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
-"— unknown value “%s”"
+"- unknown value '%s'"
 msgstr ""
 "Impossível determinar o endereço de canal a partir da variável de sessão "
-"DBUS_STARTER_BUS_TYPE — valor “%s” desconhecido"
+"DBUS_STARTER_BUS_TYPE - valor \"%s\" desconhecido"
 
-#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7199
+#: ../gio/gdbusaddress.c:1644 ../gio/gdbusconnection.c:7142
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
 msgstr ""
-"Impossível determinar o endereço do canal porque a variável de ambiente "
+"Impossível determinar o endereço do canal porque a variável de a pasta "
 "DBUS_STARTER_BUS_TYPE não está definida"
 
-#: gio/gdbusaddress.c:1376
+#: ../gio/gdbusaddress.c:1654
 #, c-format
 msgid "Unknown bus type %d"
 msgstr "Tipo de canal %d desconhecido"
 
-#: gio/gdbusauth.c:294
+#: ../gio/gdbusauth.c:293
 msgid "Unexpected lack of content trying to read a line"
 msgstr "Falta de conteúdo inesperada ao tentar ler uma linha"
 
-#: gio/gdbusauth.c:338
+#: ../gio/gdbusauth.c:337
 msgid "Unexpected lack of content trying to (safely) read a line"
 msgstr "Falta de conteúdo inesperada ao tentar ler uma linha (em segurança)"
 
-#: gio/gdbusauth.c:482
+#: ../gio/gdbusauth.c:508
 #, c-format
 msgid ""
 "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
@@ -596,235 +553,209 @@ msgstr ""
 "Esgotados todos os mecanismos de autenticação disponíveis (tentados: %s) "
 "(disponíveis: %s)"
 
-#: gio/gdbusauth.c:1167
+#: ../gio/gdbusauth.c:1173
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr "Cancelado via GDBusAuthObserver::authorize-authenticated-peer"
 
-#: gio/gdbusauthmechanismsha1.c:265
+#: ../gio/gdbusauthmechanismsha1.c:261
 #, c-format
-#| msgid "Error when getting information for directory '%s': %s"
-msgid "Error when getting information for directory “%s”: %s"
-msgstr "Erro ao obter informação da diretório “%s”: %s"
+msgid "Error when getting information for directory '%s': %s"
+msgstr "Erro ao obter informação da pasta \"%s\": %s"
 
-#: gio/gdbusauthmechanismsha1.c:280
+#: ../gio/gdbusauthmechanismsha1.c:273
 #, c-format
-#| msgid ""
-#| "Permissions on directory '%s' are malformed. Expected mode 0700, got 0%o"
 msgid ""
-"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
+"Permissions on directory '%s' are malformed. Expected mode 0700, got 0%o"
 msgstr ""
-"As permissões da diretório “%s” estão mal formadas. Esperado o modo 0700, "
+"As permissões da pasta \"%s\" estão mal formadas. Esperado o modo 0700, "
 "obtido 0%o"
 
-#: gio/gdbusauthmechanismsha1.c:310
+#: ../gio/gdbusauthmechanismsha1.c:294
 #, c-format
-#| msgid "Error creating directory %s: %s"
-msgid "Error creating directory “%s”: %s"
-msgstr "Erro ao criar o diretório “%s”: %s"
+msgid "Error creating directory '%s': %s"
+msgstr "Erro ao criar a pasta \"%s\": %s"
 
-#: gio/gdbusauthmechanismsha1.c:355
+#: ../gio/gdbusauthmechanismsha1.c:377
 #, c-format
-#| msgid "Error opening keyring '%s' for reading: "
-msgid "Error opening keyring “%s” for reading: "
-msgstr "Erro ao abrir o chaveiro “%s” para leitura: "
+msgid "Error opening keyring '%s' for reading: "
+msgstr "Erro ao abrir o chaveiro \"%s\" para leitura: "
 
-#: gio/gdbusauthmechanismsha1.c:378 gio/gdbusauthmechanismsha1.c:700
+#: ../gio/gdbusauthmechanismsha1.c:401 ../gio/gdbusauthmechanismsha1.c:714
 #, c-format
-#| msgid "Line %d of the keyring at '%s' with content '%s' is malformed"
-msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
-msgstr "Linha %d do chaveiro em “%s” com o conteúdo “%s” está mal formada"
+msgid "Line %d of the keyring at '%s' with content '%s' is malformed"
+msgstr "Linha %d do chaveiro em \"%s\" com o conteúdo \"%s\" está mal formada"
 
-#: gio/gdbusauthmechanismsha1.c:392 gio/gdbusauthmechanismsha1.c:714
+#: ../gio/gdbusauthmechanismsha1.c:415 ../gio/gdbusauthmechanismsha1.c:728
 #, c-format
-#| msgid ""
-#| "First token of line %d of the keyring at '%s' with content '%s' is "
-#| "malformed"
 msgid ""
-"First token of line %d of the keyring at “%s” with content “%s” is malformed"
+"First token of line %d of the keyring at '%s' with content '%s' is malformed"
 msgstr ""
-"O primeiro bloco da linha %d do chaveiro em “%s” com o conteúdo “%s” está "
-"mal formado"
+"O primeiro bloco da linha %d do chaveiro em \"%s\" com o conteúdo \"%s\" "
+"está mal formado"
 
-#: gio/gdbusauthmechanismsha1.c:406 gio/gdbusauthmechanismsha1.c:728
+#: ../gio/gdbusauthmechanismsha1.c:430 ../gio/gdbusauthmechanismsha1.c:742
 #, c-format
-#| msgid ""
-#| "Second token of line %d of the keyring at '%s' with content '%s' is "
-#| "malformed"
 msgid ""
-"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
+"Second token of line %d of the keyring at '%s' with content '%s' is malformed"
 msgstr ""
-"O segundo bloco da linha %d do chaveiro em “%s” com o conteúdo “%s” está mal "
-"formado"
+"O segundo bloco da linha %d do chaveiro em \"%s\" com o conteúdo \"%s\" está "
+"mal formado"
 
-#: gio/gdbusauthmechanismsha1.c:430
+#: ../gio/gdbusauthmechanismsha1.c:454
 #, c-format
-#| msgid "Didn't find cookie with id %d in the keyring at '%s'"
-msgid "Didn’t find cookie with id %d in the keyring at “%s”"
-msgstr "Impossível encontrar a cookie com o id %d no chaveiro em “%s”"
+msgid "Didn't find cookie with id %d in the keyring at '%s'"
+msgstr "Impossível encontrar a cookie com o id %d no chaveiro em \"%s\""
 
-#: gio/gdbusauthmechanismsha1.c:476
+#: ../gio/gdbusauthmechanismsha1.c:532
 #, c-format
-#| msgid "Error creating lock file '%s': %s"
-msgid "Error creating lock file “%s”: %s"
-msgstr "Erro ao criar o ficheiro de acesso exclusivo “%s”: %s"
+msgid "Error deleting stale lock file '%s': %s"
+msgstr "Erro ao eliminar o ficheiro de acesso exclusivo \"%s\" abandonado: %s"
 
-#: gio/gdbusauthmechanismsha1.c:540
+#: ../gio/gdbusauthmechanismsha1.c:564
 #, c-format
-#| msgid "Error deleting stale lock file '%s': %s"
-msgid "Error deleting stale lock file “%s”: %s"
-msgstr "Erro ao eliminar o ficheiro de acesso exclusivo “%s” abandonado: %s"
+msgid "Error creating lock file '%s': %s"
+msgstr "Erro ao criar o ficheiro de acesso exclusivo \"%s\": %s"
 
-#: gio/gdbusauthmechanismsha1.c:579
+#: ../gio/gdbusauthmechanismsha1.c:594
 #, c-format
-#| msgid "Error closing (unlinked) lock file '%s': %s"
-msgid "Error closing (unlinked) lock file “%s”: %s"
-msgstr "Erro ao fechar o ficheiro de acesso exclusivo “%s” (não ligado): %s"
+msgid "Error closing (unlinked) lock file '%s': %s"
+msgstr "Erro ao fechar o ficheiro de acesso exclusivo \"%s\" (não ligado): %s"
 
-#: gio/gdbusauthmechanismsha1.c:590
+#: ../gio/gdbusauthmechanismsha1.c:604
 #, c-format
-#| msgid "Error unlinking lock file '%s': %s"
-msgid "Error unlinking lock file “%s”: %s"
-msgstr "Erro ao desfazer a ligação do ficheiro de acesso exclusivo “%s”: %s"
+msgid "Error unlinking lock file '%s': %s"
+msgstr "Erro ao desfazer a ligação do ficheiro de acesso exclusivo \"%s\": %s"
 
-#: gio/gdbusauthmechanismsha1.c:667
+#: ../gio/gdbusauthmechanismsha1.c:681
 #, c-format
-#| msgid "Error opening keyring '%s' for writing: "
-msgid "Error opening keyring “%s” for writing: "
-msgstr "Erro ao abrir o chaveiro “%s” para escrita: "
+msgid "Error opening keyring '%s' for writing: "
+msgstr "Erro ao abrir o chaveiro \"%s\" para escrita: "
 
-#: gio/gdbusauthmechanismsha1.c:863
+#: ../gio/gdbusauthmechanismsha1.c:878
 #, c-format
-#| msgid "(Additionally, releasing the lock for '%s' also failed: %s) "
-msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
-msgstr "(adicionalmente, também falhou a libertação para “%s”: %s) "
+msgid "(Additionally, releasing the lock for '%s' also failed: %s) "
+msgstr ""
+"(adicionalmente, também falhou a libertação do ficheiro de acesso exclusivo "
+"a \"%s\": %s) "
 
-#: gio/gdbusconnection.c:595 gio/gdbusconnection.c:2391
+#: ../gio/gdbusconnection.c:612 ../gio/gdbusconnection.c:2377
 msgid "The connection is closed"
 msgstr "A ligação está fechada"
 
-#: gio/gdbusconnection.c:1892
+#: ../gio/gdbusconnection.c:1879
 msgid "Timeout was reached"
 msgstr "Foi atingido o tempo de expiração"
 
-#: gio/gdbusconnection.c:2513
+#: ../gio/gdbusconnection.c:2499
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 "Foram encontrados parâmetros não suportados ao construir a ligação de cliente"
 
-#: gio/gdbusconnection.c:4161 gio/gdbusconnection.c:4508
+#: ../gio/gdbusconnection.c:4109 ../gio/gdbusconnection.c:4456
 #, c-format
-#| msgid ""
-#| "No such interface 'org.freedesktop.DBus.Properties' on object at path %s"
 msgid ""
-"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
+"No such interface 'org.freedesktop.DBus.Properties' on object at path %s"
 msgstr ""
-"Não existe o ambiente “org.freedesktop.DBus.Properties” no objeto no caminho "
-"%s"
+"Não existe o a pasta \"org.freedesktop.DBus.Properties\" no objeto no "
+"caminho %s"
 
-#: gio/gdbusconnection.c:4303
+#: ../gio/gdbusconnection.c:4251
 #, c-format
-#| msgid "No such property '%s'"
-msgid "No such property “%s”"
-msgstr "Não existe a propriedade “%s”"
+msgid "No such property '%s'"
+msgstr "Não existe a propriedade \"%s\""
 
-#: gio/gdbusconnection.c:4315
+#: ../gio/gdbusconnection.c:4263
 #, c-format
-#| msgid "Property '%s' is not readable"
-msgid "Property “%s” is not readable"
-msgstr "A propriedade “%s” não pode ser lida"
+msgid "Property '%s' is not readable"
+msgstr "A propriedade \"%s\" não pode ser lida"
 
-#: gio/gdbusconnection.c:4326
+#: ../gio/gdbusconnection.c:4274
 #, c-format
-#| msgid "Property '%s' is not writable"
-msgid "Property “%s” is not writable"
-msgstr "A propriedade “%s” não pode ser escrita"
+msgid "Property '%s' is not writable"
+msgstr "A propriedade \"%s\" não pode ser escrita"
 
-#: gio/gdbusconnection.c:4346
+#: ../gio/gdbusconnection.c:4294
 #, c-format
-#| msgid "Error setting property '%s': Expected type '%s' but got '%s'"
-msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
+msgid "Error setting property '%s': Expected type '%s' but got '%s'"
 msgstr ""
-"Erro ao definir a propriedade “%s”: esperado o tipo “%s”, obtido o “%s”"
+"Erro ao definir a propriedade \"%s\": esperado o tipo \"%s\", obtido o \"%s\""
 
-#: gio/gdbusconnection.c:4451 gio/gdbusconnection.c:4659
-#: gio/gdbusconnection.c:6630
+#: ../gio/gdbusconnection.c:4399 ../gio/gdbusconnection.c:6573
 #, c-format
-#| msgid "No such interface '%s'"
-msgid "No such interface “%s”"
-msgstr "Não existe o ambiente “%s”"
+msgid "No such interface '%s'"
+msgstr "Não existe o a pasta \"%s\""
+
+#: ../gio/gdbusconnection.c:4607
+msgid "No such interface"
+msgstr "Não existe o a pasta"
 
-#: gio/gdbusconnection.c:4877 gio/gdbusconnection.c:7139
+#: ../gio/gdbusconnection.c:4825 ../gio/gdbusconnection.c:7082
 #, c-format
-#| msgid "No such interface '%s' on object at path %s"
-msgid "No such interface “%s” on object at path %s"
-msgstr "Não existe o ambiente “%s” no objeto no caminho %s"
+msgid "No such interface '%s' on object at path %s"
+msgstr "Não existe o a pasta \"%s\" no objeto no caminho %s"
 
-#: gio/gdbusconnection.c:4975
+#: ../gio/gdbusconnection.c:4923
 #, c-format
-#| msgid "No such method '%s'"
-msgid "No such method “%s”"
-msgstr "Não existe o método “%s”"
+msgid "No such method '%s'"
+msgstr "Não existe o método \"%s\""
 
-#: gio/gdbusconnection.c:5006
+#: ../gio/gdbusconnection.c:4954
 #, c-format
-#| msgid "Type of message, '%s', does not match expected type '%s'"
-msgid "Type of message, “%s”, does not match expected type “%s”"
-msgstr "Tipo de mensagem, “%s”, não corresponde ao tipo “%s” esperado"
+msgid "Type of message, '%s', does not match expected type '%s'"
+msgstr "Tipo de mensagem, \"%s\", não corresponde ao tipo \"%s\" esperado"
 
-#: gio/gdbusconnection.c:5204
+#: ../gio/gdbusconnection.c:5152
 #, c-format
 msgid "An object is already exported for the interface %s at %s"
 msgstr "Já existe um objeto exportado para o ambiente %s em %s"
 
-#: gio/gdbusconnection.c:5430
+#: ../gio/gdbusconnection.c:5378
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "Impossível obter propriedade %s.%s"
 
-#: gio/gdbusconnection.c:5486
+#: ../gio/gdbusconnection.c:5434
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "Impossível definir propriedade %s.%s"
 
-#: gio/gdbusconnection.c:5664
+#: ../gio/gdbusconnection.c:5610
 #, c-format
-#| msgid "Method '%s' returned type '%s', but expected '%s'"
-msgid "Method “%s” returned type “%s”, but expected “%s”"
-msgstr "O método “%s” devolveu o tipo “%s”, mas era esperado “%s”"
+msgid "Method '%s' returned type '%s', but expected '%s'"
+msgstr "O método \"%s\" devolveu o tipo \"%s\", mas era esperado \"%s\""
 
-#: gio/gdbusconnection.c:6741
+#: ../gio/gdbusconnection.c:6684
 #, c-format
-#| msgid "Method '%s' on interface '%s' with signature '%s' does not exist"
-msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
-msgstr "O método “%s” no ambiente “%s” com a assinatura “%s” não existe"
+msgid "Method '%s' on interface '%s' with signature '%s' does not exist"
+msgstr "O método \"%s\" no ambiente \"%s\" com a assinatura \"%s\" não existe"
 
-#: gio/gdbusconnection.c:6862
+#: ../gio/gdbusconnection.c:6805
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "Já existe uma subárvore exportada para %s"
 
-#: gio/gdbusmessage.c:1255
+#: ../gio/gdbusmessage.c:1244
 msgid "type is INVALID"
 msgstr "tipo é INVÁLIDO"
 
-#: gio/gdbusmessage.c:1266
+#: ../gio/gdbusmessage.c:1255
 msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
 msgstr "Mensagem METHOD_CALL: falta campo de cabeçalho PATH ou MEMBER"
 
-#: gio/gdbusmessage.c:1277
+#: ../gio/gdbusmessage.c:1266
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr "Mensagem ETHOD_RETURN: falta campo de cabeçalho REPLY_SERIAL"
 
-#: gio/gdbusmessage.c:1289
+#: ../gio/gdbusmessage.c:1278
 msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
 msgstr "Mensagem ERROR: Falta campo de cabeçalho REPLY_SERIAL ou ERROR_NAME"
 
-#: gio/gdbusmessage.c:1302
+#: ../gio/gdbusmessage.c:1291
 msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
 msgstr "Mensagem SIGNAL: falta campo de cabeçalho PATH, INTERFACE ou MEMBER"
 
-#: gio/gdbusmessage.c:1310
+#: ../gio/gdbusmessage.c:1299
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
@@ -832,7 +763,7 @@ msgstr ""
 "Mensagem SIGNAL: o campo de cabeçalho PATH está a utilizar o valor "
 "reservado /org/freedesktop/DBus/Local"
 
-#: gio/gdbusmessage.c:1318
+#: ../gio/gdbusmessage.c:1307
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
@@ -840,50 +771,39 @@ msgstr ""
 "Mensagem SIGNAL: o campo de cabeçalho INTERFACE está a utilizar o valor "
 "reservado org.freedesktop.DBus.Local"
 
-#: gio/gdbusmessage.c:1366 gio/gdbusmessage.c:1426
+#: ../gio/gdbusmessage.c:1355 ../gio/gdbusmessage.c:1415
 #, c-format
 msgid "Wanted to read %lu byte but only got %lu"
 msgid_plural "Wanted to read %lu bytes but only got %lu"
 msgstr[0] "Tentativa de ler %lu byte mas só obtido %lu"
 msgstr[1] "Tentativa de ler %lu bytes mas só obtidos %lu"
 
-#: gio/gdbusmessage.c:1380
+#: ../gio/gdbusmessage.c:1369
 #, c-format
-#| msgid "Expected NUL byte after the string '%s' but found byte %d"
-msgid "Expected NUL byte after the string “%s” but found byte %d"
-msgstr "Esperado o byte NUL após a cadeia “%s” mas encontrado o byte %d"
+msgid "Expected NUL byte after the string '%s' but found byte %d"
+msgstr "Esperado o byte NUL após a cadeia \"%s\" mas encontrado o byte %d"
 
-#: gio/gdbusmessage.c:1399
+#: ../gio/gdbusmessage.c:1388
 #, c-format
-#| msgid ""
-#| "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
-#| "(length of string is %d). The valid UTF-8 string up until that point was "
-#| "'%s'"
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
-"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
+"(length of string is %d). The valid UTF-8 string up until that point was '%s'"
 msgstr ""
-"Esperada uma cadeia UTF-8 válida mas encontrados bytes inválidos no desvio "
-"de bytes %d (comprimento da cadeia é %d). A cadeia UTF-8 válida até esse "
-"ponto era “%s”"
+"Esperada uma expressão UTF-8 válida mas encontrados bytes inválidos no "
+"desvio de bytes %d (comprimento da expressão é %d). A expressão UTF-8 válida "
+"até esse ponto era \"%s\""
 
-#: gio/gdbusmessage.c:1463 gio/gdbusmessage.c:1711 gio/gdbusmessage.c:1900
-msgid "Value nested too deeply"
-msgstr "Origem do valor muito antiga"
-
-#: gio/gdbusmessage.c:1609
+#: ../gio/gdbusmessage.c:1587
 #, c-format
-#| msgid "Parsed value '%s' is not a valid D-Bus object path"
-msgid "Parsed value “%s” is not a valid D-Bus object path"
-msgstr "Valor processado “%s” não é um caminho de objeto D-Bus válido"
+msgid "Parsed value '%s' is not a valid D-Bus object path"
+msgstr "Valor processado \"%s\" não é um caminho de objeto D-Bus válido"
 
-#: gio/gdbusmessage.c:1631
+#: ../gio/gdbusmessage.c:1609
 #, c-format
-#| msgid "Parsed value '%s' is not a valid D-Bus signature"
-msgid "Parsed value “%s” is not a valid D-Bus signature"
-msgstr "Valor processado “%s” não é uma assinatura D-Bus válida"
+msgid "Parsed value '%s' is not a valid D-Bus signature"
+msgstr "Valor processado \"%s\" não é uma assinatura D-Bus válida"
 
-#: gio/gdbusmessage.c:1678
+#: ../gio/gdbusmessage.c:1656
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -896,71 +816,56 @@ msgstr[1] ""
 "Encontrado um vetor de %u bytes de comprimento. Tamanho máximo é 2<<26 bytes "
 "(64MiB)."
 
-#: gio/gdbusmessage.c:1698
+#: ../gio/gdbusmessage.c:1676
 #, c-format
-#| msgid ""
-#| "Encountered array of type 'a%c', expected to have a length a multiple of "
-#| "%u bytes, but found to be %u bytes in length"
 msgid ""
-"Encountered array of type “a%c”, expected to have a length a multiple of %u "
+"Encountered array of type 'a%c', expected to have a length a multiple of %u "
 "bytes, but found to be %u bytes in length"
 msgstr ""
-"Encontrado um vetor de tipo \"a%c\", esperado um comprimento múltiplo de %u "
+"Encontrada matriz de tipo \"a%c\", esperado um comprimento múltiplo de %u "
 "bytes, obtidos %u bytes de comprimento"
 
-#: gio/gdbusmessage.c:1884
+#: ../gio/gdbusmessage.c:1843
 #, c-format
-#| msgid "Parsed value '%s' for variant is not a valid D-Bus signature"
-msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
-msgstr "Valor processado “%s” para variante não é uma assinatura D-Bus válida"
+msgid "Parsed value '%s' for variant is not a valid D-Bus signature"
+msgstr ""
+"Valor processado \"%s\" para variante não é uma assinatura D-Bus válida"
 
-#: gio/gdbusmessage.c:1925
+#: ../gio/gdbusmessage.c:1867
 #, c-format
-#| msgid ""
-#| "Error deserializing GVariant with type string '%s' from the D-Bus wire "
-#| "format"
 msgid ""
-"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
+"Error deserializing GVariant with type string '%s' from the D-Bus wire format"
 msgstr ""
-"Erro ao remover serialização GVariant com a cadeia de tipo “%s” do formato "
-"de ligação D-Bus"
+"Erro ao remover serialização GVariant com a expressão de tipo \"%s\" do "
+"formato de ligação D-Bus"
 
-#: gio/gdbusmessage.c:2110
+#: ../gio/gdbusmessage.c:2051
 #, c-format
-#| msgid ""
-#| "Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found "
-#| "value 0x%02x"
 msgid ""
-"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
+"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value "
 "0x%02x"
 msgstr ""
-"Valor de \"endianness\" inválido. Esperado 0x6c (“l”) ou 0x42 (“B”) mas "
+"Valor de \"endian\" inválido. Esperado 0x6c (\"l\") ou 0x42 (\"B\") mas "
 "obtido o valor 0x%02x"
 
-#: gio/gdbusmessage.c:2123
+#: ../gio/gdbusmessage.c:2064
 #, c-format
 msgid "Invalid major protocol version. Expected 1 but found %d"
 msgstr "Versão principal de protocolo inválida. Esperada 1 mas obtida %d"
 
-#: gio/gdbusmessage.c:2177 gio/gdbusmessage.c:2773
-msgid "Signature header found but is not of type signature"
-msgstr "Assinatura de cabeçalho encontrada, mas não do tipo assinatura."
-
-#: gio/gdbusmessage.c:2189
+#: ../gio/gdbusmessage.c:2120
 #, c-format
-#| msgid "Signature header with signature '%s' found but message body is empty"
-msgid "Signature header with signature “%s” found but message body is empty"
+msgid "Signature header with signature '%s' found but message body is empty"
 msgstr ""
-"Assinatura de cabeçalho com a assinatura “%s” encontrada, mas o corpo da "
+"Assinatura de cabeçalho com a assinatura \"%s\" encontrada mas o corpo da "
 "mensagem está vazio"
 
-#: gio/gdbusmessage.c:2204
+#: ../gio/gdbusmessage.c:2134
 #, c-format
-#| msgid "Parsed value '%s' is not a valid D-Bus signature (for body)"
-msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
-msgstr "Valor processado “%s” não é uma assinatura D-Bus válida (para corpo)"
+msgid "Parsed value '%s' is not a valid D-Bus signature (for body)"
+msgstr "Valor processado \"%s\" não é uma assinatura D-Bus válida (para corpo)"
 
-#: gio/gdbusmessage.c:2236
+#: ../gio/gdbusmessage.c:2164
 #, c-format
 msgid "No signature header in message but the message body is %u byte"
 msgid_plural "No signature header in message but the message body is %u bytes"
@@ -971,150 +876,115 @@ msgstr[1] ""
 "Nenhum cabeçalho de assinatura na mensagem mas o corpo da mensagem tem %u "
 "bytes"
 
-#: gio/gdbusmessage.c:2246
+#: ../gio/gdbusmessage.c:2174
 msgid "Cannot deserialize message: "
 msgstr "Impossível remover serialização da mensagem: "
 
-#: gio/gdbusmessage.c:2590
+#: ../gio/gdbusmessage.c:2515
 #, c-format
-#| msgid ""
-#| "Error serializing GVariant with type string '%s' to the D-Bus wire format"
 msgid ""
-"Error serializing GVariant with type string “%s” to the D-Bus wire format"
+"Error serializing GVariant with type string '%s' to the D-Bus wire format"
 msgstr ""
-"Erro ao serializar GVariant com a cadeia de tipo “%s” para o formato de "
+"Erro ao serializar GVariant com a expressão de tipo \"%s\" para o formato de "
 "ligação D-Bus"
 
-#: gio/gdbusmessage.c:2727
+#: ../gio/gdbusmessage.c:2652
 #, c-format
 msgid ""
-"Number of file descriptors in message (%d) differs from header field (%d)"
+"Message has %d file descriptors but the header field indicates %d file "
+"descriptors"
 msgstr ""
-"Número de descritores de ficheiro na mensagem (%d) difere do campo no "
-"cabeçalho (%d)"
+"Mensagem tem %d descritores de ficheiros mas o campo de cabeçalho indica %d "
+"descritores de ficheiros"
 
-#: gio/gdbusmessage.c:2735
+#: ../gio/gdbusmessage.c:2660
 msgid "Cannot serialize message: "
 msgstr "Impossível serializar a mensagem: "
 
-#: gio/gdbusmessage.c:2788
+#: ../gio/gdbusmessage.c:2704
 #, c-format
-#| msgid "Message body has signature '%s' but there is no signature header"
-msgid "Message body has signature “%s” but there is no signature header"
+msgid "Message body has signature '%s' but there is no signature header"
 msgstr ""
-"O corpo da mensagem tem a assinatura “%s” mas não existe a assinatura de "
-"cabeçalho"
+"O corpo da mensagem tem a assinatura \"%s\" mas não existe cabeçalho de "
+"assinatura"
 
-#: gio/gdbusmessage.c:2798
+#: ../gio/gdbusmessage.c:2714
 #, c-format
-#| msgid ""
-#| "Message body has type signature '%s' but signature in the header field is "
-#| "'%s'"
 msgid ""
-"Message body has type signature “%s” but signature in the header field is "
-"“%s”"
+"Message body has type signature '%s' but signature in the header field is "
+"'%s'"
 msgstr ""
-"O corpo da mensagem tem o tipo de assinatura “%s”, mas a assinatura no campo "
-"de cabeçalho é “%s”"
+"O corpo da mensagem tem o tipo de assinatura \"%s\" mas a assinatura no "
+"campo de cabeçalho é \"%s\""
 
-#: gio/gdbusmessage.c:2814
+#: ../gio/gdbusmessage.c:2730
 #, c-format
-#| msgid "Message body is empty but signature in the header field is '(%s)'"
-msgid "Message body is empty but signature in the header field is “(%s)”"
+msgid "Message body is empty but signature in the header field is '(%s)'"
 msgstr ""
 "O corpo da mensagem está vazio mas a assinatura no campo de cabeçalho é "
-"“(%s)”"
+"\"(%s)\""
 
-#: gio/gdbusmessage.c:3367
+#: ../gio/gdbusmessage.c:3283
 #, c-format
-#| msgid "Error return with body of type '%s'"
-msgid "Error return with body of type “%s”"
-msgstr "Resposta de erro com corpo do tipo “%s”"
+msgid "Error return with body of type '%s'"
+msgstr "Resposta de erro com corpo do tipo \"%s\""
 
-#: gio/gdbusmessage.c:3375
+#: ../gio/gdbusmessage.c:3291
 msgid "Error return with empty body"
 msgstr "Resposta de erro com corpo vazio"
 
-#: gio/gdbusprivate.c:2242
-#, c-format
-msgid "(Type any character to close this window)\n"
-msgstr "(insira um qualquer carácter para fechar esta janela)\n"
-
-#: gio/gdbusprivate.c:2416
-#, c-format
-msgid "Session dbus not running, and autolaunch failed"
-msgstr ""
-"Dbus de sessão não se encontra em execução e o início automático falhou"
-
-#: gio/gdbusprivate.c:2439
+#: ../gio/gdbusprivate.c:2038
 #, c-format
 msgid "Unable to get Hardware profile: %s"
 msgstr "Impossível obter o perfil de equipamento: %s"
 
-#: gio/gdbusprivate.c:2484
+#: ../gio/gdbusprivate.c:2083
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "Impossível ler /var/lib/dbus/machine-id ou /etc/machine-id: "
 
-#: gio/gdbusproxy.c:1562
+#: ../gio/gdbusproxy.c:1611
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Erro ao invocar StartServiceByName para %s: "
 
-#: gio/gdbusproxy.c:1585
+#: ../gio/gdbusproxy.c:1634
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
-msgstr "Resposta %d inesperada do método StartServiceByName(“%s”)"
+msgstr "Resposta %d inesperada do método StartServiceByName(\"%s\")"
 
-#: gio/gdbusproxy.c:2685 gio/gdbusproxy.c:2820
-#, c-format
-#| msgid ""
-#| "Cannot invoke method; proxy is for a well-known name without an owner and "
-#| "proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
+#: ../gio/gdbusproxy.c:2713 ../gio/gdbusproxy.c:2847
 msgid ""
-"Cannot invoke method; proxy is for the well-known name %s without an owner, "
-"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
+"Cannot invoke method; proxy is for a well-known name without an owner and "
+"proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
 msgstr ""
-"Impossível invocar o método; o proxy é para o nome conhecido %s sem um dono "
-"e o proxy foi construído com o parâmetro G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
+"Impossível invocar o método; proxy é para um nome conhecido sem um dono e "
+"proxy foi construída com o parâmetro G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
 
-#: gio/gdbusserver.c:755
-#| msgid "Abstract name space not supported"
-msgid "Abstract namespace not supported"
+#: ../gio/gdbusserver.c:708
+msgid "Abstract name space not supported"
 msgstr "Não é suportado nome de espaço abstrato"
 
-#: gio/gdbusserver.c:848
+#: ../gio/gdbusserver.c:795
 msgid "Cannot specify nonce file when creating a server"
 msgstr "Impossível especificar ficheiro nonce ao criar um servidor"
 
-#: gio/gdbusserver.c:930
+#: ../gio/gdbusserver.c:873
 #, c-format
-#| msgid "Error writing nonce file at '%s': %s"
-msgid "Error writing nonce file at “%s”: %s"
-msgstr "Erro ao escrever no ficheiro nonce em “%s”: %s"
+msgid "Error writing nonce file at '%s': %s"
+msgstr "Erro ao escrever no ficheiro nonce em \"%s\": %s"
 
-#: gio/gdbusserver.c:1103
+#: ../gio/gdbusserver.c:1044
 #, c-format
-#| msgid "The string '%s' is not a valid D-Bus GUID"
-msgid "The string “%s” is not a valid D-Bus GUID"
-msgstr "A cadeia “%s” não é um GUID D-Bus válido"
+msgid "The string '%s' is not a valid D-Bus GUID"
+msgstr "A expressão \"%s\" não é um GUID D-Bus válido"
 
-#: gio/gdbusserver.c:1143
+#: ../gio/gdbusserver.c:1084
 #, c-format
-#| msgid "Cannot listen on unsupported transport '%s'"
-msgid "Cannot listen on unsupported transport “%s”"
-msgstr "Impossível ouvir no transporte não suportado “%s”"
+msgid "Cannot listen on unsupported transport '%s'"
+msgstr "Impossível ouvir no transporte não suportado \"%s\""
 
-#: gio/gdbus-tool.c:107
+#: ../gio/gdbus-tool.c:95
 #, c-format
-#| msgid ""
-#| "Commands:\n"
-#| "  help         Shows this information\n"
-#| "  introspect   Introspect a remote object\n"
-#| "  monitor      Monitor a remote object\n"
-#| "  call         Invoke a method on a remote object\n"
-#| "  emit         Emit a signal\n"
-#| "\n"
-#| "Use \"%s COMMAND --help\" to get help on each command.\n"
 msgid ""
 "Commands:\n"
 "  help         Shows this information\n"
@@ -1122,9 +992,8 @@ msgid ""
 "  monitor      Monitor a remote object\n"
 "  call         Invoke a method on a remote object\n"
 "  emit         Emit a signal\n"
-"  wait         Wait for a bus name to appear\n"
 "\n"
-"Use “%s COMMAND --help” to get help on each command.\n"
+"Use \"%s COMMAND --help\" to get help on each command.\n"
 msgstr ""
 "Comandos:\n"
 "  help         Mostra esta informação\n"
@@ -1132,384 +1001,329 @@ msgstr ""
 "  monitor      Monitoriza um objeto remoto\n"
 "  call         Invoca um método num objeto remoto\n"
 "  emit         Emite um sinal\n"
-"  wait         Espera por um nome de canal aparecer \n"
 "\n"
 "Utilize \"%s COMMAND --help\" para obter ajuda sobre cada comando.\n"
 
-#: gio/gdbus-tool.c:197 gio/gdbus-tool.c:264 gio/gdbus-tool.c:336
-#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:850 gio/gdbus-tool.c:1187
-#: gio/gdbus-tool.c:1672
+#: ../gio/gdbus-tool.c:164 ../gio/gdbus-tool.c:226 ../gio/gdbus-tool.c:298
+#: ../gio/gdbus-tool.c:322 ../gio/gdbus-tool.c:724 ../gio/gdbus-tool.c:1067
+#: ../gio/gdbus-tool.c:1509 ../gio/gio-tool-rename.c:84
 #, c-format
 msgid "Error: %s\n"
 msgstr "Erro: %s\n"
 
-#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1688
+#: ../gio/gdbus-tool.c:175 ../gio/gdbus-tool.c:239 ../gio/gdbus-tool.c:1525
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr "Erro ao processar XML de introspeção: %s\n"
 
-#: gio/gdbus-tool.c:246
+#: ../gio/gdbus-tool.c:208
 #, c-format
 msgid "Error: %s is not a valid name\n"
 msgstr "Erro: %s não é um nome válido\n"
 
-#: gio/gdbus-tool.c:394
+#: ../gio/gdbus-tool.c:356
 msgid "Connect to the system bus"
 msgstr "Ligar ao bus de sistema"
 
-#: gio/gdbus-tool.c:395
+#: ../gio/gdbus-tool.c:357
 msgid "Connect to the session bus"
 msgstr "Ligar ao bus de sessão"
 
-#: gio/gdbus-tool.c:396
+#: ../gio/gdbus-tool.c:358
 msgid "Connect to given D-Bus address"
 msgstr "Ligar ao endereço D-Bus especificado"
 
-#: gio/gdbus-tool.c:406
+#: ../gio/gdbus-tool.c:368
 msgid "Connection Endpoint Options:"
 msgstr "Opções de destino da ligação:"
 
-#: gio/gdbus-tool.c:407
+#: ../gio/gdbus-tool.c:369
 msgid "Options specifying the connection endpoint"
 msgstr "Opções que especificam o destino da ligação"
 
-#: gio/gdbus-tool.c:430
+#: ../gio/gdbus-tool.c:391
 #, c-format
 msgid "No connection endpoint specified"
 msgstr "Nenhum destino de ligação especificado"
 
-#: gio/gdbus-tool.c:440
+#: ../gio/gdbus-tool.c:401
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr "Múltiplos destinos de ligação especificados"
 
-#: gio/gdbus-tool.c:513
+#: ../gio/gdbus-tool.c:471
 #, c-format
-#| msgid ""
-#| "Warning: According to introspection data, interface '%s' does not exist\n"
 msgid ""
-"Warning: According to introspection data, interface “%s” does not exist\n"
+"Warning: According to introspection data, interface '%s' does not exist\n"
 msgstr ""
-"Aviso: De acordo com os dados de introspeção, o ambiente “%s” não existe\n"
+"Aviso: De acordo com os dados de introspeção, o ambiente \"%s\" não existe\n"
 
-#: gio/gdbus-tool.c:522
+#: ../gio/gdbus-tool.c:480
 #, c-format
-#| msgid ""
-#| "Warning: According to introspection data, method '%s' does not exist on "
-#| "interface '%s'\n"
 msgid ""
-"Warning: According to introspection data, method “%s” does not exist on "
-"interface “%s”\n"
+"Warning: According to introspection data, method '%s' does not exist on "
+"interface '%s'\n"
 msgstr ""
-"Aviso: De acordo com os dados de introspeção, o método “%s” não existe no "
-"ambiente “%s”\n"
+"Aviso: De acordo com os dados de introspeção, o método \"%s\" não existe no "
+"ambiente \"%s\"\n"
 
-#: gio/gdbus-tool.c:584
+#: ../gio/gdbus-tool.c:542
 msgid "Optional destination for signal (unique name)"
 msgstr "Destino opcional para o sinal (nome único)"
 
-#: gio/gdbus-tool.c:585
+#: ../gio/gdbus-tool.c:543
 msgid "Object path to emit signal on"
 msgstr "Caminho do objeto sobre o qual emitir sinal"
 
-#: gio/gdbus-tool.c:586
+#: ../gio/gdbus-tool.c:544
 msgid "Signal and interface name"
 msgstr "Nome do sinal e do ambiente"
 
-#: gio/gdbus-tool.c:619
+#: ../gio/gdbus-tool.c:578
 msgid "Emit a signal."
 msgstr "Emitir um sinal."
 
-#: gio/gdbus-tool.c:674 gio/gdbus-tool.c:981 gio/gdbus-tool.c:1775
-#: gio/gdbus-tool.c:2007 gio/gdbus-tool.c:2227
+#: ../gio/gdbus-tool.c:612 ../gio/gdbus-tool.c:857 ../gio/gdbus-tool.c:1615
+#: ../gio/gdbus-tool.c:1850
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "Erro ao ligar: %s\n"
 
-#: gio/gdbus-tool.c:694
+#: ../gio/gdbus-tool.c:624
 #, c-format
-msgid "Error: %s is not a valid unique bus name.\n"
-msgstr "Erro: %s não é um nome único de canal (bus) válido.\n"
-
-#: gio/gdbus-tool.c:713 gio/gdbus-tool.c:1024 gio/gdbus-tool.c:1818
-msgid "Error: Object path is not specified\n"
-msgstr "Erro: caminho de objeto não está especificado\n"
+msgid "Error: object path not specified.\n"
+msgstr "Erro: caminho de objeto não especificado.\n"
 
-#: gio/gdbus-tool.c:736 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1838
-#: gio/gdbus-tool.c:2078
+#: ../gio/gdbus-tool.c:629 ../gio/gdbus-tool.c:924 ../gio/gdbus-tool.c:1680
+#: ../gio/gdbus-tool.c:1916
 #, c-format
 msgid "Error: %s is not a valid object path\n"
 msgstr "Erro: %s não é um caminho de objeto válido\n"
 
-#: gio/gdbus-tool.c:756
-#| msgid "Error: Method name is not specified\n"
-msgid "Error: Signal name is not specified\n"
-msgstr "Erro: nome do sinal não é especificado\n"
+#: ../gio/gdbus-tool.c:635
+#, c-format
+msgid "Error: signal not specified.\n"
+msgstr "Erro: sinal não especificado.\n"
 
-#: gio/gdbus-tool.c:770
+#: ../gio/gdbus-tool.c:642
 #, c-format
-#| msgid "Error: Method name '%s' is invalid\n"
-msgid "Error: Signal name “%s” is invalid\n"
-msgstr "Erro: nome do sinal “%s” é inválido\n"
+msgid "Error: signal must be the fully-qualified name.\n"
+msgstr "Erro: sinal tem de ser o nome completo (fully-qualified).\n"
 
-#: gio/gdbus-tool.c:782
+#: ../gio/gdbus-tool.c:650
 #, c-format
 msgid "Error: %s is not a valid interface name\n"
 msgstr "Erro: %s não é um nome de ambiente válido\n"
 
-#: gio/gdbus-tool.c:788
+#: ../gio/gdbus-tool.c:656
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr "Erro: %s não é um nome de membro válido\n"
 
+#: ../gio/gdbus-tool.c:662
+#, c-format
+msgid "Error: %s is not a valid unique bus name.\n"
+msgstr "Erro: %s não é um nome único de canal (bus) válido.\n"
+
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:825 gio/gdbus-tool.c:1156
+#: ../gio/gdbus-tool.c:699 ../gio/gdbus-tool.c:1036
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr "Erro ao processar o parâmetro %d: %s\n"
 
-#: gio/gdbus-tool.c:857
+#: ../gio/gdbus-tool.c:731
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr "Erro ao despejar a ligação: %s\n"
 
-#: gio/gdbus-tool.c:884
+#: ../gio/gdbus-tool.c:758
 msgid "Destination name to invoke method on"
 msgstr "Nome de destino no qual invocar o método"
 
-#: gio/gdbus-tool.c:885
+#: ../gio/gdbus-tool.c:759
 msgid "Object path to invoke method on"
 msgstr "Caminho do objeto no qual invocar o método"
 
-#: gio/gdbus-tool.c:886
+#: ../gio/gdbus-tool.c:760
 msgid "Method and interface name"
 msgstr "Método e nome de ambiente"
 
-#: gio/gdbus-tool.c:887
+#: ../gio/gdbus-tool.c:761
 msgid "Timeout in seconds"
 msgstr "Tempo limite em segundos"
 
-#: gio/gdbus-tool.c:926
+#: ../gio/gdbus-tool.c:802
 msgid "Invoke a method on a remote object."
 msgstr "Invocar um método num objeto remoto."
 
-#: gio/gdbus-tool.c:998 gio/gdbus-tool.c:1792 gio/gdbus-tool.c:2032
+#: ../gio/gdbus-tool.c:877 ../gio/gdbus-tool.c:1634 ../gio/gdbus-tool.c:1869
+#, c-format
 msgid "Error: Destination is not specified\n"
 msgstr "Erro: Destino não está especificado\n"
 
-#: gio/gdbus-tool.c:1009 gio/gdbus-tool.c:1809 gio/gdbus-tool.c:2043
+#: ../gio/gdbus-tool.c:889 ../gio/gdbus-tool.c:1651 ../gio/gdbus-tool.c:1881
 #, c-format
 msgid "Error: %s is not a valid bus name\n"
-msgstr "Erro: %s não é um nome de canal válido\n"
+msgstr "Erro: %s não é um nome de bus válido\n"
+
+#: ../gio/gdbus-tool.c:904 ../gio/gdbus-tool.c:1660
+#, c-format
+msgid "Error: Object path is not specified\n"
+msgstr "Erro: caminho de objeto não está especificado\n"
 
-#: gio/gdbus-tool.c:1059
+#: ../gio/gdbus-tool.c:939
+#, c-format
 msgid "Error: Method name is not specified\n"
 msgstr "Erro: nome de método não é especificado\n"
 
-#: gio/gdbus-tool.c:1070
+#: ../gio/gdbus-tool.c:950
 #, c-format
-#| msgid "Error: Method name '%s' is invalid\n"
-msgid "Error: Method name “%s” is invalid\n"
-msgstr "Erro: nome de método “%s” é inválido\n"
+msgid "Error: Method name '%s' is invalid\n"
+msgstr "Erro: nome de método \"%s\" é inválido\n"
 
-#: gio/gdbus-tool.c:1148
+#: ../gio/gdbus-tool.c:1028
 #, c-format
-#| msgid "Error parsing parameter %d of type '%s': %s\n"
-msgid "Error parsing parameter %d of type “%s”: %s\n"
-msgstr "Erro ao processar o parâmetro %d do tipo “%s”: %s\n"
+msgid "Error parsing parameter %d of type '%s': %s\n"
+msgstr "Erro ao processar o parâmetro %d do tipo \"%s\": %s\n"
 
-#: gio/gdbus-tool.c:1634
+#: ../gio/gdbus-tool.c:1472
 msgid "Destination name to introspect"
 msgstr "Nome do destino sobre o qual realizar a introspeção"
 
-#: gio/gdbus-tool.c:1635
+#: ../gio/gdbus-tool.c:1473
 msgid "Object path to introspect"
 msgstr "Caminho do objeto sobre o qual realizar a introspeção"
 
-#: gio/gdbus-tool.c:1636
+#: ../gio/gdbus-tool.c:1474
 msgid "Print XML"
 msgstr "Imprimir XML"
 
-#: gio/gdbus-tool.c:1637
+#: ../gio/gdbus-tool.c:1475
 msgid "Introspect children"
 msgstr "Realizar introspeção dos filhos"
 
-#: gio/gdbus-tool.c:1638
+#: ../gio/gdbus-tool.c:1476
 msgid "Only print properties"
 msgstr "Imprimir só propriedades"
 
-#: gio/gdbus-tool.c:1727
+#: ../gio/gdbus-tool.c:1567
 msgid "Introspect a remote object."
 msgstr "Realizar a introspeção de um objeto remoto."
 
-#: gio/gdbus-tool.c:1933
+#: ../gio/gdbus-tool.c:1772
 msgid "Destination name to monitor"
 msgstr "Nome do destino a monitorizar"
 
-#: gio/gdbus-tool.c:1934
+#: ../gio/gdbus-tool.c:1773
 msgid "Object path to monitor"
 msgstr "Caminho do objeto a monitorizar"
 
-#: gio/gdbus-tool.c:1959
+#: ../gio/gdbus-tool.c:1802
 msgid "Monitor a remote object."
 msgstr "Monitorizar um objeto remoto."
 
-#: gio/gdbus-tool.c:2017
-msgid "Error: can’t monitor a non-message-bus connection\n"
-msgstr "Erro: impossível monitorizar um ligação non-message-bus\n"
-
-#: gio/gdbus-tool.c:2141
-msgid "Service to activate before waiting for the other one (well-known name)"
-msgstr "Serviço a ativar enquanto espera por um outro (nome conhecido)"
-
-#: gio/gdbus-tool.c:2144
-msgid ""
-"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
-"(default)"
-msgstr ""
-"Compasso de espera antes de sair com erro (segundos); 0 para nenhum "
-"(predefinição)"
-
-#: gio/gdbus-tool.c:2192
-msgid "[OPTION…] BUS-NAME"
-msgstr "[OPÇÃO...] NOME-"
-
-#: gio/gdbus-tool.c:2193
-msgid "Wait for a bus name to appear."
-msgstr "Esperar por um nome de canal aparecer."
-
-#: gio/gdbus-tool.c:2269
-#| msgid "Error: object path not specified.\n"
-msgid "Error: A service to activate for must be specified.\n"
-msgstr "Erro: um serviço para ser ativado precisa ser especificado.\n"
-
-#: gio/gdbus-tool.c:2274
-#| msgid "Error: object path not specified.\n"
-msgid "Error: A service to wait for must be specified.\n"
-msgstr "Erro: um serviço a ser esperado precisa ser especificado\n"
-
-#: gio/gdbus-tool.c:2279
-#| msgid "Too many arguments"
-msgid "Error: Too many arguments.\n"
-msgstr "Erro: demasiados argumentos\n"
-
-#: gio/gdbus-tool.c:2287 gio/gdbus-tool.c:2294
-#, c-format
-#| msgid "Error: %s is not a valid bus name\n"
-msgid "Error: %s is not a valid well-known bus name.\n"
-msgstr "Erro: %s não é um nome de canal válido\n"
-
-#: gio/gdesktopappinfo.c:2071 gio/gdesktopappinfo.c:4877
+#: ../gio/gdesktopappinfo.c:1994 ../gio/gdesktopappinfo.c:4501
 msgid "Unnamed"
 msgstr "Sem nome"
 
-#: gio/gdesktopappinfo.c:2481
-#| msgid "Desktop file didn't specify Exec field"
-msgid "Desktop file didn’t specify Exec field"
-msgstr "Ficheiro do ambiente de trabalho não especificou campo Exec"
+#: ../gio/gdesktopappinfo.c:2404
+msgid "Desktop file didn't specify Exec field"
+msgstr "Ficheiro de área de trabalho não especifica campo Exec"
 
-#: gio/gdesktopappinfo.c:2761
+#: ../gio/gdesktopappinfo.c:2689
 msgid "Unable to find terminal required for application"
 msgstr "Impossível encontrar o terminal necessário à aplicação"
 
-#: gio/gdesktopappinfo.c:3413
+#: ../gio/gdesktopappinfo.c:3097
 #, c-format
-#| msgid "Can't create user application configuration folder %s: %s"
-msgid "Can’t create user application configuration folder %s: %s"
+msgid "Can't create user application configuration folder %s: %s"
 msgstr ""
 "Impossível criar a pasta de configurações de utilizador da aplicação %s: %s"
 
-#: gio/gdesktopappinfo.c:3417
+#: ../gio/gdesktopappinfo.c:3101
 #, c-format
-#| msgid "Can't create user MIME configuration folder %s: %s"
-msgid "Can’t create user MIME configuration folder %s: %s"
+msgid "Can't create user MIME configuration folder %s: %s"
 msgstr "Impossível criar a pasta de configurações MIME do utilizador %s: %s"
 
-#: gio/gdesktopappinfo.c:3657 gio/gdesktopappinfo.c:3681
+#: ../gio/gdesktopappinfo.c:3341 ../gio/gdesktopappinfo.c:3365
 msgid "Application information lacks an identifier"
 msgstr "Informação da aplicação não possui um identificador"
 
-#: gio/gdesktopappinfo.c:3915
+#: ../gio/gdesktopappinfo.c:3599
 #, c-format
-#| msgid "Can't create user desktop file %s"
-msgid "Can’t create user desktop file %s"
-msgstr "Impossível criar ficheiro do ambiente de trabalho do utilizador %s"
+msgid "Can't create user desktop file %s"
+msgstr "Impossível criar ficheiro de área de trabalho de utilizador %s"
 
-#: gio/gdesktopappinfo.c:4049
+#: ../gio/gdesktopappinfo.c:3733
 #, c-format
 msgid "Custom definition for %s"
 msgstr "Definição personalizada de %s"
 
-#: gio/gdrive.c:417
-#| msgid "drive doesn't implement eject"
-msgid "drive doesn’t implement eject"
+#: ../gio/gdrive.c:417
+msgid "drive doesn't implement eject"
 msgstr "a unidade não implementa a ejeção"
 
 #. Translators: This is an error
 #. * message for drive objects that
 #. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:495
-#| msgid "drive doesn't implement eject or eject_with_operation"
-msgid "drive doesn’t implement eject or eject_with_operation"
-msgstr "a unidade não implementa eject ou eject_with_operation"
-
-#: gio/gdrive.c:571
-#| msgid "drive doesn't implement polling for media"
-msgid "drive doesn’t implement polling for media"
+#: ../gio/gdrive.c:495
+msgid "drive doesn't implement eject or eject_with_operation"
+msgstr "a unidade não implementa ejetar ou eject_with_operation"
+
+#: ../gio/gdrive.c:571
+msgid "drive doesn't implement polling for media"
 msgstr "a unidade não implementa a verificação de existência de suportes"
 
-#: gio/gdrive.c:778
-#| msgid "drive doesn't implement start"
-msgid "drive doesn’t implement start"
+#: ../gio/gdrive.c:776
+msgid "drive doesn't implement start"
 msgstr "a unidade não implementa a reprodução"
 
-#: gio/gdrive.c:880
-#| msgid "drive doesn't implement stop"
-msgid "drive doesn’t implement stop"
+#: ../gio/gdrive.c:878
+msgid "drive doesn't implement stop"
 msgstr "a unidade não implementa a paragem"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: ../gio/gdummytlsbackend.c:195 ../gio/gdummytlsbackend.c:317
+#: ../gio/gdummytlsbackend.c:509
 msgid "TLS support is not available"
 msgstr "O suporte TLS não está disponível"
 
-#: gio/gdummytlsbackend.c:423
+#: ../gio/gdummytlsbackend.c:419
 msgid "DTLS support is not available"
 msgstr "O suporte DTLS não está disponível"
 
-#: gio/gemblem.c:323
+#: ../gio/gemblem.c:323
 #, c-format
-#| msgid "Can't handle version %d of GEmblem encoding"
-msgid "Can’t handle version %d of GEmblem encoding"
+msgid "Can't handle version %d of GEmblem encoding"
 msgstr "Impossível manipular a versão %d da codificação GEmblem"
 
-#: gio/gemblem.c:333
+#: ../gio/gemblem.c:333
 #, c-format
 msgid "Malformed number of tokens (%d) in GEmblem encoding"
 msgstr "Número de blocos (%d) mal-formado na codificação GEmblem"
 
-#: gio/gemblemedicon.c:362
+#: ../gio/gemblemedicon.c:362
 #, c-format
-#| msgid "Can't handle version %d of GEmblemedIcon encoding"
-msgid "Can’t handle version %d of GEmblemedIcon encoding"
+msgid "Can't handle version %d of GEmblemedIcon encoding"
 msgstr "Impossível manipular a versão %d da codificação GEmblemedIcon"
 
-#: gio/gemblemedicon.c:372
+#: ../gio/gemblemedicon.c:372
 #, c-format
 msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
 msgstr "Número de blocos (%d) mal-formado na codificação GEmblemedIcon"
 
-#: gio/gemblemedicon.c:395
+#: ../gio/gemblemedicon.c:395
 msgid "Expected a GEmblem for GEmblemedIcon"
 msgstr "Esperado um GEmblem para o GEmblemedIcon"
 
-#: gio/gfile.c:1044 gio/gfile.c:1282 gio/gfile.c:1420 gio/gfile.c:1658
-#: gio/gfile.c:1713 gio/gfile.c:1771 gio/gfile.c:1855 gio/gfile.c:1912
-#: gio/gfile.c:1976 gio/gfile.c:2031 gio/gfile.c:3722 gio/gfile.c:3777
-#: gio/gfile.c:4055 gio/gfile.c:4523 gio/gfile.c:4934 gio/gfile.c:5019
-#: gio/gfile.c:5109 gio/gfile.c:5206 gio/gfile.c:5293 gio/gfile.c:5394
-#: gio/gfile.c:8104 gio/gfile.c:8194 gio/gfile.c:8278
-#: gio/win32/gwinhttpfile.c:437
+#: ../gio/gfile.c:969 ../gio/gfile.c:1207 ../gio/gfile.c:1345
+#: ../gio/gfile.c:1583 ../gio/gfile.c:1638 ../gio/gfile.c:1696
+#: ../gio/gfile.c:1780 ../gio/gfile.c:1837 ../gio/gfile.c:1901
+#: ../gio/gfile.c:1956 ../gio/gfile.c:3604 ../gio/gfile.c:3659
+#: ../gio/gfile.c:3895 ../gio/gfile.c:3937 ../gio/gfile.c:4405
+#: ../gio/gfile.c:4816 ../gio/gfile.c:4901 ../gio/gfile.c:4991
+#: ../gio/gfile.c:5088 ../gio/gfile.c:5175 ../gio/gfile.c:5276
+#: ../gio/gfile.c:7817 ../gio/gfile.c:7907 ../gio/gfile.c:7991
+#: ../gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "Operação não suportada"
 
@@ -1517,222 +1331,201 @@ msgstr "Operação não suportada"
 #. * trying to find the enclosing (user visible)
 #. * mount of a file, but none exists.
 #.
-#: gio/gfile.c:1543
+#: ../gio/gfile.c:1468
 msgid "Containing mount does not exist"
 msgstr "Montagem contida não existe"
 
-#: gio/gfile.c:2590 gio/glocalfile.c:2428
-#| msgid "Can't copy over directory"
-msgid "Can’t copy over directory"
-msgstr "Impossível copiar sobre um diretório"
+#: ../gio/gfile.c:2515 ../gio/glocalfile.c:2374
+msgid "Can't copy over directory"
+msgstr "Impossível copiar sobre uma pasta"
 
-#: gio/gfile.c:2650
-#| msgid "Can't copy directory over directory"
-msgid "Can’t copy directory over directory"
+#: ../gio/gfile.c:2575
+msgid "Can't copy directory over directory"
 msgstr "Impossível copiar uma pasta sobre uma pasta"
 
-#: gio/gfile.c:2658
+#: ../gio/gfile.c:2583
 msgid "Target file exists"
 msgstr "Ficheiro de destino já existe"
 
-#: gio/gfile.c:2677
-#| msgid "Can't recursively copy directory"
-msgid "Can’t recursively copy directory"
-msgstr "Impossível copiar diretório recursivamente"
+#: ../gio/gfile.c:2602
+msgid "Can't recursively copy directory"
+msgstr "Impossível copiar pasta recursivamente"
 
-#: gio/gfile.c:2952
+#: ../gio/gfile.c:2884
 msgid "Splice not supported"
 msgstr "Dividir ficheiros não é suportado"
 
-#: gio/gfile.c:2956 gio/gfile.c:3001
+#: ../gio/gfile.c:2888
 #, c-format
 msgid "Error splicing file: %s"
 msgstr "Erro ao dividir o ficheiro: %s"
 
-#: gio/gfile.c:3117
+#: ../gio/gfile.c:3019
 msgid "Copy (reflink/clone) between mounts is not supported"
 msgstr "Copiar (reflink/clonar) entre montados não é suportado"
 
-#: gio/gfile.c:3121
+#: ../gio/gfile.c:3023
 msgid "Copy (reflink/clone) is not supported or invalid"
 msgstr "Copiar (reflink/clonar) não é suportado ou é inválido"
 
-#: gio/gfile.c:3126
-#| msgid "Copy (reflink/clone) is not supported or didn't work"
-msgid "Copy (reflink/clone) is not supported or didn’t work"
+#: ../gio/gfile.c:3028
+msgid "Copy (reflink/clone) is not supported or didn't work"
 msgstr "Copiar (reflink/clonar) não é suportado ou falhou"
 
-#: gio/gfile.c:3190
-#| msgid "Can't copy special file"
-msgid "Can’t copy special file"
+#: ../gio/gfile.c:3091
+msgid "Can't copy special file"
 msgstr "Impossível copiar ficheiro especial"
 
-#: gio/gfile.c:4003
+#: ../gio/gfile.c:3885
 msgid "Invalid symlink value given"
 msgstr "Dado um valor de ligação simbólica inválida"
 
-#: gio/gfile.c:4013 glib/gfileutils.c:2172
-msgid "Symbolic links not supported"
-msgstr "Ligações simbólicas não são suportadas"
-
-#: gio/gfile.c:4164
+#: ../gio/gfile.c:4046
 msgid "Trash not supported"
 msgstr "Não existe suporte para o lixo"
 
-#: gio/gfile.c:4276
+#: ../gio/gfile.c:4158
 #, c-format
-#| msgid "File names cannot contain '%c'"
-msgid "File names cannot contain “%c”"
-msgstr "Nomes de ficheiros não podem conter “%c”"
+msgid "File names cannot contain '%c'"
+msgstr "Nomes de ficheiros não podem conter \"%c\""
 
-#: gio/gfile.c:6757 gio/gvolume.c:364
-#| msgid "volume doesn't implement mount"
-msgid "volume doesn’t implement mount"
+#: ../gio/gfile.c:6604 ../gio/gvolume.c:363
+msgid "volume doesn't implement mount"
 msgstr "unidade não implementa a montagem"
 
-#: gio/gfile.c:6871 gio/gfile.c:6919
+#: ../gio/gfile.c:6713
 msgid "No application is registered as handling this file"
 msgstr "Não existe nenhuma aplicação registada para gerir este ficheiro"
 
-#: gio/gfileenumerator.c:212
+#: ../gio/gfileenumerator.c:212
 msgid "Enumerator is closed"
 msgstr "Enumerador está fechado"
 
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: ../gio/gfileenumerator.c:219 ../gio/gfileenumerator.c:278
+#: ../gio/gfileenumerator.c:377 ../gio/gfileenumerator.c:476
 msgid "File enumerator has outstanding operation"
 msgstr "Enumerador de ficheiro tem uma operação por terminar"
 
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: ../gio/gfileenumerator.c:368 ../gio/gfileenumerator.c:467
 msgid "File enumerator is already closed"
 msgstr "Enumerador de ficheiro já está fechado"
 
-#: gio/gfileicon.c:236
+#: ../gio/gfileicon.c:236
 #, c-format
-#| msgid "Can't handle version %d of GFileIcon encoding"
-msgid "Can’t handle version %d of GFileIcon encoding"
+msgid "Can't handle version %d of GFileIcon encoding"
 msgstr "Impossível manipular a versão %d da codificação GFileIcon"
 
-#: gio/gfileicon.c:246
+#: ../gio/gfileicon.c:246
 msgid "Malformed input data for GFileIcon"
 msgstr "Dados de entrada mal-formados para o GFileIcon"
 
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
-#| msgid "Stream doesn't support query_info"
-msgid "Stream doesn’t support query_info"
+#: ../gio/gfileinputstream.c:149 ../gio/gfileinputstream.c:394
+#: ../gio/gfileiostream.c:167 ../gio/gfileoutputstream.c:164
+#: ../gio/gfileoutputstream.c:497
+msgid "Stream doesn't support query_info"
 msgstr "Fluxo não suporta query_info"
 
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: ../gio/gfileinputstream.c:325 ../gio/gfileiostream.c:379
+#: ../gio/gfileoutputstream.c:371
 msgid "Seek not supported on stream"
 msgstr "Fluxo não suporta procura"
 
-#: gio/gfileinputstream.c:369
+#: ../gio/gfileinputstream.c:369
 msgid "Truncate not allowed on input stream"
 msgstr "Fluxo de entrada não permite truncar"
 
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: ../gio/gfileiostream.c:455 ../gio/gfileoutputstream.c:447
 msgid "Truncate not supported on stream"
 msgstr "Fluxo não suporta truncar"
 
-#: gio/ghttpproxy.c:91 gio/gresolver.c:443 gio/gresolver.c:595
-#: glib/gconvert.c:1777
-msgid "Invalid hostname"
-msgstr "Nome de máquina inválido"
-
-#: gio/ghttpproxy.c:143
+#: ../gio/ghttpproxy.c:136
 msgid "Bad HTTP proxy reply"
 msgstr "Resposta do proxy HTTP incorreta"
 
-#: gio/ghttpproxy.c:159
+#: ../gio/ghttpproxy.c:152
 msgid "HTTP proxy connection not allowed"
 msgstr "Ligação de proxy HTTP não permitida"
 
-#: gio/ghttpproxy.c:164
+#: ../gio/ghttpproxy.c:157
 msgid "HTTP proxy authentication failed"
 msgstr "Autenticação no proxy HTTP falhou"
 
-#: gio/ghttpproxy.c:167
+#: ../gio/ghttpproxy.c:160
 msgid "HTTP proxy authentication required"
 msgstr "Autenticação no proxy HTTP requerida"
 
-#: gio/ghttpproxy.c:171
+#: ../gio/ghttpproxy.c:164
 #, c-format
 msgid "HTTP proxy connection failed: %i"
 msgstr "Ligação de proxy HTTP falhou: %i"
 
-#: gio/ghttpproxy.c:269
+#: ../gio/ghttpproxy.c:260
 msgid "HTTP proxy server closed connection unexpectedly."
 msgstr "O servidor proxy HTTP fechou a ligação inesperadamente."
 
-#: gio/gicon.c:298
+#: ../gio/gicon.c:290
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr "Número incorreto de blocos (%d)"
 
-#: gio/gicon.c:318
+#: ../gio/gicon.c:310
 #, c-format
 msgid "No type for class name %s"
 msgstr "Nenhum tipo para o nome da classe %s"
 
-#: gio/gicon.c:328
+#: ../gio/gicon.c:320
 #, c-format
 msgid "Type %s does not implement the GIcon interface"
 msgstr "O tipo %s não implementa o ambiente GIcon"
 
-#: gio/gicon.c:339
+#: ../gio/gicon.c:331
 #, c-format
 msgid "Type %s is not classed"
 msgstr "O tipo %s não possui uma classe"
 
-#: gio/gicon.c:353
+#: ../gio/gicon.c:345
 #, c-format
 msgid "Malformed version number: %s"
 msgstr "Número de versão mal-formado: %s"
 
-#: gio/gicon.c:367
+#: ../gio/gicon.c:359
 #, c-format
 msgid "Type %s does not implement from_tokens() on the GIcon interface"
 msgstr "O tipo %s não implementa from_tokens() no ambiente GIcon"
 
-#: gio/gicon.c:469
-#| msgid "Can't handle the supplied version of the icon encoding"
-msgid "Can’t handle the supplied version of the icon encoding"
+#: ../gio/gicon.c:461
+msgid "Can't handle the supplied version of the icon encoding"
 msgstr "Impossível manipular a versão especificada da codificação do ícone"
 
-#: gio/ginetaddressmask.c:182
+#: ../gio/ginetaddressmask.c:182
 msgid "No address specified"
 msgstr "Nenhum endereço especificado"
 
-#: gio/ginetaddressmask.c:190
+#: ../gio/ginetaddressmask.c:190
 #, c-format
 msgid "Length %u is too long for address"
 msgstr "Comprimento %u é demasiado extenso para um endereço"
 
-#: gio/ginetaddressmask.c:223
+#: ../gio/ginetaddressmask.c:223
 msgid "Address has bits set beyond prefix length"
 msgstr "Endereço tem bits definidos para lá do comprimento do prefixo"
 
-#: gio/ginetaddressmask.c:300
+#: ../gio/ginetaddressmask.c:300
 #, c-format
-#| msgid "Could not parse '%s' as IP address mask"
-msgid "Could not parse “%s” as IP address mask"
-msgstr "Impossível processar “%s” como a máscara de endereço IP"
+msgid "Could not parse '%s' as IP address mask"
+msgstr "Impossível processar \"%s\" como a máscara do endereço IP"
 
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:220
+#: ../gio/ginetsocketaddress.c:203 ../gio/ginetsocketaddress.c:220
+#: ../gio/gnativesocketaddress.c:106 ../gio/gunixsocketaddress.c:216
 msgid "Not enough space for socket address"
 msgstr "Espaço insuficiente para o endereço do socket"
 
-#: gio/ginetsocketaddress.c:235
+#: ../gio/ginetsocketaddress.c:235
 msgid "Unsupported socket address"
 msgstr "Endereço de socket não suportado"
 
-#: gio/ginputstream.c:188
-#| msgid "Input stream doesn't implement read"
-msgid "Input stream doesn’t implement read"
+#: ../gio/ginputstream.c:188
+msgid "Input stream doesn't implement read"
 msgstr "Fluxo de entrada não implementa a leitura"
 
 #. Translators: This is an error you get if there is already an
@@ -1741,124 +1534,121 @@ msgstr "Fluxo de entrada não implementa a leitura"
 #. Translators: This is an error you get if there is
 #. * already an operation running against this stream when
 #. * you try to start one
-#: gio/ginputstream.c:1218 gio/giostream.c:310 gio/goutputstream.c:2208
+#: ../gio/ginputstream.c:1218 ../gio/giostream.c:310
+#: ../gio/goutputstream.c:1670
 msgid "Stream has outstanding operation"
 msgstr "Fluxo tem uma operação por terminar"
 
-#: gio/gio-tool.c:160
+#: ../gio/gio-tool.c:142
 msgid "Copy with file"
 msgstr "Copiar com ficheiro"
 
-#: gio/gio-tool.c:164
+#: ../gio/gio-tool.c:146
 msgid "Keep with file when moved"
 msgstr "Manter com o ficheiro depois de mover"
 
-#: gio/gio-tool.c:205
-#| msgid "'version' takes no arguments"
-msgid "“version” takes no arguments"
-msgstr "“versão” não recebe argumentos"
+#: ../gio/gio-tool.c:187
+msgid "'version' takes no arguments"
+msgstr "\"versão\" não recebe argumentos"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:864
+#: ../gio/gio-tool.c:189 ../gio/gio-tool.c:205 ../glib/goption.c:857
 msgid "Usage:"
 msgstr "Utilização:"
 
-#: gio/gio-tool.c:210
+#: ../gio/gio-tool.c:192
 msgid "Print version information and exit."
 msgstr "Imprimir informação de versão e sair."
 
-#: gio/gio-tool.c:226
+#: ../gio/gio-tool.c:208
 msgid "Commands:"
 msgstr "Comandos:"
 
-#: gio/gio-tool.c:229
+#: ../gio/gio-tool.c:211
 msgid "Concatenate files to standard output"
 msgstr "Concatenar ficheiros para a saída pre-definida"
 
-#: gio/gio-tool.c:230
+#: ../gio/gio-tool.c:212
 msgid "Copy one or more files"
 msgstr "Copiar um ou mais ficheiros"
 
-#: gio/gio-tool.c:231
+#: ../gio/gio-tool.c:213
 msgid "Show information about locations"
 msgstr "Mostrar informação sobre as localizações"
 
-#: gio/gio-tool.c:232
+#: ../gio/gio-tool.c:214
 msgid "List the contents of locations"
 msgstr "Lista de conteúdos das localizações"
 
-#: gio/gio-tool.c:233
+#: ../gio/gio-tool.c:215
 msgid "Get or set the handler for a mimetype"
 msgstr "Obter ou definir o manuseador mimetype"
 
-#: gio/gio-tool.c:234
+#: ../gio/gio-tool.c:216
 msgid "Create directories"
 msgstr "Criar diretórios"
 
-#: gio/gio-tool.c:235
+#: ../gio/gio-tool.c:217
 msgid "Monitor files and directories for changes"
 msgstr "Monitorizar ficheiros e diretórios por mudanças"
 
-#: gio/gio-tool.c:236
+#: ../gio/gio-tool.c:218
 msgid "Mount or unmount the locations"
 msgstr "Montar ou desmontar as localizações"
 
-#: gio/gio-tool.c:237
+#: ../gio/gio-tool.c:219
 msgid "Move one or more files"
 msgstr "Mover um ou mais ficheiros"
 
-#: gio/gio-tool.c:238
+#: ../gio/gio-tool.c:220
 msgid "Open files with the default application"
 msgstr "Abrir ficheiros com a aplicação pré-definida"
 
-#: gio/gio-tool.c:239
+#: ../gio/gio-tool.c:221
 msgid "Rename a file"
 msgstr "Renomear um ficheiro"
 
-#: gio/gio-tool.c:240
+#: ../gio/gio-tool.c:222
 msgid "Delete one or more files"
 msgstr "Apagar um ou mais ficheiros"
 
-#: gio/gio-tool.c:241
+#: ../gio/gio-tool.c:223
 msgid "Read from standard input and save"
 msgstr "Ler da entrada padrão e guardar"
 
-#: gio/gio-tool.c:242
+#: ../gio/gio-tool.c:224
 msgid "Set a file attribute"
 msgstr "Definir um atributo de ficheiro"
 
-#: gio/gio-tool.c:243
+#: ../gio/gio-tool.c:225
 msgid "Move files or directories to the trash"
 msgstr "Mover ficheiros ou diretórios para o lixo"
 
-#: gio/gio-tool.c:244
+#: ../gio/gio-tool.c:226
 msgid "Lists the contents of locations in a tree"
 msgstr "Listar os conteúdos das localizações numa árvore"
 
-#: gio/gio-tool.c:246
+#: ../gio/gio-tool.c:228
 #, c-format
 msgid "Use %s to get detailed help.\n"
 msgstr "Utilizar %s para obter ajuda detalhada.\n"
 
-#: gio/gio-tool-cat.c:87
-#| msgid "Error writing to file: %s"
-msgid "Error writing to stdout"
-msgstr "Erro ao escrever no stdout"
-
 #. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:333 gio/gio-tool-list.c:172
-#: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
-#: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:203 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
-#: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:89
-#: gio/gio-tool-trash.c:81 gio/gio-tool-tree.c:239
+#: ../gio/gio-tool-cat.c:124 ../gio/gio-tool-info.c:278
+#: ../gio/gio-tool-list.c:165 ../gio/gio-tool-mkdir.c:48
+#: ../gio/gio-tool-monitor.c:37 ../gio/gio-tool-monitor.c:39
+#: ../gio/gio-tool-monitor.c:41 ../gio/gio-tool-monitor.c:43
+#: ../gio/gio-tool-monitor.c:202 ../gio/gio-tool-mount.c:1132
+#: ../gio/gio-tool-open.c:45 ../gio/gio-tool-remove.c:48
+#: ../gio/gio-tool-rename.c:45 ../gio/gio-tool-set.c:89
+#: ../gio/gio-tool-trash.c:81 ../gio/gio-tool-tree.c:239
 msgid "LOCATION"
 msgstr "LOCALIZAÇÃO"
 
-#: gio/gio-tool-cat.c:138
+#: ../gio/gio-tool-cat.c:129
 msgid "Concatenate files and print to standard output."
 msgstr "Concatenar ficheiros e imprimir para a saída padrão."
 
-#: gio/gio-tool-cat.c:140
+#: ../gio/gio-tool-cat.c:131
 msgid ""
 "gio cat works just like the traditional cat utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
@@ -1866,231 +1656,206 @@ msgid ""
 msgstr ""
 "gio cat funciona como uma utilidade tradicional de cat, mas \n"
 "utilizando localizações GIO em vez de ficheiros locais: por exemplo\n"
-"pode utilizar smb://server/resource/ficheiro.txt como localização"
+"pode utilizar algo como localização smb://server/resource/ficheiro.txt"
 
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:364 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
-msgid "No locations given"
-msgstr "Nenhuma localização fornecida"
+#: ../gio/gio-tool-cat.c:151
+msgid "No files given"
+msgstr "Nenhum ficheiro oferecido"
 
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
+#: ../gio/gio-tool-copy.c:42 ../gio/gio-tool-move.c:38
 msgid "No target directory"
 msgstr "Nenhum diretório destino"
 
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
+#: ../gio/gio-tool-copy.c:43 ../gio/gio-tool-move.c:39
 msgid "Show progress"
 msgstr "Mostrar progresso"
 
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#: ../gio/gio-tool-copy.c:44 ../gio/gio-tool-move.c:40
 msgid "Prompt before overwrite"
 msgstr "Pedir confirmação antes de sobrescrever"
 
-#: gio/gio-tool-copy.c:46
+#: ../gio/gio-tool-copy.c:45
 msgid "Preserve all attributes"
 msgstr "Preservar todos os atributos"
 
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: ../gio/gio-tool-copy.c:46 ../gio/gio-tool-move.c:41
+#: ../gio/gio-tool-save.c:49
 msgid "Backup existing destination files"
 msgstr "Criar cópia de segurança dos ficheiros existentes do destino"
 
-#: gio/gio-tool-copy.c:48
+#: ../gio/gio-tool-copy.c:47
 msgid "Never follow symbolic links"
 msgstr "Nunca seguir ligações simbólicas"
 
-#: gio/gio-tool-copy.c:49
-msgid "Use default permissions for the destination"
-msgstr "Usar permissões predefinidas para o destino"
-
-#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
+#: ../gio/gio-tool-copy.c:72 ../gio/gio-tool-move.c:67
 #, c-format
 msgid "Transferred %s out of %s (%s/s)"
 msgstr "Transferido %s de %s (%s/s)"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
+#: ../gio/gio-tool-copy.c:98 ../gio/gio-tool-move.c:94
 msgid "SOURCE"
 msgstr "FONTE"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
+#: ../gio/gio-tool-copy.c:98 ../gio/gio-tool-move.c:94
+#: ../gio/gio-tool-save.c:165
 msgid "DESTINATION"
 msgstr "DESTINO"
 
-#: gio/gio-tool-copy.c:105
+#: ../gio/gio-tool-copy.c:103
 msgid "Copy one or more files from SOURCE to DESTINATION."
 msgstr "Copiar um ou mais ficheiros da FONTE para o DESTINO"
 
-#: gio/gio-tool-copy.c:107
+#: ../gio/gio-tool-copy.c:105
 msgid ""
 "gio copy is similar to the traditional cp utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/file.txt as location."
 msgstr ""
-"gio copy é similar ao tradicional utilitário cp, mas usa localizações \n"
-"GIO ao invés de ficheiros locais: a exemplo, pode usar algo feito \n"
-"smb://server/resource/file.txt como localização."
 
-#: gio/gio-tool-copy.c:149
+#: ../gio/gio-tool-copy.c:143
 #, c-format
 msgid "Destination %s is not a directory"
 msgstr "Destino %s\" não é um diretório"
 
-#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
+#: ../gio/gio-tool-copy.c:187 ../gio/gio-tool-move.c:181
 #, c-format
-#| msgid "%s: overwrite '%s'? "
-msgid "%s: overwrite “%s”? "
-msgstr "%s: sobrescrever“%s”?"
+msgid "%s: overwrite '%s'? "
+msgstr "%s: sobrescrever %s?"
 
-#: gio/gio-tool-info.c:37
+#: ../gio/gio-tool-info.c:34
 msgid "List writable attributes"
 msgstr "Listar atributos que podem ser escritos"
 
-#: gio/gio-tool-info.c:38
+#: ../gio/gio-tool-info.c:35
 msgid "Get file system info"
 msgstr "Obter informação do sistema de ficheiros"
 
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "The attributes to get"
 msgstr "Os atributos a obter"
 
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "ATTRIBUTES"
 msgstr "ATRIBUTOS"
 
-#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
-#| msgid "Don't follow symbolic links"
-msgid "Don’t follow symbolic links"
+#: ../gio/gio-tool-info.c:37 ../gio/gio-tool-list.c:38 ../gio/gio-tool-set.c:34
+msgid "Don't follow symbolic links"
 msgstr "Não seguir ligações simbólicas"
 
-#: gio/gio-tool-info.c:78
+#: ../gio/gio-tool-info.c:75
+#, c-format
 msgid "attributes:\n"
 msgstr "atributos:\n"
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:134
+#: ../gio/gio-tool-info.c:127
 #, c-format
 msgid "display name: %s\n"
 msgstr "nome de apresentação: %s\n"
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:139
+#: ../gio/gio-tool-info.c:132
 #, c-format
 msgid "edit name: %s\n"
 msgstr "nome de edição: %s\n"
 
-#: gio/gio-tool-info.c:145
+#: ../gio/gio-tool-info.c:138
 #, c-format
 msgid "name: %s\n"
 msgstr "nome: %s\n"
 
-#: gio/gio-tool-info.c:152
+#: ../gio/gio-tool-info.c:145
 #, c-format
 msgid "type: %s\n"
 msgstr "tipo: %s\n"
 
-#: gio/gio-tool-info.c:158
+#: ../gio/gio-tool-info.c:151
+#, c-format
 msgid "size: "
 msgstr "tamanho:"
 
-#: gio/gio-tool-info.c:163
+#: ../gio/gio-tool-info.c:156
+#, c-format
 msgid "hidden\n"
 msgstr "escondido\n"
 
-#: gio/gio-tool-info.c:166
+#: ../gio/gio-tool-info.c:159
 #, c-format
 msgid "uri: %s\n"
 msgstr "uri: %s\n"
 
-#: gio/gio-tool-info.c:172
+#: ../gio/gio-tool-info.c:221
 #, c-format
-msgid "local path: %s\n"
-msgstr "caminho local: %s\n"
+msgid "Error getting writable attributes: %s\n"
+msgstr "Erro ao definir atributos que podem ser escritos: %s\n"
 
-#: gio/gio-tool-info.c:199
+#: ../gio/gio-tool-info.c:226
 #, c-format
-msgid "unix mount: %s%s %s %s %s\n"
-msgstr "montagem unix: %s%s %s %s %s\n"
-
-#: gio/gio-tool-info.c:279
 msgid "Settable attributes:\n"
 msgstr "Atributos definíveis:\n"
 
-#: gio/gio-tool-info.c:303
+#: ../gio/gio-tool-info.c:249
+#, c-format
 msgid "Writable attribute namespaces:\n"
-msgstr "Espaço de nomes de atributos graváveis:\n"
+msgstr ""
 
-#: gio/gio-tool-info.c:338
+#: ../gio/gio-tool-info.c:283
 msgid "Show information about locations."
 msgstr "Mostrar informação sobre as localizações."
 
-#: gio/gio-tool-info.c:340
-#| msgid ""
-#| "gio cat works just like the traditional cat utility, but using GIO\n"
-#| "locations instead of local files: for example, you can use something\n"
-#| "like smb://server/resource/file.txt as location."
+#: ../gio/gio-tool-info.c:285
 msgid ""
 "gio info is similar to the traditional ls utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/file.txt as location. File attributes can\n"
 "be specified with their GIO name, e.g. standard::icon, or just by\n"
-"namespace, e.g. unix, or by “*”, which matches all attributes"
+"namespace, e.g. unix, or by '*', which matches all attributes"
 msgstr ""
-"gio info funciona como uma utilidade tradicional de ls, mas \n"
-"utilizando localizações GIO em vez de ficheiros locais: por exemplo\n"
-"pode utilizar smb://server/resource/file.txt como localização. \n"
-"Os atributos de ficheiros podem ser especificados com seus nomes GIO,\n"
-"exp. standard::icon, ou só o espaço de nome, exp. unix, ou com “*”,\n"
-"que corresponde a todos os atributos"
 
-#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
+#: ../gio/gio-tool-info.c:307 ../gio/gio-tool-mkdir.c:74
+msgid "No locations given"
+msgstr "Nenhuma localização fornecida"
+
+#: ../gio/gio-tool-list.c:36 ../gio/gio-tool-tree.c:32
 msgid "Show hidden files"
 msgstr "Mostrar ficheiros escondidos"
 
-#: gio/gio-tool-list.c:38
+#: ../gio/gio-tool-list.c:37
 msgid "Use a long listing format"
 msgstr "Utilizar um formato de lista longa"
 
-#: gio/gio-tool-list.c:40
-#| msgid "display name: %s\n"
-msgid "Print display names"
-msgstr "Imprimir os nomes de apresentação"
-
-#: gio/gio-tool-list.c:41
+#: ../gio/gio-tool-list.c:39
 msgid "Print full URIs"
 msgstr "Imprimir URIs completos"
 
-#: gio/gio-tool-list.c:177
+#: ../gio/gio-tool-list.c:170
 msgid "List the contents of the locations."
 msgstr "Lista de conteúdos das localizações."
 
-#: gio/gio-tool-list.c:179
+#: ../gio/gio-tool-list.c:172
 msgid ""
 "gio list is similar to the traditional ls utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/file.txt as location. File attributes can\n"
 "be specified with their GIO name, e.g. standard::icon"
 msgstr ""
-"gio list funciona como uma utilidade tradicional de ls, mas\n"
-"utilizando localizações GIO em vez de ficheiros locais: a\n"
-"exemplo, pode usar smb://server/resource/file.txt como\n"
-"localização. Os atributos de ficheiro podem ser especificados\n"
-"com seus nomes GIO,ex. standard::icon"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "MIMETYPE"
 msgstr "MIMETYPE"
 
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "HANDLER"
 msgstr "MANUSEADOR"
 
-#: gio/gio-tool-mime.c:76
+#: ../gio/gio-tool-mime.c:76
 msgid "Get or set the handler for a mimetype."
 msgstr "Obter ou definir o manuseador do mimetype."
 
-#: gio/gio-tool-mime.c:78
+#: ../gio/gio-tool-mime.c:78
 msgid ""
 "If no handler is given, lists registered and recommended applications\n"
 "for the mimetype. If a handler is given, it is set as the default\n"
@@ -2100,220 +1865,209 @@ msgstr ""
 " recomendadas para o mimetype. Se o manuseador for fornecido, é \n"
 "definido como o manuseador padrão para o mimetype."
 
-#: gio/gio-tool-mime.c:100
+#: ../gio/gio-tool-mime.c:98
 msgid "Must specify a single mimetype, and maybe a handler"
 msgstr "Tem de especificar apenas um mimetype, e possivelmente um manuseador"
 
-#: gio/gio-tool-mime.c:116
+#: ../gio/gio-tool-mime.c:113
 #, c-format
-#| msgid "No default applications for '%s'\n"
-msgid "No default applications for “%s”\n"
-msgstr "Nenhuma aplicação predefinida para “%s”\n"
+msgid "No default applications for '%s'\n"
+msgstr "Nenhuma aplicação predefinida para \"%s\"\n"
 
-#: gio/gio-tool-mime.c:122
+#: ../gio/gio-tool-mime.c:119
 #, c-format
-#| msgid "Default application for '%s': %s\n"
-msgid "Default application for “%s”: %s\n"
-msgstr "Aplicação predefinida para “%s”:%s\n"
+msgid "Default application for '%s': %s\n"
+msgstr "Aplicação predefinida para \"%s\":%s\n"
 
-#: gio/gio-tool-mime.c:127
+#: ../gio/gio-tool-mime.c:124
+#, c-format
 msgid "Registered applications:\n"
 msgstr "Aplicações registadas:\n"
 
-#: gio/gio-tool-mime.c:129
+#: ../gio/gio-tool-mime.c:126
+#, c-format
 msgid "No registered applications\n"
 msgstr "Nenhuma aplicação registada\n"
 
-#: gio/gio-tool-mime.c:140
+#: ../gio/gio-tool-mime.c:137
+#, c-format
 msgid "Recommended applications:\n"
 msgstr "Aplicações recomendadas:\n"
 
-#: gio/gio-tool-mime.c:142
+#: ../gio/gio-tool-mime.c:139
+#, c-format
 msgid "No recommended applications\n"
 msgstr "Nenhuma aplicação recomendada\n"
 
-#: gio/gio-tool-mime.c:162
+#: ../gio/gio-tool-mime.c:159
 #, c-format
-#| msgid "Failed to load info for handler '%s'\n"
-msgid "Failed to load info for handler “%s”"
-msgstr "Falha ao ler informação do gestor “%s”"
+msgid "Failed to load info for handler '%s'\n"
+msgstr "Falha ao ler informação do manuseador \"%s\"\n"
 
-#: gio/gio-tool-mime.c:168
+#: ../gio/gio-tool-mime.c:165
 #, c-format
-#| msgid "Failed to set '%s' as the default handler for '%s': %s\n"
-msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
-msgstr "Falha ao definir “%s” como gestor predefinido para “%s”: %s\n"
+msgid "Failed to set '%s' as the default handler for '%s': %s\n"
+msgstr "Falha ao definir \"%s\" como manuseador predefinido para \"%s\": %s\n"
 
-#: gio/gio-tool-mkdir.c:31
+#: ../gio/gio-tool-mkdir.c:31
 msgid "Create parent directories"
 msgstr "Criar diretórios pai"
 
-#: gio/gio-tool-mkdir.c:52
+#: ../gio/gio-tool-mkdir.c:52
 msgid "Create directories."
 msgstr "Criar diretórios."
 
-#: gio/gio-tool-mkdir.c:54
+#: ../gio/gio-tool-mkdir.c:54
 msgid ""
 "gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/mydir as location."
 msgstr ""
-"gio mkdir funciona como o utilitário tradicional mkdir, mas usando\n"
-"localizações GIO  mas utilizando localizações GIO em vez de ficheiros\n"
-"locais: a exemplo, pode usar smb://server/resource/mydir como localização."
 
-#: gio/gio-tool-monitor.c:37
+#: ../gio/gio-tool-monitor.c:37
 msgid "Monitor a directory (default: depends on type)"
 msgstr "Monitorizar um diretório (predefinição: depende do tipo)"
 
-#: gio/gio-tool-monitor.c:39
+#: ../gio/gio-tool-monitor.c:39
 msgid "Monitor a file (default: depends on type)"
 msgstr "Monitorizar um ficheiro (predefinição: depende do tipo)"
 
-#: gio/gio-tool-monitor.c:41
+#: ../gio/gio-tool-monitor.c:41
 msgid "Monitor a file directly (notices changes made via hardlinks)"
 msgstr ""
 "Monitorizar um ficheiro diretamente (nota as alterações feitas por via de "
 "hardlinks)"
 
-#: gio/gio-tool-monitor.c:43
-#| msgid "Monitors a file directly, but doesn't report changes"
-msgid "Monitors a file directly, but doesn’t report changes"
-msgstr "Monitoriza um ficheiro diretamente, mas não reporta as mudanças"
+#: ../gio/gio-tool-monitor.c:43
+msgid "Monitors a file directly, but doesn't report changes"
+msgstr "Monitorizar um ficheiro, mas não reporta as mudanças"
 
-#: gio/gio-tool-monitor.c:45
+#: ../gio/gio-tool-monitor.c:45
 msgid "Report moves and renames as simple deleted/created events"
 msgstr "Reporta as mudanças e renomeia como apenas eventos apagados/criados"
 
-#: gio/gio-tool-monitor.c:47
+#: ../gio/gio-tool-monitor.c:47
 msgid "Watch for mount events"
 msgstr "Observar eventos montados"
 
-#: gio/gio-tool-monitor.c:208
+#: ../gio/gio-tool-monitor.c:207
 msgid "Monitor files or directories for changes."
 msgstr "Monitorizar ficheiros ou diretórios por alterações."
 
-#: gio/gio-tool-mount.c:63
+#: ../gio/gio-tool-mount.c:58
 msgid "Mount as mountable"
 msgstr "Montar como montável"
 
-#: gio/gio-tool-mount.c:64
-#| msgid "Mount volume with device file"
-msgid "Mount volume with device file, or other identifier"
-msgstr "Montar unidade com ficheiro de dispositivo, ou outro identificador"
+#: ../gio/gio-tool-mount.c:59
+msgid "Mount volume with device file"
+msgstr "Montar volume como ficheiro de dispositivo"
 
-#: gio/gio-tool-mount.c:64
-msgid "ID"
-msgstr "ID"
+#: ../gio/gio-tool-mount.c:59
+msgid "DEVICE"
+msgstr "DISPOSITIVO"
 
-#: gio/gio-tool-mount.c:65
+#: ../gio/gio-tool-mount.c:60
 msgid "Unmount"
 msgstr "Desmontar"
 
-#: gio/gio-tool-mount.c:66
+#: ../gio/gio-tool-mount.c:61
 msgid "Eject"
 msgstr "Ejetar"
 
-#: gio/gio-tool-mount.c:67
-#| msgid "Mount volume with device file"
-msgid "Stop drive with device file"
-msgstr "Parar unidade com ficheiro de dispositivo"
-
-#: gio/gio-tool-mount.c:67
-msgid "DEVICE"
-msgstr "DISPOSITIVO"
-
-#: gio/gio-tool-mount.c:68
+#: ../gio/gio-tool-mount.c:62
 msgid "Unmount all mounts with the given scheme"
 msgstr "Desmontar todas as montagens com um dado esquema"
 
-#: gio/gio-tool-mount.c:68
+#: ../gio/gio-tool-mount.c:62
 msgid "SCHEME"
 msgstr "ESQUEMA"
 
-#: gio/gio-tool-mount.c:69
+#: ../gio/gio-tool-mount.c:63
 msgid "Ignore outstanding file operations when unmounting or ejecting"
 msgstr "Ignorar operações de ficheiros pendentes quando desmontar ou ejetar"
 
-#: gio/gio-tool-mount.c:70
+#: ../gio/gio-tool-mount.c:64
 msgid "Use an anonymous user when authenticating"
 msgstr "Utilizar um utilizador anónimo quando autenticar"
 
 #. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: ../gio/gio-tool-mount.c:66
 msgid "List"
 msgstr "Listar"
 
-#: gio/gio-tool-mount.c:73
+#: ../gio/gio-tool-mount.c:67
 msgid "Monitor events"
 msgstr "Monitorizar eventos"
 
-#: gio/gio-tool-mount.c:74
+#: ../gio/gio-tool-mount.c:68
 msgid "Show extra information"
 msgstr "Mostrar informação extra"
 
-#: gio/gio-tool-mount.c:75
-msgid "The numeric PIM when unlocking a VeraCrypt volume"
-msgstr "O PIM numérico quando desbloquear uma unidade VeraCrypt"
+#: ../gio/gio-tool-mount.c:246 ../gio/gio-tool-mount.c:276
+#, c-format
+msgid "Error mounting location: Anonymous access denied\n"
+msgstr "Erro a montar localização: Acesso anónimo negado\n"
+
+#: ../gio/gio-tool-mount.c:248 ../gio/gio-tool-mount.c:278
+#, c-format
+msgid "Error mounting location: %s\n"
+msgstr "Erro a montar localização: %s\n"
 
-#: gio/gio-tool-mount.c:75
-#| msgctxt "GDateTime"
-#| msgid "PM"
-msgid "PIM"
-msgstr "PIM"
+#: ../gio/gio-tool-mount.c:341
+#, c-format
+msgid "Error unmounting mount: %s\n"
+msgstr "Erro a desmontar montagem: %s\n"
 
-#: gio/gio-tool-mount.c:76
-msgid "Mount a TCRYPT hidden volume"
-msgstr "Montar uma unidade TCRYPT oculta"
+#: ../gio/gio-tool-mount.c:366 ../gio/gio-tool-mount.c:419
+#, c-format
+msgid "Error finding enclosing mount: %s\n"
+msgstr "Erro a encontrar montagem fechada: %s\n"
 
-#: gio/gio-tool-mount.c:77
-msgid "Mount a TCRYPT system volume"
-msgstr "Montar uma unidade TCRYPT de sistema"
+#: ../gio/gio-tool-mount.c:394
+#, c-format
+msgid "Error ejecting mount: %s\n"
+msgstr "Erro a ejetar montagem: %s\n"
 
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
-#| msgid "Error mounting location: Anonymous access denied\n"
-msgid "Anonymous access denied"
-msgstr "Acesso anónimo negado"
+#: ../gio/gio-tool-mount.c:875
+#, c-format
+msgid "Error mounting %s: %s\n"
+msgstr "Erro a montar %s: %s\n"
 
-#: gio/gio-tool-mount.c:522
-#| msgid "No volume for device file %s\n"
-msgid "No drive for device file"
-msgstr "Nenhum volume para o ficheiro de dispositivo"
+#: ../gio/gio-tool-mount.c:891
+#, c-format
+msgid "Mounted %s at %s\n"
+msgstr "Montar %s em %s\n"
 
-#: gio/gio-tool-mount.c:1014
-#| msgid "No volume for device file %s\n"
-msgid "No volume for given ID"
-msgstr "Nenhum volume para o dado ID"
+#: ../gio/gio-tool-mount.c:941
+#, c-format
+msgid "No volume for device file %s\n"
+msgstr "Nenhum volume para o ficheiro de dispositivo %s\n"
 
-#: gio/gio-tool-mount.c:1203
+#: ../gio/gio-tool-mount.c:1136
 msgid "Mount or unmount the locations."
 msgstr "Montar ou desmontar localizações."
 
-#: gio/gio-tool-move.c:42
-#| msgid "Don't use copy and delete fallback"
-msgid "Don’t use copy and delete fallback"
-msgstr "Não usar copiar e eliminar por omissão"
+#: ../gio/gio-tool-move.c:42
+msgid "Don't use copy and delete fallback"
+msgstr "-utilizar nomes de recurso por omissão"
 
-#: gio/gio-tool-move.c:99
+#: ../gio/gio-tool-move.c:99
 msgid "Move one or more files from SOURCE to DEST."
 msgstr "Mover um ou mais ficheiros de FONTE para DESTINO"
 
-#: gio/gio-tool-move.c:101
+#: ../gio/gio-tool-move.c:101
 msgid ""
 "gio move is similar to the traditional mv utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
 "like smb://server/resource/file.txt as location"
 msgstr ""
-"gio move funciona como o utilitário tradicional mv, mas usando\n"
-"localizações GIO  mas utilizando localizações GIO em vez de ficheiros\n"
-"locais: a exemplo, pode usar smb://server/resource/file.txt como localização."
 
-#: gio/gio-tool-move.c:143
+#: ../gio/gio-tool-move.c:139
 #, c-format
 msgid "Target %s is not a directory"
 msgstr "Alvo %s não é um diretório"
 
-#: gio/gio-tool-open.c:75
+#: ../gio/gio-tool-open.c:50
 msgid ""
 "Open files with the default application that\n"
 "is registered to handle files of this type."
@@ -2321,273 +2075,248 @@ msgstr ""
 "Abrir ficheiros com a aplicação predefinida\n"
 "é registada para manusear ficheiros deste tipo."
 
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:31
+#: ../gio/gio-tool-open.c:69
+msgid "No files to open"
+msgstr "Nenhum ficheiro a abrir"
+
+#: ../gio/gio-tool-remove.c:31 ../gio/gio-tool-trash.c:31
 msgid "Ignore nonexistent files, never prompt"
 msgstr "Ignorar ficheiros inexistentes, sem confirmação"
 
-#: gio/gio-tool-remove.c:52
+#: ../gio/gio-tool-remove.c:52
 msgid "Delete the given files."
 msgstr "Apagar ficheiros fornecidos."
 
-#: gio/gio-tool-rename.c:45
+#: ../gio/gio-tool-remove.c:70
+msgid "No files to delete"
+msgstr "Nenhum ficheiro a apagar"
+
+#: ../gio/gio-tool-rename.c:45
 msgid "NAME"
 msgstr "NOME"
 
-#: gio/gio-tool-rename.c:50
+#: ../gio/gio-tool-rename.c:50
 msgid "Rename a file."
 msgstr "Renomear um ficheiro."
 
-#: gio/gio-tool-rename.c:70
+#: ../gio/gio-tool-rename.c:68
 msgid "Missing argument"
 msgstr "Argumento em falta"
 
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
+#: ../gio/gio-tool-rename.c:73 ../gio/gio-tool-save.c:192
+#: ../gio/gio-tool-set.c:134
 msgid "Too many arguments"
 msgstr "Demasiados argumentos"
 
-#: gio/gio-tool-rename.c:95
+#: ../gio/gio-tool-rename.c:91
 #, c-format
 msgid "Rename successful. New uri: %s\n"
 msgstr "Mudança de nome bem sucedida. Novo uri: %s\n"
 
-#: gio/gio-tool-save.c:50
+#: ../gio/gio-tool-save.c:50
 msgid "Only create if not existing"
 msgstr "Só criar se não existir"
 
-#: gio/gio-tool-save.c:51
+#: ../gio/gio-tool-save.c:51
 msgid "Append to end of file"
 msgstr "Acrescentar ao final do ficheiro"
 
-#: gio/gio-tool-save.c:52
+#: ../gio/gio-tool-save.c:52
 msgid "When creating, restrict access to the current user"
 msgstr "Quando criar, restringir acesso ao utilizador atual"
 
-#: gio/gio-tool-save.c:53
+#: ../gio/gio-tool-save.c:53
 msgid "When replacing, replace as if the destination did not exist"
 msgstr "Quando substituir, substituir como se o destino não existisse."
 
 #. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:55
+#: ../gio/gio-tool-save.c:55
 msgid "Print new etag at end"
 msgstr "Imprimir novo etag no final"
 
 #. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:57
+#: ../gio/gio-tool-save.c:57
 msgid "The etag of the file being overwritten"
 msgstr "O etag do ficheiro a ser sobrescrito"
 
-#: gio/gio-tool-save.c:57
+#: ../gio/gio-tool-save.c:57
 msgid "ETAG"
 msgstr "ETAG"
 
-#: gio/gio-tool-save.c:113
-#| msgid "Error reading from handle: %s"
-msgid "Error reading from standard input"
-msgstr "Erro ao ler da entrada predefinida"
-
 #. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:139
+#: ../gio/gio-tool-save.c:145
+#, c-format
 msgid "Etag not available\n"
 msgstr "Etag não está disponível\n"
 
-#: gio/gio-tool-save.c:163
+#: ../gio/gio-tool-save.c:168
 msgid "Read from standard input and save to DEST."
 msgstr "Ler da entrada predefinida e guardar no DESTINO"
 
-#: gio/gio-tool-save.c:183
+#: ../gio/gio-tool-save.c:186
 msgid "No destination given"
 msgstr "Nenhum destino fornecido"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "Type of the attribute"
 msgstr "Tipo do atributo"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "TYPE"
 msgstr "TIPO"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "ATTRIBUTE"
 msgstr "ATRIBUTO"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "VALUE"
 msgstr "VALOR"
 
-#: gio/gio-tool-set.c:93
+#: ../gio/gio-tool-set.c:93
 msgid "Set a file attribute of LOCATION."
 msgstr "Definir um atributo de ficheiro da LOCALIZAÇÃO."
 
-#: gio/gio-tool-set.c:113
+#: ../gio/gio-tool-set.c:111
 msgid "Location not specified"
 msgstr "Nenhum localização especificada"
 
-#: gio/gio-tool-set.c:120
+#: ../gio/gio-tool-set.c:119
 msgid "Attribute not specified"
 msgstr "Nenhum atributo especificado"
 
-#: gio/gio-tool-set.c:130
+#: ../gio/gio-tool-set.c:128
 msgid "Value not specified"
 msgstr "Valor não especificado"
 
-#: gio/gio-tool-set.c:180
+#: ../gio/gio-tool-set.c:176
 #, c-format
-#| msgid "Invalid attribute type %s\n"
-msgid "Invalid attribute type “%s”"
-msgstr "Tipo de atributo inválido “%s”"
+msgid "Invalid attribute type %s\n"
+msgstr "Tipo de atributo inválido %s\n"
 
-#: gio/gio-tool-trash.c:32
+#: ../gio/gio-tool-set.c:189
+#, c-format
+msgid "Error setting attribute: %s\n"
+msgstr "Erro ao definir o atributo: %s\n"
+
+#: ../gio/gio-tool-trash.c:32
 msgid "Empty the trash"
 msgstr "Esvaziar lixo"
 
-#: gio/gio-tool-trash.c:86
+#: ../gio/gio-tool-trash.c:86
 msgid "Move files or directories to the trash."
 msgstr "Mover ficheiros e diretórios para o lixo."
 
-#: gio/gio-tool-tree.c:33
+#: ../gio/gio-tool-tree.c:33
 msgid "Follow symbolic links, mounts and shortcuts"
 msgstr "Seguir ligações simbólicos, montagens e atalhos"
 
-#: gio/gio-tool-tree.c:244
+#: ../gio/gio-tool-tree.c:244
 msgid "List contents of directories in a tree-like format."
 msgstr "Listar conteúdos de diretórios num formato tipo árvore."
 
-#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
+#: ../gio/glib-compile-resources.c:142 ../gio/glib-compile-schemas.c:1491
 #, c-format
 msgid "Element <%s> not allowed inside <%s>"
 msgstr "Elemento <%s> não é permitido dentro de <%s>"
 
-#: gio/glib-compile-resources.c:144
+#: ../gio/glib-compile-resources.c:146
 #, c-format
 msgid "Element <%s> not allowed at toplevel"
 msgstr "Elemento <%s> não é permitido no nível de topo"
 
-#: gio/glib-compile-resources.c:234
+#: ../gio/glib-compile-resources.c:237
 #, c-format
 msgid "File %s appears multiple times in the resource"
 msgstr "O ficheiro %s surge várias vezes no recurso"
 
-#: gio/glib-compile-resources.c:245
+#: ../gio/glib-compile-resources.c:248
 #, c-format
-#| msgid "Failed to locate '%s' in any source directory"
-msgid "Failed to locate “%s” in any source directory"
-msgstr "Falha ao localizar “%s” em qualquer diretório de origem"
+msgid "Failed to locate '%s' in any source directory"
+msgstr "Falha ao localizar \"%s\" em qualquer pasta de origem"
 
-#: gio/glib-compile-resources.c:256
+#: ../gio/glib-compile-resources.c:259
 #, c-format
-#| msgid "Failed to locate '%s' in current directory"
-msgid "Failed to locate “%s” in current directory"
-msgstr "Falha ao localizar “%s” na diretório atual"
+msgid "Failed to locate '%s' in current directory"
+msgstr "Falha ao localizar \"%s\" na pasta atual"
 
-#: gio/glib-compile-resources.c:290
+#: ../gio/glib-compile-resources.c:290
 #, c-format
-#| msgid "Unknown processing option \"%s\""
-msgid "Unknown processing option “%s”"
-msgstr "Opção de processamento “%s” desconhecida"
+msgid "Unknown processing option \"%s\""
+msgstr "Opção de processamento \"%s\" desconhecida"
 
-#. Translators: the first %s is a gresource XML attribute,
-#. * the second %s is an environment variable, and the third
-#. * %s is a command line tool
-#.
-#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
-#: gio/glib-compile-resources.c:424
+#: ../gio/glib-compile-resources.c:308 ../gio/glib-compile-resources.c:354
 #, c-format
-msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
-msgstr ""
-"pré-processamento %s requisitado, mas %s é indefinido, e %s não está no PATH"
+msgid "Failed to create temp file: %s"
+msgstr "Falha ao criar o ficheiro temporário: %s"
 
-#: gio/glib-compile-resources.c:457
+#: ../gio/glib-compile-resources.c:382
 #, c-format
 msgid "Error reading file %s: %s"
 msgstr "Erro ao ler o ficheiro %s: %s"
 
-#: gio/glib-compile-resources.c:477
+#: ../gio/glib-compile-resources.c:402
 #, c-format
 msgid "Error compressing file %s"
 msgstr "Erro ao comprimir o ficheiro %s"
 
-#: gio/glib-compile-resources.c:541
+#: ../gio/glib-compile-resources.c:469 ../gio/glib-compile-schemas.c:1603
 #, c-format
 msgid "text may not appear inside <%s>"
 msgstr "Não pode surgir texto dentro de <%s>"
 
-#: gio/glib-compile-resources.c:737 gio/glib-compile-schemas.c:2172
-msgid "Show program version and exit"
-msgstr "Mostrar a versão da aplicação e sair"
+#: ../gio/glib-compile-resources.c:620
+msgid "name of the output file"
+msgstr "nome do ficheiro de saída"
 
-#: gio/glib-compile-resources.c:738
-#| msgid "name of the output file"
-msgid "Name of the output file"
-msgstr "Nome do ficheiro de saída"
-
-#: gio/glib-compile-resources.c:739
-#| msgid ""
-#| "The directories where files are to be read from (default to current "
-#| "directory)"
+#: ../gio/glib-compile-resources.c:621
 msgid ""
-"The directories to load files referenced in FILE from (default: current "
+"The directories where files are to be read from (default to current "
 "directory)"
-msgstr ""
-"O diretório de onde ler os ficheiros referenciados no FICHEIRO do "
-"(predefinição: diretório atual)"
+msgstr "A pasta de onde ler os ficheiros (predefinição é a pasta atual)"
 
-#: gio/glib-compile-resources.c:739 gio/glib-compile-schemas.c:2173
-#: gio/glib-compile-schemas.c:2202
+#: ../gio/glib-compile-resources.c:621 ../gio/glib-compile-schemas.c:2036
+#: ../gio/glib-compile-schemas.c:2065
 msgid "DIRECTORY"
 msgstr "PASTA"
 
-#: gio/glib-compile-resources.c:740
+#: ../gio/glib-compile-resources.c:622
 msgid ""
 "Generate output in the format selected for by the target filename extension"
 msgstr ""
 "Gerar o resultado no formato selecionado pela extensão do nome do ficheiro "
 "de saída"
 
-#: gio/glib-compile-resources.c:741
+#: ../gio/glib-compile-resources.c:623
 msgid "Generate source header"
 msgstr "Gerar o cabeçalho de código"
 
-#: gio/glib-compile-resources.c:742
-#| msgid "Generate sourcecode used to link in the resource file into your code"
-msgid "Generate source code used to link in the resource file into your code"
+#: ../gio/glib-compile-resources.c:624
+msgid "Generate sourcecode used to link in the resource file into your code"
 msgstr ""
 "Gerar o código-fonte utilizado para ligar o ficheiro de recurso ao seu código"
 
-#: gio/glib-compile-resources.c:743
+#: ../gio/glib-compile-resources.c:625
 msgid "Generate dependency list"
 msgstr "Gerar lista de dependências"
 
-#: gio/glib-compile-resources.c:744
-#| msgid "name of the dependency file to generate"
-msgid "Name of the dependency file to generate"
-msgstr "Nome do ficheiro de dependência a gerar"
+#: ../gio/glib-compile-resources.c:626
+msgid "name of the dependency file to generate"
+msgstr "nome do ficheiro de depêndencias a gerar"
 
-#: gio/glib-compile-resources.c:745
-msgid "Include phony targets in the generated dependency file"
-msgstr "Incluir alvos falsos no ficheiro de dependência gerado"
-
-#: gio/glib-compile-resources.c:746
-#| msgid "Don't automatically create and register resource"
-msgid "Don’t automatically create and register resource"
+#: ../gio/glib-compile-resources.c:627
+msgid "Don't automatically create and register resource"
 msgstr "Não criar e registar um recurso automaticamente"
 
-#: gio/glib-compile-resources.c:747
-#| msgid "Don't export functions; declare them G_GNUC_INTERNAL"
-msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
+#: ../gio/glib-compile-resources.c:628
+msgid "Don't export functions; declare them G_GNUC_INTERNAL"
 msgstr "Não exportar funções; declará-las G_GNUC_INTERNAL"
 
-#: gio/glib-compile-resources.c:748
-msgid ""
-"Don’t embed resource data in the C file; assume it's linked externally "
-"instead"
-msgstr ""
-"Não imbuir dados de recurso num ficheiro C; assuma-o ligado externamente"
-
-#: gio/glib-compile-resources.c:749
+#: ../gio/glib-compile-resources.c:629
 msgid "C identifier name used for the generated source code"
 msgstr "Nome do identificador C utilizado no código fonte gerado"
 
-#: gio/glib-compile-resources.c:775
+#: ../gio/glib-compile-resources.c:655
 msgid ""
 "Compile a resource specification into a resource file.\n"
 "Resource specification files have the extension .gresource.xml,\n"
@@ -2598,527 +2327,252 @@ msgstr ""
 "xml,\n"
 "e o ficheiro de recurso tem a extensão .gresource."
 
-#: gio/glib-compile-resources.c:797
+#: ../gio/glib-compile-resources.c:671
+#, c-format
 msgid "You should give exactly one file name\n"
 msgstr "Deverá indicar apenas um nome de ficheiro\n"
 
-#: gio/glib-compile-schemas.c:92
-#, c-format
-msgid "nick must be a minimum of 2 characters"
-msgstr "nome deve ter um mínimo de 2 caracteres"
-
-#: gio/glib-compile-schemas.c:103
-#, c-format
-#| msgid "Invalid symlink value given"
-msgid "Invalid numeric value"
-msgstr "Valor numérico inválido"
-
-#: gio/glib-compile-schemas.c:111
-#, c-format
-#| msgid "<%s id='%s'> already specified"
-msgid "<value nick='%s'/> already specified"
-msgstr "<value nick='%s'/> já especificado"
-
-#: gio/glib-compile-schemas.c:119
-#, c-format
-#| msgid "<key name='%s'> already specified"
-msgid "value='%s' already specified"
-msgstr "valor=“%s” já especificado"
-
-#: gio/glib-compile-schemas.c:133
-#, c-format
-msgid "flags values must have at most 1 bit set"
-msgstr "valores de parâmetros devem ter ao menos 1 bit definido"
-
-#: gio/glib-compile-schemas.c:158
-#, c-format
-msgid "<%s> must contain at least one <value>"
-msgstr "<%s> deve conter ao menos um <value>"
-
-#: gio/glib-compile-schemas.c:314
-#, c-format
-#| msgid "No connection endpoint specified"
-msgid "<%s> is not contained in the specified range"
-msgstr "<%s> não está contido na região especificada"
-
-#: gio/glib-compile-schemas.c:326
-#, c-format
-msgid "<%s> is not a valid member of the specified enumerated type"
-msgstr "<%s> não é um membro válido do tipo enumerado especificado"
-
-#: gio/glib-compile-schemas.c:332
-#, c-format
-msgid "<%s> contains string not in the specified flags type"
-msgstr "<%s> contém cadeias não inclusas no tipo de parâmetros especificados"
-
-#: gio/glib-compile-schemas.c:338
-#, c-format
-msgid "<%s> contains a string not in <choices>"
-msgstr "<%s> contém uma cadeia não inclusa em <choices>"
-
-#: gio/glib-compile-schemas.c:372
-#| msgid "<key name='%s'> already specified"
-msgid "<range/> already specified for this key"
-msgstr "<range/> já especificado para esta chave"
-
-#: gio/glib-compile-schemas.c:390
-#, c-format
-msgid "<range> not allowed for keys of type “%s”"
-msgstr "<range> não permitido para chaves do tipo “%s”"
-
-#: gio/glib-compile-schemas.c:407
-#, c-format
-msgid "<range> specified minimum is greater than maximum"
-msgstr "<range> o mínimo especificado é maior que o máximo"
-
-#: gio/glib-compile-schemas.c:432
-#, c-format
-msgid "unsupported l10n category: %s"
-msgstr "categoria l10n não suportada: %s"
-
-#: gio/glib-compile-schemas.c:440
-msgid "l10n requested, but no gettext domain given"
-msgstr "o l10n requisitou, mas nenhum domínio gettext foi dado"
-
-#: gio/glib-compile-schemas.c:452
-msgid "translation context given for value without l10n enabled"
-msgstr "contexto de tradução dado a um valor sem l10n ativado"
-
-#: gio/glib-compile-schemas.c:474
-#, c-format
-#| msgid "Failed to set '%s' as the default handler for '%s': %s\n"
-msgid "Failed to parse <default> value of type “%s”: "
-msgstr "Falha ao processar o valor <default> do tipo “%s”: "
-
-#: gio/glib-compile-schemas.c:491
-msgid ""
-"<choices> cannot be specified for keys tagged as having an enumerated type"
-msgstr ""
-"<choices> não podem ser especificadas a chaves marcadas como tendo um tipo "
-"enumerado"
-
-#: gio/glib-compile-schemas.c:500
-#| msgid "<child name='%s'> already specified"
-msgid "<choices> already specified for this key"
-msgstr "<choices> já especificadas para esta chave"
-
-#: gio/glib-compile-schemas.c:512
-#, c-format
-msgid "<choices> not allowed for keys of type “%s”"
-msgstr "<choices> não permitidas para chaves do tipo “%s”"
-
-#: gio/glib-compile-schemas.c:528
-#, c-format
-#| msgid "<child name='%s'> already specified"
-msgid "<choice value='%s'/> already given"
-msgstr "<choice value='%s'/> já especificado"
-
-#: gio/glib-compile-schemas.c:543
-#, c-format
-msgid "<choices> must contain at least one <choice>"
-msgstr "<choices> devem conter ao menos uma <choice>"
-
-#: gio/glib-compile-schemas.c:557
-#| msgid "<child name='%s'> already specified"
-msgid "<aliases> already specified for this key"
-msgstr "<aliases> já especificados para esta chave"
-
-#: gio/glib-compile-schemas.c:561
-msgid ""
-"<aliases> can only be specified for keys with enumerated or flags types or "
-"after <choices>"
-msgstr ""
-"<aliases> podem serem especificados só a chaves com tipo enumerada ou "
-"parâmetro ou após <choices>"
-
-#: gio/glib-compile-schemas.c:580
-#, c-format
-msgid ""
-"<alias value='%s'/> given when “%s” is already a member of the enumerated "
-"type"
-msgstr "<alias value='%s'/> dado quando “%s” já é um membro do tipo enumerado"
-
-#: gio/glib-compile-schemas.c:586
-#, c-format
-msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
-msgstr ""
-"<alias value='%s'/> dado quando <choice value='%s'/> já foi especificada"
-
-#: gio/glib-compile-schemas.c:594
-#, c-format
-#| msgid "<%s id='%s'> already specified"
-msgid "<alias value='%s'/> already specified"
-msgstr "<alias value='%s'/> já especificado"
-
-#: gio/glib-compile-schemas.c:604
-#, c-format
-msgid "alias target “%s” is not in enumerated type"
-msgstr "alcunha alvo “%s” não é do tipo enumerada"
-
-#: gio/glib-compile-schemas.c:605
-#, c-format
-msgid "alias target “%s” is not in <choices>"
-msgstr "alcunha alvo “%s” não está inclusa em <choices>"
-
-#: gio/glib-compile-schemas.c:620
-#, c-format
-msgid "<aliases> must contain at least one <alias>"
-msgstr "<aliases> devem conter ao menos uma <alias>"
-
-#: gio/glib-compile-schemas.c:797
-#| msgid "empty names are not permitted"
-msgid "Empty names are not permitted"
+#: ../gio/glib-compile-schemas.c:784
+msgid "empty names are not permitted"
 msgstr "Não são permitidos nomes vazios"
 
-#: gio/glib-compile-schemas.c:807
+#: ../gio/glib-compile-schemas.c:794
 #, c-format
-#| msgid "invalid name '%s': names must begin with a lowercase letter"
-msgid "Invalid name “%s”: names must begin with a lowercase letter"
-msgstr "Nome “%s” inválido: nomes têm de começar com uma letra minúscula"
+msgid "invalid name '%s': names must begin with a lowercase letter"
+msgstr "nome \"%s\" inválido: nomes têm de começar com uma letra minúscula"
 
-#: gio/glib-compile-schemas.c:819
+#: ../gio/glib-compile-schemas.c:806
 #, c-format
-#| msgid ""
-#| "invalid name '%s': invalid character '%c'; only lowercase letters, "
-#| "numbers and hyphen ('-') are permitted."
 msgid ""
-"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
-"and hyphen (“-”) are permitted"
+"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
+"and hyphen ('-') are permitted."
 msgstr ""
-"Nome “%s” inválido: carácter “%c” inválido; apenas são permitidas letras "
-"minúsculas, números e um traço (“-”)"
+"nome \"%s\" inválido: carácter \"%c\" inválido; apenas são permitidas letras "
+"minúsculas, números e um traço (\"-\")."
 
-#: gio/glib-compile-schemas.c:828
+#: ../gio/glib-compile-schemas.c:815
 #, c-format
-#| msgid "invalid name '%s': two successive hyphens ('--') are not permitted."
-msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
-msgstr "Nome “%s” inválido: não são permitidos dois traços (“--”) consecutivos"
+msgid "invalid name '%s': two successive hyphens ('--') are not permitted."
+msgstr ""
+"nome \"%s\" inválido: não são permitidos dois traços (\"--\") consecutivos."
 
-#: gio/glib-compile-schemas.c:837
+#: ../gio/glib-compile-schemas.c:824
 #, c-format
-#| msgid "invalid name '%s': the last character may not be a hyphen ('-')."
-msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
-msgstr "Nome “%s” inválido: o último carácter não pode ser um traço (“-”)"
+msgid "invalid name '%s': the last character may not be a hyphen ('-')."
+msgstr "nome \"%s\" inválido: o último carácter não pode ser um traço (\"-\")."
 
-#: gio/glib-compile-schemas.c:845
+#: ../gio/glib-compile-schemas.c:832
 #, c-format
-#| msgid "invalid name '%s': maximum length is 1024"
-msgid "Invalid name “%s”: maximum length is 1024"
-msgstr "nome “%s” inválido: o tamanho máximo é 1024"
+msgid "invalid name '%s': maximum length is 1024"
+msgstr "nome \"%s\" inválido: tamanho máximo é 1024"
 
-#: gio/glib-compile-schemas.c:917
+#: ../gio/glib-compile-schemas.c:901
 #, c-format
 msgid "<child name='%s'> already specified"
-msgstr "<child name=“%s”> já especificado"
+msgstr "<child name=\"%s\"> já especificado"
 
-#: gio/glib-compile-schemas.c:943
-#| msgid "cannot add keys to a 'list-of' schema"
-msgid "Cannot add keys to a “list-of” schema"
-msgstr "não é possível adicionar chaves a um esquema “lista-de”"
+#: ../gio/glib-compile-schemas.c:927
+msgid "cannot add keys to a 'list-of' schema"
+msgstr "não é possível adicionar chaves a um esquema \"list-of\""
 
-#: gio/glib-compile-schemas.c:954
+#: ../gio/glib-compile-schemas.c:938
 #, c-format
 msgid "<key name='%s'> already specified"
-msgstr "<key name=“%s”> já especificado"
+msgstr "<key name=\"%s\"> já especificado"
 
-#: gio/glib-compile-schemas.c:972
+#: ../gio/glib-compile-schemas.c:956
 #, c-format
 msgid ""
 "<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
 "to modify value"
 msgstr ""
-"<key name=“%s”> sobrepõe-se a <key name=“%s”> no <schema id=“%s”>; utilize "
-"<override> para alterar o valor"
+"<key name=\"%s\"> sobrepõe-se a <key name=\"%s\"> no <schema id=\"%s\">; "
+"utilize <override> para alterar o valor"
 
-#: gio/glib-compile-schemas.c:983
+#: ../gio/glib-compile-schemas.c:967
 #, c-format
-#| msgid ""
-#| "exactly one of 'type', 'enum' or 'flags' must be specified as an "
-#| "attribute to <key>"
 msgid ""
-"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
+"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute "
 "to <key>"
 msgstr ""
-"Exatamente “type”, “enum” ou “flags” tem de ser especificado como um "
-"atributo de <key>"
+"exatamente um de \"type\", \"enum\" ou \"flags\" tem de ser especificado "
+"como um atributo de <key>"
 
-#: gio/glib-compile-schemas.c:1002
+#: ../gio/glib-compile-schemas.c:986
 #, c-format
 msgid "<%s id='%s'> not (yet) defined."
-msgstr "<%s id=“%s”> (ainda) não definido."
+msgstr "<%s id=\"%s\"> (ainda) não definido."
 
-#: gio/glib-compile-schemas.c:1017
+#: ../gio/glib-compile-schemas.c:1001
 #, c-format
-#| msgid "invalid GVariant type string '%s'"
-msgid "Invalid GVariant type string “%s”"
-msgstr "Cadeia de tipo GVariante “%s” inválida"
+msgid "invalid GVariant type string '%s'"
+msgstr "expressão de tipo GVariante \"%s\" inválida"
 
-#: gio/glib-compile-schemas.c:1047
-#| msgid "<override> given but schema isn't extending anything"
-msgid "<override> given but schema isn’t extending anything"
+#: ../gio/glib-compile-schemas.c:1031
+msgid "<override> given but schema isn't extending anything"
 msgstr "<override> especificado mas o esquema não estende nada"
 
-#: gio/glib-compile-schemas.c:1060
+#: ../gio/glib-compile-schemas.c:1044
 #, c-format
-#| msgid "no <key name='%s'> to override"
-msgid "No <key name='%s'> to override"
-msgstr "Nenhum <key name='%s'>  a sobrepor"
+msgid "no <key name='%s'> to override"
+msgstr "nenhum <key name=\"%s\"> a sobrepor"
 
-#: gio/glib-compile-schemas.c:1068
+#: ../gio/glib-compile-schemas.c:1052
 #, c-format
 msgid "<override name='%s'> already specified"
-msgstr "<override name=“%s”> já especificado"
+msgstr "<override name=\"%s\"> já especificado"
 
-#: gio/glib-compile-schemas.c:1141
+#: ../gio/glib-compile-schemas.c:1125
 #, c-format
 msgid "<schema id='%s'> already specified"
-msgstr "<schema id=“%s”> já especificado"
+msgstr "<schema id=\"%s\"> já especificado"
 
-#: gio/glib-compile-schemas.c:1153
+#: ../gio/glib-compile-schemas.c:1137
 #, c-format
-#| msgid "<schema id='%s'> extends not yet existing schema '%s'"
-msgid "<schema id='%s'> extends not yet existing schema “%s”"
-msgstr "<schema id='%s'> estende-se a um esquema “%s” ainda não existente"
+msgid "<schema id='%s'> extends not yet existing schema '%s'"
+msgstr "<schema id=\"%s\"> estende esquema \"%s\" que ainda não existe"
 
-#: gio/glib-compile-schemas.c:1169
+#: ../gio/glib-compile-schemas.c:1153
 #, c-format
-#| msgid "<schema id='%s'> is list of not yet existing schema '%s'"
-msgid "<schema id='%s'> is list of not yet existing schema “%s”"
-msgstr "<schema id='%s'> é uma lista do esquema “%s” que ainda não existe"
+msgid "<schema id='%s'> is list of not yet existing schema '%s'"
+msgstr "<schema id=\"%s\"> é uma lista do esquema \"%s\" que ainda não existe"
 
-#: gio/glib-compile-schemas.c:1177
+#: ../gio/glib-compile-schemas.c:1161
 #, c-format
-#| msgid "Can not be a list of a schema with a path"
-msgid "Cannot be a list of a schema with a path"
+msgid "Can not be a list of a schema with a path"
 msgstr "Não é possível ser uma lista de um esquema com um caminho"
 
-#: gio/glib-compile-schemas.c:1187
+#: ../gio/glib-compile-schemas.c:1171
 #, c-format
-#| msgid "Can not extend a schema with a path"
-msgid "Cannot extend a schema with a path"
+msgid "Can not extend a schema with a path"
 msgstr "Impossível estender um esquema com um caminho"
 
-#: gio/glib-compile-schemas.c:1197
+#: ../gio/glib-compile-schemas.c:1181
 #, c-format
 msgid ""
 "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
 msgstr ""
-"<schema id=“%s”> é uma lista, que estende o <schema id=“%s”> que não é uma "
-"lista"
+"<schema id=\"%s\"> é uma lista, que estende o <schema id=\"%s\"> que não é "
+"uma lista"
 
-#: gio/glib-compile-schemas.c:1207
+#: ../gio/glib-compile-schemas.c:1191
 #, c-format
-#| msgid ""
-#| "<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but "
-#| "'%s' does not extend '%s'"
 msgid ""
-"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
-"does not extend “%s”"
+"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but '%s' "
+"does not extend '%s'"
 msgstr ""
-"<schema id='%s' list-of='%s'> estende <schema id='%s' list-of='%s'> mas “%s” "
-"não estende “%s”"
-
-#: gio/glib-compile-schemas.c:1224
-#, c-format
-#| msgid "a path, if given, must begin and end with a slash"
-msgid "A path, if given, must begin and end with a slash"
-msgstr "Um caminho, se indicado, tem de começar e terminar com uma barra"
+"<schema id=\"%s\" list-of=\"%s\"> estende <schema id=\"%s\" list-of=\"%s\"> "
+"mas \"%s\" não estende \"%s\""
 
-#: gio/glib-compile-schemas.c:1231
+#: ../gio/glib-compile-schemas.c:1208
 #, c-format
-#| msgid "the path of a list must end with ':/'"
-msgid "The path of a list must end with “:/”"
-msgstr "O caminho de uma lista tem de terminar com “:/”"
+msgid "a path, if given, must begin and end with a slash"
+msgstr "um caminho, se indicado, tem de começar e terminar com uma barra"
 
-#: gio/glib-compile-schemas.c:1240
+#: ../gio/glib-compile-schemas.c:1215
 #, c-format
-msgid ""
-"Warning: Schema “%s” has path “%s”.  Paths starting with “/apps/”, “/"
-"desktop/” or “/system/” are deprecated."
-msgstr ""
-"Aviso: o esquema “%s” tem um caminho “%s”.  Caminhos começando com “/apps/”, "
-"“/desktop/” ou “/system/” estão obsoletos."
+msgid "the path of a list must end with ':/'"
+msgstr "o caminho de uma lista tem de terminar com \":/\""
 
-#: gio/glib-compile-schemas.c:1270
+#: ../gio/glib-compile-schemas.c:1247
 #, c-format
 msgid "<%s id='%s'> already specified"
-msgstr "<%s id=“%s”> já especificado"
+msgstr "<%s id=\"%s\"> já especificado"
 
-#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
+#: ../gio/glib-compile-schemas.c:1397 ../gio/glib-compile-schemas.c:1413
 #, c-format
 msgid "Only one <%s> element allowed inside <%s>"
 msgstr "Elemento <%s> não é permitido dentro de <%s>"
 
-#: gio/glib-compile-schemas.c:1518
+#: ../gio/glib-compile-schemas.c:1495
 #, c-format
 msgid "Element <%s> not allowed at the top level"
 msgstr "Elemento <%s> não é permitido no nível de topo"
 
-#: gio/glib-compile-schemas.c:1536
-msgid "Element <default> is required in <key>"
-msgstr "Elemento <default> é requerido em <key>"
-
-#: gio/glib-compile-schemas.c:1626
-#, c-format
-#| msgid "text may not appear inside <%s>"
-msgid "Text may not appear inside <%s>"
-msgstr "Não pode surgir texto dentro de <%s>"
-
-#: gio/glib-compile-schemas.c:1694
-#, c-format
-msgid "Warning: undefined reference to <schema id='%s'/>"
-msgstr "Aviso: referência unificada a <schema id='%s'/>"
-
 #. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
-#| msgid "--strict was specified; exiting.\n"
-msgid "--strict was specified; exiting."
-msgstr "Foi especificado --strict; a terminar."
-
-#: gio/glib-compile-schemas.c:1845
-#| msgid "This entire file has been ignored.\n"
-msgid "This entire file has been ignored."
-msgstr "Todo este ficheiro foi ignorado."
-
-#: gio/glib-compile-schemas.c:1908
-#| msgid "Ignoring this file.\n"
-msgid "Ignoring this file."
-msgstr "A ignorar este ficheiro."
-
-#: gio/glib-compile-schemas.c:1963
+#: ../gio/glib-compile-schemas.c:1794 ../gio/glib-compile-schemas.c:1865
+#: ../gio/glib-compile-schemas.c:1941
 #, c-format
-#| msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
-msgid ""
-"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
-"override for this key."
-msgstr ""
-"Nenhuma chave “%s” no esquema “%s” tal como especificado no ficheiro de "
-"sobreposição “%s”; a ignorar sobreposição desta chave."
+msgid "--strict was specified; exiting.\n"
+msgstr "Foi especificado --strict; a terminar.\n"
 
-#: gio/glib-compile-schemas.c:1971
+#: ../gio/glib-compile-schemas.c:1802
 #, c-format
-#| msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
-msgid ""
-"No such key “%s” in schema “%s” as specified in override file “%s” and --"
-"strict was specified; exiting."
-msgstr ""
-"Nenhuma chave “%s” no esquema “%s” tal como especificado no ficheiro de "
-"sobreposição “%s” e --strict foi definido; a terminar."
+msgid "This entire file has been ignored.\n"
+msgstr "Todo este ficheiro foi ignorado.\n"
 
-#: gio/glib-compile-schemas.c:1993
+#: ../gio/glib-compile-schemas.c:1861
 #, c-format
-msgid ""
-"Cannot provide per-desktop overrides for localized key “%s” in schema "
-"“%s” (override file “%s”); ignoring override for this key."
-msgstr ""
-"Impossível fornecer sobreposições per-desktop para chaves localizadas “%s” "
-"no esquema “%s” (ficheiro de sobreposição “%s”); a ignorar sobreposição para "
-"esta chave."
+msgid "Ignoring this file.\n"
+msgstr "A ignorar este ficheiro.\n"
 
-#: gio/glib-compile-schemas.c:2002
+#: ../gio/glib-compile-schemas.c:1901
 #, c-format
-msgid ""
-"Cannot provide per-desktop overrides for localized key “%s” in schema "
-"“%s” (override file “%s”) and --strict was specified; exiting."
+msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
 msgstr ""
-"Impossível fornecer sobreposições per-desktop para chaves localizadas “%s” "
-"no esquema “%s” (ficheiro de sobreposição “%s”) e --strict foi definido; a "
-"terminar."
+"Nenhuma chave \"%s\" no esquema \"%s\" tal como especificado no ficheiro de "
+"sobreposição \"%s\""
 
-#: gio/glib-compile-schemas.c:2026
+#: ../gio/glib-compile-schemas.c:1907 ../gio/glib-compile-schemas.c:1965
+#: ../gio/glib-compile-schemas.c:1993
 #, c-format
-#| msgid ""
-#| "error parsing key '%s' in schema '%s' as specified in override file '%s': "
-#| "%s."
-msgid ""
-"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
-"%s. Ignoring override for this key."
-msgstr ""
-"Erro ao processar a chave “%s” no esquema “%s” tal como especificado no "
-"ficheiro de sobreposição “%s”: %s. A ignorar sobreposição para esta chave."
+msgid "; ignoring override for this key.\n"
+msgstr "; a ignorar a sobreposição para esta chave.\n"
 
-#: gio/glib-compile-schemas.c:2038
+#: ../gio/glib-compile-schemas.c:1911 ../gio/glib-compile-schemas.c:1969
+#: ../gio/glib-compile-schemas.c:1997
 #, c-format
-#| msgid ""
-#| "error parsing key '%s' in schema '%s' as specified in override file '%s': "
-#| "%s."
-msgid ""
-"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
-"%s. --strict was specified; exiting."
-msgstr ""
-"Erro ao processar a chave “%s” no esquema “%s” tal como especificado no "
-"ficheiro de sobreposição “%s”: %s.  --strict foi definido; a terminar."
+msgid " and --strict was specified; exiting.\n"
+msgstr " e foi especificado o modo --strict; a terminar.\n"
 
-#: gio/glib-compile-schemas.c:2065
+#: ../gio/glib-compile-schemas.c:1927
 #, c-format
-#| msgid ""
-#| "override for key '%s' in schema '%s' in override file '%s' is outside the "
-#| "range given in the schema"
 msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is outside the "
-"range given in the schema; ignoring override for this key."
+"error parsing key '%s' in schema '%s' as specified in override file '%s': %s."
 msgstr ""
-"Sobreposição para a chave “%s” no esquema “%s” no ficheiro de sobreposição "
-"“%s” está fora do intervalo indicado no esquema; a ignorar sobreposição "
-"desta chave."
+"erro ao processar a chave \"%s\" no esquema \"%s\" tal como especificado no "
+"ficheiro de sobreposição \"%s\": %s."
 
-#: gio/glib-compile-schemas.c:2075
+#: ../gio/glib-compile-schemas.c:1937
 #, c-format
-#| msgid ""
-#| "override for key '%s' in schema '%s' in override file '%s' is outside the "
-#| "range given in the schema"
-msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is outside the "
-"range given in the schema and --strict was specified; exiting."
-msgstr ""
-"Sobreposição para a chave “%s” no esquema “%s” no ficheiro de sobreposição "
-"“%s” está fora do intervalo indicado no esquema e --strict foi definido; a "
-"terminar."
+msgid "Ignoring override for this key.\n"
+msgstr "A ignorar sobreposição para esta chave.\n"
 
-#: gio/glib-compile-schemas.c:2101
+#: ../gio/glib-compile-schemas.c:1955
 #, c-format
-#| msgid ""
-#| "override for key '%s' in schema '%s' in override file '%s' is not in the "
-#| "list of valid choices"
 msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is not in the "
-"list of valid choices; ignoring override for this key."
+"override for key '%s' in schema '%s' in override file '%s' is outside the "
+"range given in the schema"
 msgstr ""
-"Sobreposição para a chave “%s” no esquema “%s” no ficheiro de sobreposição "
-"“%s” não pertence à lista de opções válidas; a ignorar sobreposição desta "
-"chave."
+"sobreposição para a chave \"%s\" no esquema \"%s\" no ficheiro de "
+"sobreposição \"%s\" está fora do intervalo indicado no esquema"
 
-#: gio/glib-compile-schemas.c:2111
+#: ../gio/glib-compile-schemas.c:1983
 #, c-format
-#| msgid ""
-#| "override for key '%s' in schema '%s' in override file '%s' is not in the "
-#| "list of valid choices"
 msgid ""
-"Override for key “%s” in schema “%s” in override file “%s” is not in the "
-"list of valid choices and --strict was specified; exiting."
+"override for key '%s' in schema '%s' in override file '%s' is not in the "
+"list of valid choices"
 msgstr ""
-"Sobreposição para a chave “%s” no esquema “%s” no ficheiro de sobreposição "
-"“%s” não pertence à lista de opções válidas e --strict foi definido; a "
-"terminar."
+"sobreposição para a chave \"%s\" no esquema \"%s\" no ficheiro de "
+"sobreposição \"%s\" não pertence à lista de opções válidas"
 
-#: gio/glib-compile-schemas.c:2173
-#| msgid "where to store the gschemas.compiled file"
-msgid "Where to store the gschemas.compiled file"
-msgstr "Onde armazenar o ficheiro gschemas.compiled"
+#: ../gio/glib-compile-schemas.c:2036
+msgid "where to store the gschemas.compiled file"
+msgstr "onde armazenar o ficheiro gschemas.compiled"
 
-#: gio/glib-compile-schemas.c:2174
+#: ../gio/glib-compile-schemas.c:2037
 msgid "Abort on any errors in schemas"
 msgstr "Abortar em qualquer erro nos esquemas"
 
-#: gio/glib-compile-schemas.c:2175
+#: ../gio/glib-compile-schemas.c:2038
 msgid "Do not write the gschema.compiled file"
 msgstr "Não escrever o ficheiro gschemas.compiled"
 
-#: gio/glib-compile-schemas.c:2176
+#: ../gio/glib-compile-schemas.c:2039
 msgid "Do not enforce key name restrictions"
 msgstr "Não forçar restrições de nomes de chaves"
 
-#: gio/glib-compile-schemas.c:2205
+#: ../gio/glib-compile-schemas.c:2068
 msgid ""
 "Compile all GSettings schema files into a schema cache.\n"
 "Schema files are required to have the extension .gschema.xml,\n"
@@ -3128,355 +2582,346 @@ msgstr ""
 "Ficheiros de esquema têm de ter a extensão .gschema.xml,\n"
 "e o ficheiro de cache é designado gschemas.compiled."
 
-#: gio/glib-compile-schemas.c:2226
-#| msgid "You should give exactly one directory name\n"
-msgid "You should give exactly one directory name"
-msgstr "Deverá indicar apenas um nome de pasta"
+#: ../gio/glib-compile-schemas.c:2084
+#, c-format
+msgid "You should give exactly one directory name\n"
+msgstr "Deverá indicar apenas um nome de pasta\n"
 
-#: gio/glib-compile-schemas.c:2269
-#| msgid "No schema files found: "
-msgid "No schema files found: doing nothing."
-msgstr "Nenhum ficheiro de esquema encontrado: nada a fazer."
+#: ../gio/glib-compile-schemas.c:2123
+#, c-format
+msgid "No schema files found: "
+msgstr "Nenhum ficheiro de esquema encontrado: "
 
-#: gio/glib-compile-schemas.c:2271
-#| msgid "removed existing output file.\n"
-msgid "No schema files found: removed existing output file."
-msgstr ""
-"Nenhum ficheiro de esquema encontrado: removido o ficheiro de resultado "
-"existente."
+#: ../gio/glib-compile-schemas.c:2126
+#, c-format
+msgid "doing nothing.\n"
+msgstr "inativo.\n"
+
+#: ../gio/glib-compile-schemas.c:2129
+#, c-format
+msgid "removed existing output file.\n"
+msgstr "removido o ficheiro de resultado existente.\n"
 
-#: gio/glocalfile.c:546 gio/win32/gwinhttpfile.c:420
+#: ../gio/glocalfile.c:642 ../gio/win32/gwinhttpfile.c:420
 #, c-format
 msgid "Invalid filename %s"
 msgstr "Nome de ficheiro %s inválido"
 
-#: gio/glocalfile.c:1013
+#: ../gio/glocalfile.c:1036
 #, c-format
 msgid "Error getting filesystem info for %s: %s"
 msgstr "Erro ao obter a informação do sistema de ficheiros para %s: %s"
 
-#. Translators: This is an error message when trying to find
-#. * the enclosing (user visible) mount of a file, but none
-#. * exists.
-#.
-#: gio/glocalfile.c:1152
+#: ../gio/glocalfile.c:1175
 #, c-format
 msgid "Containing mount for file %s not found"
 msgstr "Montagem que contém o ficheiro %s não encontrada"
 
-#: gio/glocalfile.c:1175
-#| msgid "Can't rename root directory"
-msgid "Can’t rename root directory"
-msgstr "Impossível renomear o diretório raiz"
+#: ../gio/glocalfile.c:1198
+msgid "Can't rename root directory"
+msgstr "Impossível renomear a pasta raiz"
 
-#: gio/glocalfile.c:1193 gio/glocalfile.c:1216
+#: ../gio/glocalfile.c:1216 ../gio/glocalfile.c:1239
 #, c-format
 msgid "Error renaming file %s: %s"
 msgstr "Erro ao renomear o ficheiro %s: %s"
 
-#: gio/glocalfile.c:1200
-#| msgid "Can't rename file, filename already exists"
-msgid "Can’t rename file, filename already exists"
+#: ../gio/glocalfile.c:1223
+msgid "Can't rename file, filename already exists"
 msgstr "Impossível renomear o ficheiro, o nome já existe"
 
-#: gio/glocalfile.c:1213 gio/glocalfile.c:2322 gio/glocalfile.c:2350
-#: gio/glocalfile.c:2489 gio/glocalfileoutputstream.c:647
+#: ../gio/glocalfile.c:1236 ../gio/glocalfile.c:2250 ../gio/glocalfile.c:2278
+#: ../gio/glocalfile.c:2435 ../gio/glocalfileoutputstream.c:549
 msgid "Invalid filename"
 msgstr "Nome de ficheiro inválido"
 
-#: gio/glocalfile.c:1381 gio/glocalfile.c:1396
+#: ../gio/glocalfile.c:1403 ../gio/glocalfile.c:1418
 #, c-format
 msgid "Error opening file %s: %s"
 msgstr "Erro ao abrir o ficheiro %s: %s"
 
-#: gio/glocalfile.c:1521
+#: ../gio/glocalfile.c:1543
 #, c-format
 msgid "Error removing file %s: %s"
 msgstr "Erro ao remover o ficheiro %s: %s"
 
-#: gio/glocalfile.c:1963
+#: ../gio/glocalfile.c:1926
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Erro ao enviar o ficheiro %s para o lixo: %s"
 
-#: gio/glocalfile.c:2004
+#: ../gio/glocalfile.c:1949
 #, c-format
 msgid "Unable to create trash dir %s: %s"
-msgstr "Impossível criar o diretório de lixo %s: %s"
+msgstr "Impossível criar a pasta de lixo %s: %s"
 
-#: gio/glocalfile.c:2025
+#: ../gio/glocalfile.c:1969
 #, c-format
 msgid "Unable to find toplevel directory to trash %s"
-msgstr "Impossível encontrar o diretório de topo para o lixo %s"
+msgstr "Impossível encontrar a pasta de topo para o lixo %s"
 
-#: gio/glocalfile.c:2034
-#, c-format
-#| msgid "Copy (reflink/clone) between mounts is not supported"
-msgid "Trashing on system internal mounts is not supported"
-msgstr "Impossível enviar para o lixo montagens internas do sistema"
-
-#: gio/glocalfile.c:2118 gio/glocalfile.c:2138
+#: ../gio/glocalfile.c:2048 ../gio/glocalfile.c:2068
 #, c-format
 msgid "Unable to find or create trash directory for %s"
-msgstr "Impossível encontrar ou criar o diretório de lixo para %s"
+msgstr "Impossível encontrar ou criar a pasta de lixo para %s"
 
-#: gio/glocalfile.c:2173
+#: ../gio/glocalfile.c:2102
 #, c-format
 msgid "Unable to create trashing info file for %s: %s"
 msgstr "Impossível criar o ficheiro de informação do lixo para %s: %s"
 
-#: gio/glocalfile.c:2233
+#: ../gio/glocalfile.c:2161
 #, c-format
 msgid "Unable to trash file %s across filesystem boundaries"
 msgstr ""
 "Impossível enviar o ficheiro %s para o lixo através dos limites do sistema "
 "de ficheiros"
 
-#: gio/glocalfile.c:2237 gio/glocalfile.c:2293
+#: ../gio/glocalfile.c:2165 ../gio/glocalfile.c:2221
 #, c-format
 msgid "Unable to trash file %s: %s"
 msgstr "Impossível enviar o ficheiro %s para o lixo: %s"
 
-#: gio/glocalfile.c:2299
+#: ../gio/glocalfile.c:2227
 #, c-format
 msgid "Unable to trash file %s"
 msgstr "Impossível enviar o ficheiro %s para o lixo"
 
-#: gio/glocalfile.c:2325
+#: ../gio/glocalfile.c:2253
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Erro ao criar o diretório %s: %s"
 
-#: gio/glocalfile.c:2354
+#: ../gio/glocalfile.c:2282
 #, c-format
 msgid "Filesystem does not support symbolic links"
 msgstr "O sistema de ficheiros não suporta ligações simbólicas"
 
-#: gio/glocalfile.c:2357
+#: ../gio/glocalfile.c:2285
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr "Erro ao criar ligação simbólica %s: %s"
 
-#: gio/glocalfile.c:2400 gio/glocalfile.c:2435 gio/glocalfile.c:2492
+#: ../gio/glocalfile.c:2291 ../glib/gfileutils.c:2064
+msgid "Symbolic links not supported"
+msgstr "Ligações simbólicas não são suportadas"
+
+#: ../gio/glocalfile.c:2346 ../gio/glocalfile.c:2381 ../gio/glocalfile.c:2438
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Erro ao mover o ficheiro %s: %s"
 
-#: gio/glocalfile.c:2423
-#| msgid "Can't move directory over directory"
-msgid "Can’t move directory over directory"
+#: ../gio/glocalfile.c:2369
+msgid "Can't move directory over directory"
 msgstr "Impossível mover uma pasta sobre uma pasta"
 
-#: gio/glocalfile.c:2449 gio/glocalfileoutputstream.c:1031
-#: gio/glocalfileoutputstream.c:1045 gio/glocalfileoutputstream.c:1060
-#: gio/glocalfileoutputstream.c:1077 gio/glocalfileoutputstream.c:1091
+#: ../gio/glocalfile.c:2395 ../gio/glocalfileoutputstream.c:925
+#: ../gio/glocalfileoutputstream.c:939 ../gio/glocalfileoutputstream.c:954
+#: ../gio/glocalfileoutputstream.c:971 ../gio/glocalfileoutputstream.c:985
 msgid "Backup file creation failed"
 msgstr "Falha ao criar o ficheiro de cópia de segurança"
 
-#: gio/glocalfile.c:2468
+#: ../gio/glocalfile.c:2414
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Erro ao remover o ficheiro de destino: %s"
 
-#: gio/glocalfile.c:2482
+#: ../gio/glocalfile.c:2428
 msgid "Move between mounts not supported"
 msgstr "Não é suportado mover entre montados"
 
-#: gio/glocalfile.c:2673
+#: ../gio/glocalfile.c:2619
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Impossível determinar a utilização de disco de %s: %s"
 
-#: gio/glocalfileinfo.c:755
+#: ../gio/glocalfileinfo.c:721
 msgid "Attribute value must be non-NULL"
 msgstr "Valor do atributo tem de ser não-NULL"
 
-#: gio/glocalfileinfo.c:762
+#: ../gio/glocalfileinfo.c:728
 msgid "Invalid attribute type (string expected)"
-msgstr "Tipo de atributo inválido (esperada uma cadeia)"
+msgstr "Tipo de atributo inválido (esperada uma expressão)"
 
-#: gio/glocalfileinfo.c:769
+#: ../gio/glocalfileinfo.c:735
 msgid "Invalid extended attribute name"
 msgstr "Nome de atributo extendido inválido"
 
-#: gio/glocalfileinfo.c:809
+#: ../gio/glocalfileinfo.c:775
 #, c-format
-#| msgid "Error setting extended attribute '%s': %s"
-msgid "Error setting extended attribute “%s”: %s"
-msgstr "Erro ao definir o atributo extendido “%s”: %s"
+msgid "Error setting extended attribute '%s': %s"
+msgstr "Erro ao definir o atributo extendido \"%s\": %s"
 
-#: gio/glocalfileinfo.c:1637
+#: ../gio/glocalfileinfo.c:1575
 msgid " (invalid encoding)"
 msgstr " (codificação inválida)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: ../gio/glocalfileinfo.c:1766 ../gio/glocalfileoutputstream.c:803
 #, c-format
-#| msgid "Error when getting information for file '%s': %s"
-msgid "Error when getting information for file “%s”: %s"
-msgstr "Erro ao obter informação para o ficheiro “%s”: %s"
+msgid "Error when getting information for file '%s': %s"
+msgstr "Erro ao obter informação para o ficheiro \"%s\": %s"
 
-#: gio/glocalfileinfo.c:2071
+#: ../gio/glocalfileinfo.c:2017
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Erro ao obter informação sobre o descritor do ficheiro: %s"
 
-#: gio/glocalfileinfo.c:2116
+#: ../gio/glocalfileinfo.c:2062
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Tipo de atributo inválido (esperado um uint32)"
 
-#: gio/glocalfileinfo.c:2134
+#: ../gio/glocalfileinfo.c:2080
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Tipo de atributo inválido (esperado um uint64)"
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: ../gio/glocalfileinfo.c:2099 ../gio/glocalfileinfo.c:2118
 msgid "Invalid attribute type (byte string expected)"
-msgstr "Tipo de atributo inválido (esperado uma cadeia byte)"
+msgstr "Tipo de atributo inválido (esperado uma expressão byte)"
 
-#: gio/glocalfileinfo.c:2219
+#: ../gio/glocalfileinfo.c:2153
 msgid "Cannot set permissions on symlinks"
 msgstr "Impossível definir permissões em ligações simbólicas"
 
-#: gio/glocalfileinfo.c:2235
+#: ../gio/glocalfileinfo.c:2169
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Erro ao definir as permissões: %s"
 
-#: gio/glocalfileinfo.c:2286
+#: ../gio/glocalfileinfo.c:2220
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Erro ao definir o dono: %s"
 
-#: gio/glocalfileinfo.c:2309
+#: ../gio/glocalfileinfo.c:2243
 msgid "symlink must be non-NULL"
 msgstr "ligação simbólica tem de ser não-NULL"
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: ../gio/glocalfileinfo.c:2253 ../gio/glocalfileinfo.c:2272
+#: ../gio/glocalfileinfo.c:2283
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Erro ao definir a ligação simbólica: %s"
 
-#: gio/glocalfileinfo.c:2328
+#: ../gio/glocalfileinfo.c:2262
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 "Erro ao definir a ligação simbólica: ficheiro não é uma ligação simbólica"
 
-#: gio/glocalfileinfo.c:2454
+#: ../gio/glocalfileinfo.c:2388
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Erro ao definir a hora de modificação ou acesso: %s"
 
-#: gio/glocalfileinfo.c:2477
+#: ../gio/glocalfileinfo.c:2411
 msgid "SELinux context must be non-NULL"
 msgstr "O contexto SELinux tem de ser não-NULL"
 
-#: gio/glocalfileinfo.c:2492
+#: ../gio/glocalfileinfo.c:2426
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Erro ao definir o contexto SELinux: %s"
 
-#: gio/glocalfileinfo.c:2499
+#: ../gio/glocalfileinfo.c:2433
 msgid "SELinux is not enabled on this system"
 msgstr "O SELinux não está ativo neste sistema"
 
-#: gio/glocalfileinfo.c:2591
+#: ../gio/glocalfileinfo.c:2525
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Não é suportada a definição do atributo %s"
 
-#: gio/glocalfileinputstream.c:168 gio/glocalfileoutputstream.c:792
+#: ../gio/glocalfileinputstream.c:168 ../gio/glocalfileoutputstream.c:694
 #, c-format
 msgid "Error reading from file: %s"
 msgstr "Erro ao ler do ficheiro: %s"
 
-#: gio/glocalfileinputstream.c:199 gio/glocalfileinputstream.c:211
-#: gio/glocalfileinputstream.c:225 gio/glocalfileinputstream.c:333
-#: gio/glocalfileoutputstream.c:554 gio/glocalfileoutputstream.c:1109
+#: ../gio/glocalfileinputstream.c:199 ../gio/glocalfileinputstream.c:211
+#: ../gio/glocalfileinputstream.c:225 ../gio/glocalfileinputstream.c:333
+#: ../gio/glocalfileoutputstream.c:456 ../gio/glocalfileoutputstream.c:1003
 #, c-format
 msgid "Error seeking in file: %s"
 msgstr "Erro ao procurar no ficheiro: %s"
 
-#: gio/glocalfileinputstream.c:255 gio/glocalfileoutputstream.c:344
-#: gio/glocalfileoutputstream.c:438
+#: ../gio/glocalfileinputstream.c:255 ../gio/glocalfileoutputstream.c:246
+#: ../gio/glocalfileoutputstream.c:340
 #, c-format
 msgid "Error closing file: %s"
 msgstr "Erro ao fechar o ficheiro: %s"
 
-#: gio/glocalfilemonitor.c:865
+#: ../gio/glocalfilemonitor.c:840
 msgid "Unable to find default local file monitor type"
 msgstr "Impossível encontrar tipo de monitor predefinido de ficheiro local"
 
-#: gio/glocalfileoutputstream.c:209 gio/glocalfileoutputstream.c:287
-#: gio/glocalfileoutputstream.c:324 gio/glocalfileoutputstream.c:813
+#: ../gio/glocalfileoutputstream.c:194 ../gio/glocalfileoutputstream.c:226
+#: ../gio/glocalfileoutputstream.c:715
 #, c-format
 msgid "Error writing to file: %s"
 msgstr "Erro ao escrever no ficheiro: %s"
 
-#: gio/glocalfileoutputstream.c:371
+#: ../gio/glocalfileoutputstream.c:273
 #, c-format
 msgid "Error removing old backup link: %s"
 msgstr "Erro ao remover o atalho para a cópia de segurança antiga: %s"
 
-#: gio/glocalfileoutputstream.c:385 gio/glocalfileoutputstream.c:398
+#: ../gio/glocalfileoutputstream.c:287 ../gio/glocalfileoutputstream.c:300
 #, c-format
 msgid "Error creating backup copy: %s"
 msgstr "Erro ao criar a cópia da cópia de segurança: %s"
 
-#: gio/glocalfileoutputstream.c:416
+#: ../gio/glocalfileoutputstream.c:318
 #, c-format
 msgid "Error renaming temporary file: %s"
 msgstr "Erro ao renomear ficheiro temporário: %s"
 
-#: gio/glocalfileoutputstream.c:600 gio/glocalfileoutputstream.c:1160
+#: ../gio/glocalfileoutputstream.c:502 ../gio/glocalfileoutputstream.c:1054
 #, c-format
 msgid "Error truncating file: %s"
 msgstr "Erro ao truncar ficheiro: %s"
 
-#: gio/glocalfileoutputstream.c:653 gio/glocalfileoutputstream.c:891
-#: gio/glocalfileoutputstream.c:1141 gio/gsubprocess.c:380
+#: ../gio/glocalfileoutputstream.c:555 ../gio/glocalfileoutputstream.c:785
+#: ../gio/glocalfileoutputstream.c:1035 ../gio/gsubprocess.c:360
 #, c-format
-#| msgid "Error opening file %s: %s"
-msgid "Error opening file “%s”: %s"
-msgstr "Erro ao abrir o ficheiro “%s”: %s"
+msgid "Error opening file '%s': %s"
+msgstr "Erro ao abrir o ficheiro \"%s\": %s"
 
-#: gio/glocalfileoutputstream.c:922
+#: ../gio/glocalfileoutputstream.c:816
 msgid "Target file is a directory"
 msgstr "Ficheiro de destino é uma pasta"
 
-#: gio/glocalfileoutputstream.c:927
+#: ../gio/glocalfileoutputstream.c:821
 msgid "Target file is not a regular file"
 msgstr "O ficheiro de destino não é um ficheiro comum"
 
-#: gio/glocalfileoutputstream.c:939
+#: ../gio/glocalfileoutputstream.c:833
 msgid "The file was externally modified"
 msgstr "O ficheiro foi alterado externamente"
 
-#: gio/glocalfileoutputstream.c:1125
+#: ../gio/glocalfileoutputstream.c:1019
 #, c-format
 msgid "Error removing old file: %s"
 msgstr "Erro ao remover o ficheiro antigo: %s"
 
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:772
+#: ../gio/gmemoryinputstream.c:474 ../gio/gmemoryoutputstream.c:772
 msgid "Invalid GSeekType supplied"
 msgstr "Fornecido um GSeekType inválido"
 
-#: gio/gmemoryinputstream.c:484
+#: ../gio/gmemoryinputstream.c:484
 msgid "Invalid seek request"
 msgstr "Pedido de procura inválido"
 
-#: gio/gmemoryinputstream.c:508
+#: ../gio/gmemoryinputstream.c:508
 msgid "Cannot truncate GMemoryInputStream"
 msgstr "Impossível truncar um GMemoryInputStream"
 
-#: gio/gmemoryoutputstream.c:567
+#: ../gio/gmemoryoutputstream.c:567
 msgid "Memory output stream not resizable"
 msgstr "Fluxo de saída de memória não é redimensionável"
 
-#: gio/gmemoryoutputstream.c:583
+#: ../gio/gmemoryoutputstream.c:583
 msgid "Failed to resize memory output stream"
 msgstr "Falha ao redimensionar fluxo de saída de memória"
 
-#: gio/gmemoryoutputstream.c:673
+#: ../gio/gmemoryoutputstream.c:673
 msgid ""
 "Amount of memory required to process the write is larger than available "
 "address space"
@@ -3484,174 +2929,139 @@ msgstr ""
 "Quantidade de memória necessária para processar a escrita é maior do que o "
 "espaço de endereçamento disponível"
 
-#: gio/gmemoryoutputstream.c:782
+#: ../gio/gmemoryoutputstream.c:782
 msgid "Requested seek before the beginning of the stream"
 msgstr "Pedida uma procura para antes do início do fluxo"
 
-#: gio/gmemoryoutputstream.c:797
+#: ../gio/gmemoryoutputstream.c:797
 msgid "Requested seek beyond the end of the stream"
 msgstr "Pedida uma procura para depois do final do fluxo"
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement unmount.
-#: gio/gmount.c:399
-#| msgid "mount doesn't implement \"unmount\""
-msgid "mount doesn’t implement “unmount”"
-msgstr "Dispositivo montado não implementa “desmontar”"
+#: ../gio/gmount.c:393
+msgid "mount doesn't implement \"unmount\""
+msgstr "Dispositivo montado não implementa \"unmount\""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement eject.
-#: gio/gmount.c:475
-#| msgid "mount doesn't implement \"eject\""
-msgid "mount doesn’t implement “eject”"
-msgstr "Dispositivo montado não implementa “ejetar”"
+#: ../gio/gmount.c:469
+msgid "mount doesn't implement \"eject\""
+msgstr "Dispositivo montado não implementa \"eject\""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:553
-#| msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\""
-msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
+#: ../gio/gmount.c:547
+msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\""
 msgstr ""
-"Dispositivo montado não implementa “desmontar” ou “desmontar_com_operacao”"
+"Dispositivo montado não implementa \"unmount\" ou \"unmount_with_operation\""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:638
-#| msgid "mount doesn't implement \"eject\" or \"eject_with_operation\""
-msgid "mount doesn’t implement “eject” or “eject_with_operation”"
-msgstr "Dispositivo montado não implementa “eject” ou “eject_with_operation”"
+#: ../gio/gmount.c:632
+msgid "mount doesn't implement \"eject\" or \"eject_with_operation\""
+msgstr ""
+"Dispositivo montado não implementa \"eject\" ou \"eject_with_operation\""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement remount.
-#: gio/gmount.c:726
-#| msgid "mount doesn't implement \"remount\""
-msgid "mount doesn’t implement “remount”"
-msgstr "Dispositivo montado não implementa “remontar”"
+#: ../gio/gmount.c:720
+msgid "mount doesn't implement \"remount\""
+msgstr "Dispositivo montado não implementa \"remount\""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement content type guessing.
-#: gio/gmount.c:808
-#| msgid "mount doesn't implement content type guessing"
-msgid "mount doesn’t implement content type guessing"
-msgstr "dispositivo montado não implementa deteção do tipo de conteúdo"
+#: ../gio/gmount.c:802
+msgid "mount doesn't implement content type guessing"
+msgstr "Dispositivo montado não implementa deteção do tipo de conteúdo"
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement content type guessing.
-#: gio/gmount.c:895
-#| msgid "mount doesn't implement synchronous content type guessing"
-msgid "mount doesn’t implement synchronous content type guessing"
+#: ../gio/gmount.c:889
+msgid "mount doesn't implement synchronous content type guessing"
 msgstr ""
-"dispositivo montado não implementa deteção síncrona do tipo de conteúdo"
+"Dispositivo montado não implementa deteção síncrona do tipo de conteúdo"
 
-#: gio/gnetworkaddress.c:415
+#: ../gio/gnetworkaddress.c:378
 #, c-format
-#| msgid "Hostname '%s' contains '[' but not ']'"
-msgid "Hostname “%s” contains “[” but not “]”"
-msgstr "Nome de máquina “%s” contém “[” mas não “]”"
+msgid "Hostname '%s' contains '[' but not ']'"
+msgstr "Nome de máquina \"%s\" contém \"[\" mas não \"]\""
 
-#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
+#: ../gio/gnetworkmonitorbase.c:206 ../gio/gnetworkmonitorbase.c:310
 msgid "Network unreachable"
 msgstr "Rede inacessível"
 
-#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
+#: ../gio/gnetworkmonitorbase.c:244 ../gio/gnetworkmonitorbase.c:274
 msgid "Host unreachable"
 msgstr "Servidor inacessível"
 
-#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
-#: gio/gnetworkmonitornetlink.c:130
+#: ../gio/gnetworkmonitornetlink.c:96 ../gio/gnetworkmonitornetlink.c:108
+#: ../gio/gnetworkmonitornetlink.c:127
 #, c-format
 msgid "Could not create network monitor: %s"
 msgstr "Impossível criar o monitor de rede: %s"
 
-#: gio/gnetworkmonitornetlink.c:120
+#: ../gio/gnetworkmonitornetlink.c:117
 msgid "Could not create network monitor: "
 msgstr "Impossível criar o monitor de rede: "
 
-#: gio/gnetworkmonitornetlink.c:183
+#: ../gio/gnetworkmonitornetlink.c:175
 msgid "Could not get network status: "
 msgstr "Impossível obter o estado da rede: "
 
-#: gio/gnetworkmonitornm.c:348
-#, c-format
-#| msgid "NetworkManager version too old"
-msgid "NetworkManager not running"
-msgstr "Gestor de rede não está em execução"
-
-#: gio/gnetworkmonitornm.c:359
+#: ../gio/gnetworkmonitornm.c:326
 #, c-format
 msgid "NetworkManager version too old"
 msgstr "Versão do gestor de rede demasiado antiga"
 
-#: gio/goutputstream.c:232 gio/goutputstream.c:775
-#| msgid "Output stream doesn't implement write"
-msgid "Output stream doesn’t implement write"
+#: ../gio/goutputstream.c:212 ../gio/goutputstream.c:560
+msgid "Output stream doesn't implement write"
 msgstr "Fluxo de saída não implementa a escrita"
 
-#: gio/goutputstream.c:472 gio/goutputstream.c:1533
-#, c-format
-msgid "Sum of vectors passed to %s too large"
-msgstr "Soma dos vetores passados ao %s demasiado longa"
-
-#: gio/goutputstream.c:736 gio/goutputstream.c:1761
+#: ../gio/goutputstream.c:521 ../gio/goutputstream.c:1224
 msgid "Source stream is already closed"
 msgstr "Fluxo de origem já está fechado"
 
-#: gio/gresolver.c:386 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
-#, c-format
-#| msgid "Error resolving '%s': %s"
-msgid "Error resolving “%s”: %s"
-msgstr "Erro ao resolver “%s”: %s"
-
-#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:455 gio/gresolver.c:613
+#: ../gio/gresolver.c:330 ../gio/gthreadedresolver.c:116
+#: ../gio/gthreadedresolver.c:126
 #, c-format
-#| msgid "Input stream doesn't implement read"
-msgid "%s not implemented"
-msgstr "%s não implementado"
+msgid "Error resolving '%s': %s"
+msgstr "Erro ao resolver \"%s\": %s"
 
-#: gio/gresolver.c:981 gio/gresolver.c:1033
-#| msgid "Invalid filename"
-msgid "Invalid domain"
-msgstr "Domínio inválido"
-
-#: gio/gresource.c:665 gio/gresource.c:924 gio/gresource.c:963
-#: gio/gresource.c:1087 gio/gresource.c:1159 gio/gresource.c:1232
-#: gio/gresource.c:1313 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: ../gio/gresource.c:595 ../gio/gresource.c:846 ../gio/gresource.c:863
+#: ../gio/gresource.c:987 ../gio/gresource.c:1059 ../gio/gresource.c:1132
+#: ../gio/gresource.c:1202 ../gio/gresourcefile.c:453
+#: ../gio/gresourcefile.c:576 ../gio/gresourcefile.c:713
 #, c-format
-#| msgid "The resource at '%s' does not exist"
-msgid "The resource at “%s” does not exist"
-msgstr "O recurso em “%s” não existe"
+msgid "The resource at '%s' does not exist"
+msgstr "O recurso em \"%s\" não existe"
 
-#: gio/gresource.c:830
+#: ../gio/gresource.c:760
 #, c-format
-#| msgid "The resource at '%s' failed to decompress"
-msgid "The resource at “%s” failed to decompress"
-msgstr "Falha ao descomprimir o recurso em “%s”"
+msgid "The resource at '%s' failed to decompress"
+msgstr "Falha ao descomprimir o recurso em \"%s\""
 
-#: gio/gresourcefile.c:732
+#: ../gio/gresourcefile.c:709
 #, c-format
-#| msgid "The resource at '%s' is not a directory"
-msgid "The resource at “%s” is not a directory"
-msgstr "O recurso em “%s” não é um diretório"
+msgid "The resource at '%s' is not a directory"
+msgstr "O recurso em \"%s\" não é uma pasta"
 
-#: gio/gresourcefile.c:940
-#| msgid "Input stream doesn't implement seek"
-msgid "Input stream doesn’t implement seek"
-msgstr "Fluxo de entrada não implementa procura"
+#: ../gio/gresourcefile.c:917
+msgid "Input stream doesn't implement seek"
+msgstr "Fluxo de entrada não implementa seek"
 
-#: gio/gresource-tool.c:499
+#: ../gio/gresource-tool.c:494
 msgid "List sections containing resources in an elf FILE"
 msgstr "Lista secções que contêm recursos num FICHEIRO elf"
 
-#: gio/gresource-tool.c:505
+#: ../gio/gresource-tool.c:500
 msgid ""
 "List resources\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3661,15 +3071,16 @@ msgstr ""
 "Se for especificada uma SECÇÃO, apenas listar recursos nesta secção\n"
 "Se for especificado um CAMINHO, apenas listar recursos que coincidam"
 
-#: gio/gresource-tool.c:508 gio/gresource-tool.c:518
+#: ../gio/gresource-tool.c:503 ../gio/gresource-tool.c:513
 msgid "FILE [PATH]"
 msgstr "FICHEIRO [CAMINHO]"
 
-#: gio/gresource-tool.c:509 gio/gresource-tool.c:519 gio/gresource-tool.c:526
+#: ../gio/gresource-tool.c:504 ../gio/gresource-tool.c:514
+#: ../gio/gresource-tool.c:521
 msgid "SECTION"
 msgstr "SECÇÃO"
 
-#: gio/gresource-tool.c:514
+#: ../gio/gresource-tool.c:509
 msgid ""
 "List resources with details\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3681,31 +3092,18 @@ msgstr ""
 "Se for especificado um CAMINHO, apenas listar recursos que coincidam\n"
 "Detalhes incluem a secção, tamanho e compressão"
 
-#: gio/gresource-tool.c:524
+#: ../gio/gresource-tool.c:519
 msgid "Extract a resource file to stdout"
 msgstr "Extrair um ficheiro de recurso para o terminal"
 
-#: gio/gresource-tool.c:525
+#: ../gio/gresource-tool.c:520
 msgid "FILE PATH"
 msgstr "CAMINHO FICHEIRO"
 
-#: gio/gresource-tool.c:539
-#| msgid ""
-#| "Usage:\n"
-#| "  gresource [--section SECTION] COMMAND [ARGS...]\n"
-#| "\n"
-#| "Commands:\n"
-#| "  help                      Show this information\n"
-#| "  sections                  List resource sections\n"
-#| "  list                      List resources\n"
-#| "  details                   List resources with details\n"
-#| "  extract                   Extract a resource\n"
-#| "\n"
-#| "Use 'gresource help COMMAND' to get detailed help.\n"
-#| "\n"
+#: ../gio/gresource-tool.c:534
 msgid ""
 "Usage:\n"
-"  gresource [--section SECTION] COMMAND [ARGS]\n"
+"  gresource [--section SECTION] COMMAND [ARGS...]\n"
 "\n"
 "Commands:\n"
 "  help                      Show this information\n"
@@ -3714,10 +3112,10 @@ msgid ""
 "  details                   List resources with details\n"
 "  extract                   Extract a resource\n"
 "\n"
-"Use “gresource help COMMAND” to get detailed help.\n"
+"Use 'gresource help COMMAND' to get detailed help.\n"
 "\n"
 msgstr ""
-"Utilização:\n"
+"utilização:\n"
 "  gresource [--section SECÇÃO] COMANDO [ARGS...]\n"
 "\n"
 "Comandos:\n"
@@ -3730,7 +3128,7 @@ msgstr ""
 "Utilize \"gresource help COMANDO\" para obter ajuda detalhada.\n"
 "\n"
 
-#: gio/gresource-tool.c:553
+#: ../gio/gresource-tool.c:548
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3745,20 +3143,20 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gresource-tool.c:560
+#: ../gio/gresource-tool.c:555
 msgid "  SECTION   An (optional) elf section name\n"
 msgstr "  SECÇÃO    Um nome (opcional) de secção elf\n"
 
-#: gio/gresource-tool.c:564 gio/gsettings-tool.c:701
+#: ../gio/gresource-tool.c:559 ../gio/gsettings-tool.c:654
 msgid "  COMMAND   The (optional) command to explain\n"
 msgstr "  COMANDO   O comando (opcional) a ser explicado\n"
 
-#: gio/gresource-tool.c:570
+#: ../gio/gresource-tool.c:565
 msgid "  FILE      An elf file (a binary or a shared library)\n"
 msgstr ""
 "  FICHEIRO  Um ficheiro elf (um binário ou uma biblioteca partilhada)\n"
 
-#: gio/gresource-tool.c:573
+#: ../gio/gresource-tool.c:568
 msgid ""
 "  FILE      An elf file (a binary or a shared library)\n"
 "            or a compiled resource file\n"
@@ -3766,85 +3164,91 @@ msgstr ""
 "  FICHEIRO  Um ficheiro elf (um binário ou uma biblioteca partilhada)\n"
 "            ou um ficheiro de recurso compilado\n"
 
-#: gio/gresource-tool.c:577
+#: ../gio/gresource-tool.c:572
 msgid "[PATH]"
 msgstr "[CAMINHO]"
 
-#: gio/gresource-tool.c:579
+#: ../gio/gresource-tool.c:574
 msgid "  PATH      An (optional) resource path (may be partial)\n"
 msgstr "  CAMINHO   Um caminho (opcional) de recurso (pode ser parcial)\n"
 
-#: gio/gresource-tool.c:580
+#: ../gio/gresource-tool.c:575
 msgid "PATH"
 msgstr "CAMINHO"
 
-#: gio/gresource-tool.c:582
+#: ../gio/gresource-tool.c:577
 msgid "  PATH      A resource path\n"
 msgstr "  CAMINHO   Um caminho de recurso\n"
 
-#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:906
+#: ../gio/gsettings-tool.c:51 ../gio/gsettings-tool.c:72
+#: ../gio/gsettings-tool.c:851
 #, c-format
-#| msgid "No such schema '%s'\n"
-msgid "No such schema “%s”\n"
-msgstr "Não existe o esquema “%s”\n"
+msgid "No such schema '%s'\n"
+msgstr "Não existe o esquema \"%s\"\n"
 
-#: gio/gsettings-tool.c:55
+#: ../gio/gsettings-tool.c:57
 #, c-format
-#| msgid "Schema '%s' is not relocatable (path must not be specified)\n"
-msgid "Schema “%s” is not relocatable (path must not be specified)\n"
-msgstr "O esquema “%s” não é realocável (não pode ser especificado caminho)\n"
+msgid "Schema '%s' is not relocatable (path must not be specified)\n"
+msgstr ""
+"O esquema \"%s\" não é realocável (não pode ser especificado caminho)\n"
 
-#: gio/gsettings-tool.c:76
+#: ../gio/gsettings-tool.c:78
 #, c-format
-#| msgid "Schema '%s' is relocatable (path must be specified)\n"
-msgid "Schema “%s” is relocatable (path must be specified)\n"
-msgstr "O esquema “%s” é realocável (tem de ser especificado o caminho)\n"
+msgid "Schema '%s' is relocatable (path must be specified)\n"
+msgstr "O esquema \"%s\" é realocável (tem de ser especificado o caminho)\n"
 
-#: gio/gsettings-tool.c:90
+#: ../gio/gsettings-tool.c:92
+#, c-format
 msgid "Empty path given.\n"
 msgstr "Indicado um caminho vazio.\n"
 
-#: gio/gsettings-tool.c:96
+#: ../gio/gsettings-tool.c:98
+#, c-format
 msgid "Path must begin with a slash (/)\n"
 msgstr "O caminho tem de começar com uma barra (/)\n"
 
-#: gio/gsettings-tool.c:102
+#: ../gio/gsettings-tool.c:104
+#, c-format
 msgid "Path must end with a slash (/)\n"
 msgstr "O caminho tem de terminar com uma barra (/)\n"
 
-#: gio/gsettings-tool.c:108
+#: ../gio/gsettings-tool.c:110
+#, c-format
 msgid "Path must not contain two adjacent slashes (//)\n"
 msgstr "O caminho não pode conter duas barras adjacentes (//)\n"
 
-#: gio/gsettings-tool.c:536
+#: ../gio/gsettings-tool.c:489
+#, c-format
 msgid "The provided value is outside of the valid range\n"
 msgstr "O valor especificado encontra-se fora do intervalo válido\n"
 
-#: gio/gsettings-tool.c:543
+#: ../gio/gsettings-tool.c:496
+#, c-format
 msgid "The key is not writable\n"
 msgstr "O valor da chave não pode ser escrito\n"
 
-#: gio/gsettings-tool.c:579
+#: ../gio/gsettings-tool.c:532
 msgid "List the installed (non-relocatable) schemas"
 msgstr "Listar os esquemas instalados (não-realocáveis)"
 
-#: gio/gsettings-tool.c:585
+#: ../gio/gsettings-tool.c:538
 msgid "List the installed relocatable schemas"
 msgstr "Listar os esquemas instalados realocáveis"
 
-#: gio/gsettings-tool.c:591
+#: ../gio/gsettings-tool.c:544
 msgid "List the keys in SCHEMA"
 msgstr "Listar as chaves no ESQUEMA"
 
-#: gio/gsettings-tool.c:592 gio/gsettings-tool.c:598 gio/gsettings-tool.c:641
+#: ../gio/gsettings-tool.c:545 ../gio/gsettings-tool.c:551
+#: ../gio/gsettings-tool.c:594
 msgid "SCHEMA[:PATH]"
 msgstr "ESQUEMA[:CAMINHO]"
 
-#: gio/gsettings-tool.c:597
+#: ../gio/gsettings-tool.c:550
 msgid "List the children of SCHEMA"
 msgstr "Listar os filhos de ESQUEMA"
 
-#: gio/gsettings-tool.c:603
+#: ../gio/gsettings-tool.c:556
 msgid ""
 "List keys and values, recursively\n"
 "If no SCHEMA is given, list all keys\n"
@@ -3852,48 +3256,49 @@ msgstr ""
 "Listar as chaves e valores, recursivamente\n"
 "Se não for indicado um ESQUEMA, listar todas as chaves\n"
 
-#: gio/gsettings-tool.c:605
+#: ../gio/gsettings-tool.c:558
 msgid "[SCHEMA[:PATH]]"
 msgstr "[ESQUEMA[:CAMINHO]]"
 
-#: gio/gsettings-tool.c:610
+#: ../gio/gsettings-tool.c:563
 msgid "Get the value of KEY"
 msgstr "Obter o valor da CHAVE"
 
-#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:623
-#: gio/gsettings-tool.c:635 gio/gsettings-tool.c:647
+#: ../gio/gsettings-tool.c:564 ../gio/gsettings-tool.c:570
+#: ../gio/gsettings-tool.c:576 ../gio/gsettings-tool.c:588
+#: ../gio/gsettings-tool.c:600
 msgid "SCHEMA[:PATH] KEY"
 msgstr "ESQUEMA[:CAMINHO] CHAVE"
 
-#: gio/gsettings-tool.c:616
+#: ../gio/gsettings-tool.c:569
 msgid "Query the range of valid values for KEY"
 msgstr "Consultar o intervalo de valores válidos para a CHAVE"
 
-#: gio/gsettings-tool.c:622
+#: ../gio/gsettings-tool.c:575
 msgid "Query the description for KEY"
 msgstr "Consultar o descritor para a CHAVE"
 
-#: gio/gsettings-tool.c:628
+#: ../gio/gsettings-tool.c:581
 msgid "Set the value of KEY to VALUE"
 msgstr "Definir o valor da CHAVE com o VALOR"
 
-#: gio/gsettings-tool.c:629
+#: ../gio/gsettings-tool.c:582
 msgid "SCHEMA[:PATH] KEY VALUE"
 msgstr "ESQUEMA[:CAMINHO] CHAVE VALOR"
 
-#: gio/gsettings-tool.c:634
+#: ../gio/gsettings-tool.c:587
 msgid "Reset KEY to its default value"
 msgstr "Repor o valor predefinido de CHAVE"
 
-#: gio/gsettings-tool.c:640
+#: ../gio/gsettings-tool.c:593
 msgid "Reset all keys in SCHEMA to their defaults"
 msgstr "Repor todas as chaves no ESQUEMA para os seus valores predefinidos"
 
-#: gio/gsettings-tool.c:646
+#: ../gio/gsettings-tool.c:599
 msgid "Check if KEY is writable"
 msgstr "Verificar se é possível definir o valor de CHAVE"
 
-#: gio/gsettings-tool.c:652
+#: ../gio/gsettings-tool.c:605
 msgid ""
 "Monitor KEY for changes.\n"
 "If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3903,38 +3308,15 @@ msgstr ""
 "Se nenhuma chave for especificada, monitorizar todas as chaves do ESQUEMA.\n"
 "Utilizar ^C para parar de monitorizar.\n"
 
-#: gio/gsettings-tool.c:655
+#: ../gio/gsettings-tool.c:608
 msgid "SCHEMA[:PATH] [KEY]"
 msgstr "ESQUEMA[:CAMINHO] [CHAVE]"
 
-#: gio/gsettings-tool.c:667
-#| msgid ""
-#| "Usage:\n"
-#| "  gsettings --version\n"
-#| "  gsettings [--schemadir SCHEMADIR] COMMAND [ARGS...]\n"
-#| "\n"
-#| "Commands:\n"
-#| "  help                      Show this information\n"
-#| "  list-schemas              List installed schemas\n"
-#| "  list-relocatable-schemas  List relocatable schemas\n"
-#| "  list-keys                 List keys in a schema\n"
-#| "  list-children             List children of a schema\n"
-#| "  list-recursively          List keys and values, recursively\n"
-#| "  range                     Queries the range of a key\n"
-#| "  describe                  Queries the description of a key\n"
-#| "  get                       Get the value of a key\n"
-#| "  set                       Set the value of a key\n"
-#| "  reset                     Reset the value of a key\n"
-#| "  reset-recursively         Reset all values in a given schema\n"
-#| "  writable                  Check if a key is writable\n"
-#| "  monitor                   Watch for changes\n"
-#| "\n"
-#| "Use 'gsettings help COMMAND' to get detailed help.\n"
-#| "\n"
+#: ../gio/gsettings-tool.c:620
 msgid ""
 "Usage:\n"
 "  gsettings --version\n"
-"  gsettings [--schemadir SCHEMADIR] COMMAND [ARGS]\n"
+"  gsettings [--schemadir SCHEMADIR] COMMAND [ARGS...]\n"
 "\n"
 "Commands:\n"
 "  help                      Show this information\n"
@@ -3952,11 +3334,11 @@ msgid ""
 "  writable                  Check if a key is writable\n"
 "  monitor                   Watch for changes\n"
 "\n"
-"Use “gsettings help COMMAND” to get detailed help.\n"
+"Use 'gsettings help COMMAND' to get detailed help.\n"
 "\n"
 msgstr ""
 "Utilização:\n"
-"  gsettings --version\n"
+"  gsettings --versão\n"
 "  gsettings [--schemadir DIRESQUEMAS] COMANDO [ARGS...]\n"
 "\n"
 "Comandos:\n"
@@ -3967,7 +3349,6 @@ msgstr ""
 "  list-children             Lista os filhos de um esquema\n"
 "  list-recursively          Lista as chaves e valores, recursivamente\n"
 "  range                     Consulta o intervalo de uma chave\n"
-"  describe                  Consulta a descrição de um chave\n"
 "  get                       Obtém o valor de uma chave\n"
 "  set                       Define o valor de uma chave\n"
 "  reset                     Repõe o valor predefinido de uma chave\n"
@@ -3978,7 +3359,7 @@ msgstr ""
 "Utilize \"gsettings help COMANDO\" para obter ajuda detalhada.\n"
 "\n"
 
-#: gio/gsettings-tool.c:691
+#: ../gio/gsettings-tool.c:644
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3993,11 +3374,11 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gsettings-tool.c:697
+#: ../gio/gsettings-tool.c:650
 msgid "  SCHEMADIR A directory to search for additional schemas\n"
 msgstr "  DIRESQUEMAS Um pasta onde procurar por esquemas adicionais\n"
 
-#: gio/gsettings-tool.c:705
+#: ../gio/gsettings-tool.c:658
 msgid ""
 "  SCHEMA    The name of the schema\n"
 "  PATH      The path, for relocatable schemas\n"
@@ -4006,1612 +3387,1258 @@ msgstr ""
 "  ESQUEMA     O nome do esquema\n"
 "  CAMINHO     O caminho, para esquemas realocáveis\n"
 
-#: gio/gsettings-tool.c:710
+#: ../gio/gsettings-tool.c:663
 msgid "  KEY       The (optional) key within the schema\n"
 msgstr "  CHAVE     A chave (opcional) dentro do esquema\n"
 
-#: gio/gsettings-tool.c:714
+#: ../gio/gsettings-tool.c:667
 msgid "  KEY       The key within the schema\n"
 msgstr "  CHAVE     A chave dentro do esquema\n"
 
-#: gio/gsettings-tool.c:718
+#: ../gio/gsettings-tool.c:671
 msgid "  VALUE     The value to set\n"
 msgstr "  VALOR     O valor a definir\n"
 
-#: gio/gsettings-tool.c:773
+#: ../gio/gsettings-tool.c:726
 #, c-format
 msgid "Could not load schemas from %s: %s\n"
 msgstr "Impossível ler esquemas de %s: %s\n"
 
-#: gio/gsettings-tool.c:785
+#: ../gio/gsettings-tool.c:738
+#, c-format
 msgid "No schemas installed\n"
 msgstr "Nenhum ficheiro de esquema instalado\n"
 
-#: gio/gsettings-tool.c:864
+#: ../gio/gsettings-tool.c:809
+#, c-format
 msgid "Empty schema name given\n"
 msgstr "Indicado um nome de esquema vazio\n"
 
-#: gio/gsettings-tool.c:919
+#: ../gio/gsettings-tool.c:864
 #, c-format
-#| msgid "No such key '%s'\n"
-msgid "No such key “%s”\n"
-msgstr "Não existe a chave “%s”\n"
+msgid "No such key '%s'\n"
+msgstr "Não existe a chave \"%s\"\n"
 
-#: gio/gsocket.c:418
+#: ../gio/gsocket.c:364
 msgid "Invalid socket, not initialized"
 msgstr "Socket inválido, não inicializado"
 
-#: gio/gsocket.c:425
+#: ../gio/gsocket.c:371
 #, c-format
 msgid "Invalid socket, initialization failed due to: %s"
 msgstr "Socket inválido, a inicialização falhou devido a: %s"
 
-#: gio/gsocket.c:433
+#: ../gio/gsocket.c:379
 msgid "Socket is already closed"
 msgstr "Socket já está fechado"
 
-#: gio/gsocket.c:448 gio/gsocket.c:3182 gio/gsocket.c:4399 gio/gsocket.c:4457
+#: ../gio/gsocket.c:394 ../gio/gsocket.c:2751 ../gio/gsocket.c:3897
+#: ../gio/gsocket.c:3952
 msgid "Socket I/O timed out"
 msgstr "Tempo expirou no I/O de socket"
 
-#: gio/gsocket.c:583
+#: ../gio/gsocket.c:526
 #, c-format
 msgid "creating GSocket from fd: %s"
 msgstr "a criar o GSocket do fd: %s"
 
-#: gio/gsocket.c:612 gio/gsocket.c:666 gio/gsocket.c:673
+#: ../gio/gsocket.c:554 ../gio/gsocket.c:608 ../gio/gsocket.c:615
 #, c-format
 msgid "Unable to create socket: %s"
 msgstr "Impossível criar socket: %s"
 
-#: gio/gsocket.c:666
+#: ../gio/gsocket.c:608
 msgid "Unknown family was specified"
 msgstr "Foi especificada uma família desconhecida"
 
-#: gio/gsocket.c:673
+#: ../gio/gsocket.c:615
 msgid "Unknown protocol was specified"
 msgstr "Foi especificado um protocolo desconhecido"
 
-#: gio/gsocket.c:1164
+#: ../gio/gsocket.c:1104
 #, c-format
 msgid "Cannot use datagram operations on a non-datagram socket."
 msgstr "Impossível utilizar operações datagram em sockets não datagram."
 
-#: gio/gsocket.c:1181
+#: ../gio/gsocket.c:1121
 #, c-format
 msgid "Cannot use datagram operations on a socket with a timeout set."
 msgstr ""
 "Impossível utilizar operações datagram num socket com um tempo de expiração "
 "definido."
 
-#: gio/gsocket.c:1988
+#: ../gio/gsocket.c:1925
 #, c-format
 msgid "could not get local address: %s"
 msgstr "Impossível obter o endereço local: %s"
 
-#: gio/gsocket.c:2034
+#: ../gio/gsocket.c:1968
 #, c-format
 msgid "could not get remote address: %s"
 msgstr "Impossível obter o endereço remoto: %s"
 
-#: gio/gsocket.c:2100
+#: ../gio/gsocket.c:2034
 #, c-format
 msgid "could not listen: %s"
 msgstr "Impossível escutar: %s"
 
-#: gio/gsocket.c:2204
+#: ../gio/gsocket.c:2133
 #, c-format
-#| msgid "Error binding to address: %s"
-msgid "Error binding to address %s: %s"
-msgstr "Erro ao ligar-se ao endereço: %s: %s"
+msgid "Error binding to address: %s"
+msgstr "Erro ao ligar-se ao endereço: %s"
 
-#: gio/gsocket.c:2380 gio/gsocket.c:2417 gio/gsocket.c:2527 gio/gsocket.c:2552
-#: gio/gsocket.c:2615 gio/gsocket.c:2673 gio/gsocket.c:2691
+#: ../gio/gsocket.c:2248 ../gio/gsocket.c:2285
 #, c-format
 msgid "Error joining multicast group: %s"
 msgstr "Erro ao juntar-se a um grupo multicast: %s"
 
-#: gio/gsocket.c:2381 gio/gsocket.c:2418 gio/gsocket.c:2528 gio/gsocket.c:2553
-#: gio/gsocket.c:2616 gio/gsocket.c:2674 gio/gsocket.c:2692
+#: ../gio/gsocket.c:2249 ../gio/gsocket.c:2286
 #, c-format
 msgid "Error leaving multicast group: %s"
 msgstr "Erro ao sair do grupo multicast: %s"
 
-#: gio/gsocket.c:2382
+#: ../gio/gsocket.c:2250
 msgid "No support for source-specific multicast"
 msgstr "Suporte indisponível para multicast específico da origem"
 
-#: gio/gsocket.c:2529
-#| msgid "Unsupported socket address"
-msgid "Unsupported socket family"
-msgstr "Família de socket não suportada"
-
-#: gio/gsocket.c:2554
-msgid "source-specific not an IPv4 address"
-msgstr "fonte-específica não é um endereço IPv4"
-
-#: gio/gsocket.c:2578
-#, c-format
-msgid "Interface name too long"
-msgstr "Nome de ambiente demasiado extenso"
-
-#: gio/gsocket.c:2591 gio/gsocket.c:2641
-#, c-format
-msgid "Interface not found: %s"
-msgstr "Ambiente não encontrado: %s"
-
-#: gio/gsocket.c:2617
-#| msgid "No support for source-specific multicast"
-msgid "No support for IPv4 source-specific multicast"
-msgstr "Suporte indisponível para difusão de fonte-específica IPv4"
-
-#: gio/gsocket.c:2675
-#| msgid "No support for source-specific multicast"
-msgid "No support for IPv6 source-specific multicast"
-msgstr "Suporte indisponível para difusão de fonte-específica IPv6"
-
-#: gio/gsocket.c:2884
+#: ../gio/gsocket.c:2470
 #, c-format
 msgid "Error accepting connection: %s"
 msgstr "Erro ao aceitar a ligação: %s"
 
-#: gio/gsocket.c:3010
+#: ../gio/gsocket.c:2593
 msgid "Connection in progress"
 msgstr "Ligação em curso"
 
-#: gio/gsocket.c:3061
+#: ../gio/gsocket.c:2644
 msgid "Unable to get pending error: "
 msgstr "Impossível obter o erro pendente: "
 
-#: gio/gsocket.c:3247
+#: ../gio/gsocket.c:2816
 #, c-format
 msgid "Error receiving data: %s"
 msgstr "Erro ao receber os dados: %s"
 
-#: gio/gsocket.c:3444
+#: ../gio/gsocket.c:3013
 #, c-format
 msgid "Error sending data: %s"
 msgstr "Erro ao enviar os dados: %s"
 
-#: gio/gsocket.c:3631
+#: ../gio/gsocket.c:3200
 #, c-format
 msgid "Unable to shutdown socket: %s"
 msgstr "Impossível desligar o socket: %s"
 
-#: gio/gsocket.c:3712
+#: ../gio/gsocket.c:3281
 #, c-format
 msgid "Error closing socket: %s"
 msgstr "Erro ao fechar o socket: %s"
 
-#: gio/gsocket.c:4392
+#: ../gio/gsocket.c:3890
 #, c-format
 msgid "Waiting for socket condition: %s"
 msgstr "A aguardar pela condição do socket: %s"
 
-#: gio/gsocket.c:4770 gio/gsocket.c:4772 gio/gsocket.c:4919 gio/gsocket.c:5004
-#: gio/gsocket.c:5182 gio/gsocket.c:5222 gio/gsocket.c:5224
+#: ../gio/gsocket.c:4362 ../gio/gsocket.c:4442 ../gio/gsocket.c:4620
 #, c-format
 msgid "Error sending message: %s"
 msgstr "Erro ao enviar a mensagem: %s"
 
-#: gio/gsocket.c:4946
+#: ../gio/gsocket.c:4386
 msgid "GSocketControlMessage not supported on Windows"
 msgstr "GSocketControlMessage não é suportada em Windows"
 
-#: gio/gsocket.c:5415 gio/gsocket.c:5488 gio/gsocket.c:5714
+#: ../gio/gsocket.c:4839 ../gio/gsocket.c:4912 ../gio/gsocket.c:5139
 #, c-format
 msgid "Error receiving message: %s"
 msgstr "Erro ao receber a mensagem: %s"
 
-#: gio/gsocket.c:5995
+#: ../gio/gsocket.c:5411
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr "Impossível ler as credenciais do socket: %s"
 
-#: gio/gsocket.c:6004
+#: ../gio/gsocket.c:5420
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr "g_socket_get_credentials não implementado neste SO"
 
-#: gio/gsocketclient.c:182
+#: ../gio/gsocketclient.c:176
 #, c-format
 msgid "Could not connect to proxy server %s: "
 msgstr "Impossível ligar ao servidor de proxy %s: "
 
-#: gio/gsocketclient.c:196
+#: ../gio/gsocketclient.c:190
 #, c-format
 msgid "Could not connect to %s: "
 msgstr "Impossível ligar a %s: "
 
-#: gio/gsocketclient.c:198
+#: ../gio/gsocketclient.c:192
 msgid "Could not connect: "
 msgstr "impossível ligar: "
 
-#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1866
+#: ../gio/gsocketclient.c:1027 ../gio/gsocketclient.c:1599
 msgid "Unknown error on connect"
 msgstr "Erro desconhecido ao ligar"
 
-#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1668
+#: ../gio/gsocketclient.c:1081 ../gio/gsocketclient.c:1535
 msgid "Proxying over a non-TCP connection is not supported."
 msgstr "Não há suporte à realização de proxy sobre ligações não-TCP."
 
-#: gio/gsocketclient.c:1120 gio/gsocketclient.c:1698
+#: ../gio/gsocketclient.c:1110 ../gio/gsocketclient.c:1561
 #, c-format
-#| msgid "Proxy protocol '%s' is not supported."
-msgid "Proxy protocol “%s” is not supported."
-msgstr "O protocolo de proxy “%s” não é suportado."
+msgid "Proxy protocol '%s' is not supported."
+msgstr "O protocolo de proxy \"%s\" não é suportado."
 
-#: gio/gsocketlistener.c:230
+#: ../gio/gsocketlistener.c:218
 msgid "Listener is already closed"
 msgstr "A escuta já se encontra fechada"
 
-#: gio/gsocketlistener.c:276
+#: ../gio/gsocketlistener.c:264
 msgid "Added socket is closed"
 msgstr "Socket adicionado está fechado"
 
-#: gio/gsocks4aproxy.c:118
+#: ../gio/gsocks4aproxy.c:118
 #, c-format
-#| msgid "SOCKSv4 does not support IPv6 address '%s'"
-msgid "SOCKSv4 does not support IPv6 address “%s”"
-msgstr "SOCKSv4 não suporta o endereço IPv6 “%s”"
+msgid "SOCKSv4 does not support IPv6 address '%s'"
+msgstr "SOCKSv4 não suporta o endereço IPv6 \"%s\""
 
-#: gio/gsocks4aproxy.c:136
+#: ../gio/gsocks4aproxy.c:136
 msgid "Username is too long for SOCKSv4 protocol"
 msgstr "Utilizador demasiado extenso para o protocolo SOCKSv4"
 
-#: gio/gsocks4aproxy.c:153
+#: ../gio/gsocks4aproxy.c:153
 #, c-format
-#| msgid "Hostname '%s' is too long for SOCKSv4 protocol"
-msgid "Hostname “%s” is too long for SOCKSv4 protocol"
-msgstr "Nome de máquina “%s” é demasiado extenso para o protocolo SOCKSv4"
+msgid "Hostname '%s' is too long for SOCKSv4 protocol"
+msgstr "Nome de máquina \"%s\" é demasiado extenso para o protocolo SOCKSv4"
 
-#: gio/gsocks4aproxy.c:179
+#: ../gio/gsocks4aproxy.c:179
 msgid "The server is not a SOCKSv4 proxy server."
 msgstr "O servidor não é um servidor de proxy SOCKSv4."
 
-#: gio/gsocks4aproxy.c:186
+#: ../gio/gsocks4aproxy.c:186
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr "A ligação através do servidor SOCKSv4 foi rejeitada"
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
+#: ../gio/gsocks5proxy.c:153 ../gio/gsocks5proxy.c:324
+#: ../gio/gsocks5proxy.c:334
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "O servidor não é um servidor de proxy SOCKSv5."
 
-#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
+#: ../gio/gsocks5proxy.c:167
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr "A proxy SOCKSv5 requer autenticação."
 
-#: gio/gsocks5proxy.c:191
+#: ../gio/gsocks5proxy.c:177
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
 msgstr ""
 "O SOCKSv5 requer um método de autenticação que não é suportado pelo GLib."
 
-#: gio/gsocks5proxy.c:220
+#: ../gio/gsocks5proxy.c:206
 msgid "Username or password is too long for SOCKSv5 protocol."
-msgstr ""
-"Utilizador ou palavra-passe demasiado extenso para o protocolo SOCKSv5."
+msgstr "Utilizador ou senha demasiado extenso para o protocolo SOCKSv5."
 
-#: gio/gsocks5proxy.c:250
+#: ../gio/gsocks5proxy.c:236
 msgid "SOCKSv5 authentication failed due to wrong username or password."
-msgstr ""
-"Falha na autenticação SOCKSv5 devido a utilizador ou palavra-passe "
-"incorretos."
+msgstr "Falha na autenticação SOCKSv5 devido a utilizador ou senha incorretos."
 
-#: gio/gsocks5proxy.c:300
+#: ../gio/gsocks5proxy.c:286
 #, c-format
-#| msgid "Hostname '%s' is too long for SOCKSv5 protocol"
-msgid "Hostname “%s” is too long for SOCKSv5 protocol"
-msgstr "Nome de máquina “%s” demasiado extenso para o protocolo SOCKSv5"
+msgid "Hostname '%s' is too long for SOCKSv5 protocol"
+msgstr "Nome de máquina \"%s\" demasiado extenso para o protocolo SOCKSv5"
 
-#: gio/gsocks5proxy.c:362
+#: ../gio/gsocks5proxy.c:348
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr "O servidor de proxy SOCKSv5 utiliza um tipo de endereço desconhecido."
 
-#: gio/gsocks5proxy.c:369
+#: ../gio/gsocks5proxy.c:355
 msgid "Internal SOCKSv5 proxy server error."
 msgstr "Erro interno de servidor de proxy SOCKSv5."
 
-#: gio/gsocks5proxy.c:375
+#: ../gio/gsocks5proxy.c:361
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr "Ligação SOCKSv5 não é permitida pelo conjunto de regras."
 
-#: gio/gsocks5proxy.c:382
+#: ../gio/gsocks5proxy.c:368
 msgid "Host unreachable through SOCKSv5 server."
 msgstr "Máquina inacessível através do servidor SOCKSv5."
 
-#: gio/gsocks5proxy.c:388
+#: ../gio/gsocks5proxy.c:374
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr "Rede inacessível através da proxy SOCKSv5."
 
-#: gio/gsocks5proxy.c:394
+#: ../gio/gsocks5proxy.c:380
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr "Ligação recusada através da proxy SOCKSv5."
 
-#: gio/gsocks5proxy.c:400
-#| msgid "SOCKSv5 proxy does not support 'connect' command."
-msgid "SOCKSv5 proxy does not support “connect” command."
-msgstr "Proxy SOCKSv5 não suporta o comando “connect”."
+#: ../gio/gsocks5proxy.c:386
+msgid "SOCKSv5 proxy does not support 'connect' command."
+msgstr "Proxy SOCKSv5 não suporta o comando \"connect\"."
 
-#: gio/gsocks5proxy.c:406
+#: ../gio/gsocks5proxy.c:392
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr "Proxy SOCKSv5 não suporta o tipo de endereço indicado."
 
-#: gio/gsocks5proxy.c:412
+#: ../gio/gsocks5proxy.c:398
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Erro de proxy SOCKSv5 desconhecido."
 
-#: gio/gthemedicon.c:595
+#: ../gio/gthemedicon.c:518
 #, c-format
-#| msgid "Can't handle version %d of GThemedIcon encoding"
-msgid "Can’t handle version %d of GThemedIcon encoding"
+msgid "Can't handle version %d of GThemedIcon encoding"
 msgstr "Impossível manipular a versão %d da codificação GThemedIcon"
 
-#: gio/gthreadedresolver.c:152
+#: ../gio/gthreadedresolver.c:118
 msgid "No valid addresses were found"
 msgstr "Não foram encontrados endereços válidos"
 
-#: gio/gthreadedresolver.c:334
+#: ../gio/gthreadedresolver.c:213
 #, c-format
-#| msgid "Error reverse-resolving '%s': %s"
-msgid "Error reverse-resolving “%s”: %s"
-msgstr "Erro ao realizar a resolução invertida de “%s”: %s"
+msgid "Error reverse-resolving '%s': %s"
+msgstr "Erro ao realizar a resolução invertida de \"%s\": %s"
 
-#: gio/gthreadedresolver.c:671 gio/gthreadedresolver.c:750
-#: gio/gthreadedresolver.c:848 gio/gthreadedresolver.c:898
+#: ../gio/gthreadedresolver.c:550 ../gio/gthreadedresolver.c:630
+#: ../gio/gthreadedresolver.c:728 ../gio/gthreadedresolver.c:778
 #, c-format
-#| msgid "No DNS record of the requested type for '%s'"
-msgid "No DNS record of the requested type for “%s”"
-msgstr "Nenhum registo DNS do tipo pedido para “%s”"
+msgid "No DNS record of the requested type for '%s'"
+msgstr "Nenhum registo DNS do tipo pedido para \"%s\""
 
-#: gio/gthreadedresolver.c:676 gio/gthreadedresolver.c:853
+#: ../gio/gthreadedresolver.c:555 ../gio/gthreadedresolver.c:733
 #, c-format
-#| msgid "Temporarily unable to resolve '%s'"
-msgid "Temporarily unable to resolve “%s”"
-msgstr "Temporariamente indisponível para resolver “%s”"
+msgid "Temporarily unable to resolve '%s'"
+msgstr "Temporariamente indisponível para resolver \"%s\""
 
-#: gio/gthreadedresolver.c:681 gio/gthreadedresolver.c:858
-#: gio/gthreadedresolver.c:968
+#: ../gio/gthreadedresolver.c:560 ../gio/gthreadedresolver.c:738
 #, c-format
-#| msgid "Error resolving '%s'"
-msgid "Error resolving “%s”"
-msgstr "Erro ao resolver “%s”"
-
-#: gio/gtlscertificate.c:243
-msgid "No PEM-encoded private key found"
-msgstr "Impossível encontrar uma chave privada codificada PEM"
+msgid "Error resolving '%s'"
+msgstr "Erro ao resolver \"%s\""
 
-#: gio/gtlscertificate.c:253
+#: ../gio/gtlscertificate.c:250
 msgid "Cannot decrypt PEM-encoded private key"
 msgstr "Impossível desencriptar a chave privada codificada PEM"
 
-#: gio/gtlscertificate.c:264
+#: ../gio/gtlscertificate.c:255
+msgid "No PEM-encoded private key found"
+msgstr "Impossível encontrar uma chave privada codificada PEM"
+
+#: ../gio/gtlscertificate.c:265
 msgid "Could not parse PEM-encoded private key"
 msgstr "Impossível processar a chave privada codificada PEM"
 
-#: gio/gtlscertificate.c:291
+#: ../gio/gtlscertificate.c:290
 msgid "No PEM-encoded certificate found"
 msgstr "Impossível encontrar um certificado codificado PEM"
 
-#: gio/gtlscertificate.c:300
+#: ../gio/gtlscertificate.c:299
 msgid "Could not parse PEM-encoded certificate"
 msgstr "Impossível processar certificado codificado PEM"
 
-#: gio/gtlspassword.c:111
+#: ../gio/gtlspassword.c:111
 msgid ""
 "This is the last chance to enter the password correctly before your access "
 "is locked out."
 msgstr ""
-"Esta é a última oportunidade para introduzir corretamente a palavra-passe "
-"antes de lhe ser vedado o acesso."
+"Esta é a última oportunidade para introduzir corretamente a senha antes de "
+"lhe ser vedado o acesso."
 
-#. Translators: This is not the 'This is the last chance' string. It is
-#. * displayed when more than one attempt is allowed.
-#: gio/gtlspassword.c:115
-#| msgid ""
-#| "Several password entered have been incorrect, and your access will be "
-#| "locked out after further failures."
+#: ../gio/gtlspassword.c:113
 msgid ""
-"Several passwords entered have been incorrect, and your access will be "
-"locked out after further failures."
+"Several password entered have been incorrect, and your access will be locked "
+"out after further failures."
 msgstr ""
-"Foram introduzidas várias palavras-passe incorretas e o seu acesso será "
-"vedado após falhas adicionais."
+"Foram introduzidas várias senhas incorretas e o seu acesso será vedado após "
+"falhas adicionais."
 
-#: gio/gtlspassword.c:117
+#: ../gio/gtlspassword.c:115
 msgid "The password entered is incorrect."
-msgstr "A palavra-passe introduzida está incorreta."
+msgstr "A senha introduzida está incorreta."
 
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:579
+#: ../gio/gunixconnection.c:166 ../gio/gunixconnection.c:561
 #, c-format
 msgid "Expecting 1 control message, got %d"
 msgid_plural "Expecting 1 control message, got %d"
 msgstr[0] "Era esperada 1 mensagem de controlo, obtida %d"
 msgstr[1] "Era esperada 1 mensagem de controlo, obtidas %d"
 
-#: gio/gunixconnection.c:182 gio/gunixconnection.c:591
+#: ../gio/gunixconnection.c:182 ../gio/gunixconnection.c:573
 msgid "Unexpected type of ancillary data"
 msgstr "Tipo inesperado de dados basilares"
 
-#: gio/gunixconnection.c:200
+#: ../gio/gunixconnection.c:200
 #, c-format
 msgid "Expecting one fd, but got %d\n"
 msgid_plural "Expecting one fd, but got %d\n"
 msgstr[0] "Esperado um fd, obtido %d\n"
 msgstr[1] "Esperado um fd, obtidos %d\n"
 
-#: gio/gunixconnection.c:219
+#: ../gio/gunixconnection.c:219
 msgid "Received invalid fd"
 msgstr "Recebido um fd inválido"
 
-#: gio/gunixconnection.c:363
+#: ../gio/gunixconnection.c:355
 msgid "Error sending credentials: "
 msgstr "Erro ao enviar as credenciais: "
 
-#: gio/gunixconnection.c:520
+#: ../gio/gunixconnection.c:503
 #, c-format
 msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
 msgstr "Erro ao verificar se SO_PASSCRED está ativo para o socket: %s"
 
-#: gio/gunixconnection.c:536
+#: ../gio/gunixconnection.c:518
 #, c-format
 msgid "Error enabling SO_PASSCRED: %s"
 msgstr "Erro ao ativar SO_PASSCRED: %s"
 
-#: gio/gunixconnection.c:565
+#: ../gio/gunixconnection.c:547
 msgid ""
 "Expecting to read a single byte for receiving credentials but read zero bytes"
 msgstr ""
 "Deveria ler um único byte para receber credenciais mas foram lidos zero bytes"
 
-#: gio/gunixconnection.c:605
+#: ../gio/gunixconnection.c:587
 #, c-format
 msgid "Not expecting control message, but got %d"
 msgstr "Não eram esperadas mensagens de controlo, obtidas %d"
 
-#: gio/gunixconnection.c:630
+#: ../gio/gunixconnection.c:611
 #, c-format
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "Erro ao desativar SO_PASSCRED: %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: ../gio/gunixinputstream.c:369 ../gio/gunixinputstream.c:390
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "Erro ao ler do descritor do ficheiro: %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: ../gio/gunixinputstream.c:423 ../gio/gunixoutputstream.c:409
+#: ../gio/gwin32inputstream.c:217 ../gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr "Erro ao fechar o descritor do ficheiro: %s"
 
-#: gio/gunixmounts.c:2709 gio/gunixmounts.c:2762
+#: ../gio/gunixmounts.c:2329 ../gio/gunixmounts.c:2382
 msgid "Filesystem root"
 msgstr "Raiz do sistema de ficheiros"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: ../gio/gunixoutputstream.c:355 ../gio/gunixoutputstream.c:376
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "Erro ao escrever no descritor do ficheiro: %s"
 
-#: gio/gunixsocketaddress.c:243
+#: ../gio/gunixsocketaddress.c:239
 msgid "Abstract UNIX domain socket addresses not supported on this system"
 msgstr ""
 "Endereços abstratos de sockets de domínio UNIX não são suportados neste "
 "sistema"
 
-#: gio/gvolume.c:438
-#| msgid "volume doesn't implement eject"
-msgid "volume doesn’t implement eject"
+#: ../gio/gvolume.c:437
+msgid "volume doesn't implement eject"
 msgstr "unidade não implementa a ejeção"
 
 #. Translators: This is an error
 #. * message for volume objects that
 #. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:515
-#| msgid "volume doesn't implement eject or eject_with_operation"
-msgid "volume doesn’t implement eject or eject_with_operation"
-msgstr "unidade não implementa eject ou eject_with_operation"
+#: ../gio/gvolume.c:514
+msgid "volume doesn't implement eject or eject_with_operation"
+msgstr "unidade não implementa a ejeção ou eject_with_operation"
 
-#: gio/gwin32inputstream.c:185
+#: ../gio/gwin32inputstream.c:185
 #, c-format
 msgid "Error reading from handle: %s"
 msgstr "Erro ao ler do manipulador: %s"
 
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
+#: ../gio/gwin32inputstream.c:232 ../gio/gwin32outputstream.c:219
 #, c-format
 msgid "Error closing handle: %s"
 msgstr "Erro ao fechar o manipulador: %s"
 
-#: gio/gwin32outputstream.c:172
+#: ../gio/gwin32outputstream.c:172
 #, c-format
 msgid "Error writing to handle: %s"
 msgstr "Erro ao escrever no manipulador: %s"
 
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: ../gio/gzlibcompressor.c:394 ../gio/gzlibdecompressor.c:347
 msgid "Not enough memory"
 msgstr "Memória livre insuficiente"
 
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: ../gio/gzlibcompressor.c:401 ../gio/gzlibdecompressor.c:354
 #, c-format
 msgid "Internal error: %s"
 msgstr "Erro interno: %s"
 
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: ../gio/gzlibcompressor.c:414 ../gio/gzlibdecompressor.c:368
 msgid "Need more input"
 msgstr "Necessita de mais dados"
 
-#: gio/gzlibdecompressor.c:340
+#: ../gio/gzlibdecompressor.c:340
 msgid "Invalid compressed data"
 msgstr "Dados comprimidos inválidos"
 
-#: gio/tests/gdbus-daemon.c:18
+#: ../gio/tests/gdbus-daemon.c:18
 msgid "Address to listen on"
 msgstr "Endereço onde ouvir"
 
-#: gio/tests/gdbus-daemon.c:19
+#: ../gio/tests/gdbus-daemon.c:19
 msgid "Ignored, for compat with GTestDbus"
 msgstr "Ignorado, para compatibilidade com GTestDbus"
 
-#: gio/tests/gdbus-daemon.c:20
+#: ../gio/tests/gdbus-daemon.c:20
 msgid "Print address"
 msgstr "Endereço de impressão"
 
-#: gio/tests/gdbus-daemon.c:21
+#: ../gio/tests/gdbus-daemon.c:21
 msgid "Print address in shell mode"
 msgstr "Endereço de impressão em modo de consola"
 
-#: gio/tests/gdbus-daemon.c:28
+#: ../gio/tests/gdbus-daemon.c:28
 msgid "Run a dbus service"
 msgstr "Executar um serviço dbus"
 
-#: gio/tests/gdbus-daemon.c:42
+#: ../gio/tests/gdbus-daemon.c:42
+#, c-format
 msgid "Wrong args\n"
 msgstr "Argumentos incorretos\n"
 
-#: glib/gbookmarkfile.c:756
-#, c-format
-#| msgid "Unexpected attribute '%s' for element '%s'"
-msgid "Unexpected attribute “%s” for element “%s”"
-msgstr "Atributo “%s” inesperado para o elemento “%s”"
-
-#: glib/gbookmarkfile.c:767 glib/gbookmarkfile.c:847 glib/gbookmarkfile.c:857
-#: glib/gbookmarkfile.c:969
+#: ../glib/gbookmarkfile.c:755
 #, c-format
-#| msgid "Attribute '%s' of element '%s' not found"
-msgid "Attribute “%s” of element “%s” not found"
-msgstr "Atributo “%s” do elemento “%s” não foi encontrado"
+msgid "Unexpected attribute '%s' for element '%s'"
+msgstr "Atributo \"%s\" inesperado para o elemento \"%s\""
 
-#: glib/gbookmarkfile.c:1178 glib/gbookmarkfile.c:1243
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1317
+#: ../glib/gbookmarkfile.c:766 ../glib/gbookmarkfile.c:837
+#: ../glib/gbookmarkfile.c:847 ../glib/gbookmarkfile.c:954
 #, c-format
-#| msgid "Unexpected tag '%s', tag '%s' expected"
-msgid "Unexpected tag “%s”, tag “%s” expected"
-msgstr "Etiqueta “%s” inesperada, esperada a etiqueta “%s”"
+msgid "Attribute '%s' of element '%s' not found"
+msgstr "Atributo \"%s\" do elemento \"%s\" não foi encontrado"
 
-#: glib/gbookmarkfile.c:1203 glib/gbookmarkfile.c:1217
-#: glib/gbookmarkfile.c:1285 glib/gbookmarkfile.c:1331
+#: ../glib/gbookmarkfile.c:1124 ../glib/gbookmarkfile.c:1189
+#: ../glib/gbookmarkfile.c:1253 ../glib/gbookmarkfile.c:1263
 #, c-format
-#| msgid "Unexpected tag '%s' inside '%s'"
-msgid "Unexpected tag “%s” inside “%s”"
-msgstr "Etiqueta “%s” inesperada dentro de “%s”"
+msgid "Unexpected tag '%s', tag '%s' expected"
+msgstr "Etiqueta \"%s\" inesperada, esperada a etiqueta \"%s\""
 
-#: glib/gbookmarkfile.c:1625
+#: ../glib/gbookmarkfile.c:1149 ../glib/gbookmarkfile.c:1163
+#: ../glib/gbookmarkfile.c:1231
 #, c-format
-msgid "Invalid date/time ‘%s’ in bookmark file"
-msgstr "Data/hora “%s” inválida no ficheiro marcado"
+msgid "Unexpected tag '%s' inside '%s'"
+msgstr "Etiqueta \"%s\" inesperada dentro de \"%s\""
 
-#: glib/gbookmarkfile.c:1831
+#: ../glib/gbookmarkfile.c:1757
 msgid "No valid bookmark file found in data dirs"
 msgstr ""
 "Não foi encontrado nenhum ficheiro de marcador válido nos pastas de dados"
 
-#: glib/gbookmarkfile.c:2032
+#: ../glib/gbookmarkfile.c:1958
 #, c-format
-#| msgid "A bookmark for URI '%s' already exists"
-msgid "A bookmark for URI “%s” already exists"
-msgstr "Já existe um marcador para o URI “%s”"
+msgid "A bookmark for URI '%s' already exists"
+msgstr "Já existe um marcador para o URI \"%s\""
 
-#: glib/gbookmarkfile.c:2078 glib/gbookmarkfile.c:2236
-#: glib/gbookmarkfile.c:2321 glib/gbookmarkfile.c:2401
-#: glib/gbookmarkfile.c:2486 glib/gbookmarkfile.c:2569
-#: glib/gbookmarkfile.c:2647 glib/gbookmarkfile.c:2726
-#: glib/gbookmarkfile.c:2768 glib/gbookmarkfile.c:2865
-#: glib/gbookmarkfile.c:2986 glib/gbookmarkfile.c:3176
-#: glib/gbookmarkfile.c:3252 glib/gbookmarkfile.c:3420
-#: glib/gbookmarkfile.c:3509 glib/gbookmarkfile.c:3598
-#: glib/gbookmarkfile.c:3717
+#: ../glib/gbookmarkfile.c:2004 ../glib/gbookmarkfile.c:2162
+#: ../glib/gbookmarkfile.c:2247 ../glib/gbookmarkfile.c:2327
+#: ../glib/gbookmarkfile.c:2412 ../glib/gbookmarkfile.c:2495
+#: ../glib/gbookmarkfile.c:2573 ../glib/gbookmarkfile.c:2652
+#: ../glib/gbookmarkfile.c:2694 ../glib/gbookmarkfile.c:2791
+#: ../glib/gbookmarkfile.c:2911 ../glib/gbookmarkfile.c:3101
+#: ../glib/gbookmarkfile.c:3177 ../glib/gbookmarkfile.c:3345
+#: ../glib/gbookmarkfile.c:3434 ../glib/gbookmarkfile.c:3523
+#: ../glib/gbookmarkfile.c:3639
 #, c-format
-#| msgid "No bookmark found for URI '%s'"
-msgid "No bookmark found for URI “%s”"
-msgstr "Não foi encontrado nenhum marcador para o URI “%s”"
+msgid "No bookmark found for URI '%s'"
+msgstr "Não foi encontrado nenhum marcador para o URI \"%s\""
 
-#: glib/gbookmarkfile.c:2410
+#: ../glib/gbookmarkfile.c:2336
 #, c-format
-#| msgid "No MIME type defined in the bookmark for URI '%s'"
-msgid "No MIME type defined in the bookmark for URI “%s”"
-msgstr "Nenhum tipo MIME definido no marcador para o URI “%s”"
+msgid "No MIME type defined in the bookmark for URI '%s'"
+msgstr "Nenhum tipo MIME definido no marcador para o URI \"%s\""
 
-#: glib/gbookmarkfile.c:2495
+#: ../glib/gbookmarkfile.c:2421
 #, c-format
-#| msgid "No private flag has been defined in bookmark for URI '%s'"
-msgid "No private flag has been defined in bookmark for URI “%s”"
-msgstr "Nenhum sinal privado definido no marcador para o URI “%s”"
+msgid "No private flag has been defined in bookmark for URI '%s'"
+msgstr "Nenhum sinal privado definido no marcador para o URI \"%s\""
 
-#: glib/gbookmarkfile.c:2874
+#: ../glib/gbookmarkfile.c:2800
 #, c-format
-#| msgid "No groups set in bookmark for URI '%s'"
-msgid "No groups set in bookmark for URI “%s”"
-msgstr "Nenhum grupo definido no marcador para o URI “%s”"
+msgid "No groups set in bookmark for URI '%s'"
+msgstr "Nenhum grupo definido no marcador para o URI \"%s\""
 
-#: glib/gbookmarkfile.c:3273 glib/gbookmarkfile.c:3430
+#: ../glib/gbookmarkfile.c:3198 ../glib/gbookmarkfile.c:3355
 #, c-format
-#| msgid "No application with name '%s' registered a bookmark for '%s'"
-msgid "No application with name “%s” registered a bookmark for “%s”"
-msgstr "Nenhuma aplicação denominada “%s” registou um marcador para “%s”"
+msgid "No application with name '%s' registered a bookmark for '%s'"
+msgstr "Nenhuma aplicação denominada \"%s\" registou um marcador para \"%s\""
 
-#: glib/gbookmarkfile.c:3453
+#: ../glib/gbookmarkfile.c:3378
 #, c-format
-#| msgid "Failed to expand exec line '%s' with URI '%s'"
-msgid "Failed to expand exec line “%s” with URI “%s”"
-msgstr "Falha ao expandir a linha de execução “%s” com o URI “%s”"
-
-#: glib/gconvert.c:466
-#| msgid "Invalid sequence in conversion input"
-msgid "Unrepresentable character in conversion input"
-msgstr "Sequência inválida na conversão da entrada"
+msgid "Failed to expand exec line '%s' with URI '%s'"
+msgstr "Falha ao expandir a linha de execução \"%s\" com o URI \"%s\""
 
-#: glib/gconvert.c:493 glib/gutf8.c:871 glib/gutf8.c:1083 glib/gutf8.c:1220
-#: glib/gutf8.c:1324
+#: ../glib/gconvert.c:477 ../glib/gutf8.c:851 ../glib/gutf8.c:1063
+#: ../glib/gutf8.c:1200 ../glib/gutf8.c:1304
 msgid "Partial character sequence at end of input"
 msgstr "Sequência de caracteres parcial no final da origem"
 
-#: glib/gconvert.c:762
+#: ../glib/gconvert.c:742
 #, c-format
-#| msgid "Cannot convert fallback '%s' to codeset '%s'"
-msgid "Cannot convert fallback “%s” to codeset “%s”"
-msgstr ""
-"Impossível converter contingência “%s” para conjunto de caracteres “%s”"
-
-#: glib/gconvert.c:934
-#| msgid "Invalid byte sequence in conversion input"
-msgid "Embedded NUL byte in conversion input"
-msgstr "Sequência de bytes nula na origem da conversão"
-
-#: glib/gconvert.c:955
-#| msgid "Invalid byte sequence in conversion input"
-msgid "Embedded NUL byte in conversion output"
-msgstr "Sequência de bytes nula na saída da conversão"
+msgid "Cannot convert fallback '%s' to codeset '%s'"
+msgstr "Impossível converter recurso \"%s\" para conjunto de caracteres \"%s\""
 
-#: glib/gconvert.c:1640
+#: ../glib/gconvert.c:1567
 #, c-format
-#| msgid "The URI '%s' is not an absolute URI using the \"file\" scheme"
-msgid "The URI “%s” is not an absolute URI using the “file” scheme"
-msgstr "O URI “%s” não é um URI absoluto que utiliza o esquema “file”"
+msgid "The URI '%s' is not an absolute URI using the \"file\" scheme"
+msgstr "O URI \"%s\" não é um URI absoluto que utiliza o esquema \"file\""
 
-#: glib/gconvert.c:1650
+#: ../glib/gconvert.c:1577
 #, c-format
-#| msgid "The local file URI '%s' may not include a '#'"
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "O URI de ficheiro local “%s” não deverá incluir um “#”"
+msgid "The local file URI '%s' may not include a '#'"
+msgstr "O URI de ficheiro local \"%s\" não deverá incluir um \"#\""
 
-#: glib/gconvert.c:1667
+#: ../glib/gconvert.c:1594
 #, c-format
-#| msgid "The URI '%s' is invalid"
-msgid "The URI “%s” is invalid"
-msgstr "O URI “%s” é inválido"
+msgid "The URI '%s' is invalid"
+msgstr "O URI \"%s\" é inválido"
 
-#: glib/gconvert.c:1679
+#: ../glib/gconvert.c:1606
 #, c-format
-#| msgid "The hostname of the URI '%s' is invalid"
-msgid "The hostname of the URI “%s” is invalid"
-msgstr "O nome de máquina do URI “%s” é inválido"
+msgid "The hostname of the URI '%s' is invalid"
+msgstr "O nome de máquina do URI \"%s\" é inválido"
 
-#: glib/gconvert.c:1695
+#: ../glib/gconvert.c:1622
 #, c-format
-#| msgid "The URI '%s' contains invalidly escaped characters"
-msgid "The URI “%s” contains invalidly escaped characters"
-msgstr "O URI “%s” contém caracteres mascarados inválidos"
+msgid "The URI '%s' contains invalidly escaped characters"
+msgstr "O URI \"%s\" contém caracteres incorretamente mascarados"
 
-#: glib/gconvert.c:1767
+#: ../glib/gconvert.c:1717
 #, c-format
-#| msgid "The pathname '%s' is not an absolute path"
-msgid "The pathname “%s” is not an absolute path"
-msgstr "O nome de caminho “%s” não é um caminho absoluto"
+msgid "The pathname '%s' is not an absolute path"
+msgstr "O nome de caminho \"%s\" não é um caminho absoluto"
+
+#: ../glib/gconvert.c:1727
+msgid "Invalid hostname"
+msgstr "Nome de máquina inválido"
+
+#. Translators: 'before midday' indicator
+#: ../glib/gdatetime.c:201
+msgctxt "GDateTime"
+msgid "AM"
+msgstr "AM"
+
+#. Translators: 'after midday' indicator
+#: ../glib/gdatetime.c:203
+msgctxt "GDateTime"
+msgid "PM"
+msgstr "PM"
 
 #. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:220
+#: ../glib/gdatetime.c:206
 msgctxt "GDateTime"
 msgid "%a %b %e %H:%M:%S %Y"
 msgstr "%a %d %b %Y %T %Z"
 
 #. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:223
+#: ../glib/gdatetime.c:209
 msgctxt "GDateTime"
 msgid "%m/%d/%y"
 msgstr "%y/%m/%d"
 
 #. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:226
+#: ../glib/gdatetime.c:212
 msgctxt "GDateTime"
 msgid "%H:%M:%S"
 msgstr "%H:%M:%S"
 
 #. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:229
+#: ../glib/gdatetime.c:215
 msgctxt "GDateTime"
 msgid "%I:%M:%S %p"
 msgstr "%I:%M:%S %p"
 
-#. Translators: Some languages (Baltic, Slavic, Greek, and some more)
-#. * need different grammatical forms of month names depending on whether
-#. * they are standalone or in a complete date context, with the day
-#. * number.  Some other languages may prefer starting with uppercase when
-#. * they are standalone and with lowercase when they are in a complete
-#. * date context.  Here are full month names in a form appropriate when
-#. * they are used standalone.  If your system is Linux with the glibc
-#. * version 2.27 (released Feb 1, 2018) or newer or if it is from the BSD
-#. * family (which includes OS X) then you can refer to the date command
-#. * line utility and see what the command `date +%OB' produces.  Also in
-#. * the latest Linux the command `locale alt_mon' in your native locale
-#. * produces a complete list of month names almost ready to copy and
-#. * paste here.  Note that in most of the languages (western European,
-#. * non-European) there is no difference between the standalone and
-#. * complete date form.
-#.
-#: glib/gdatetime.c:268
+#: ../glib/gdatetime.c:228
 msgctxt "full month name"
 msgid "January"
 msgstr "janeiro"
 
-#: glib/gdatetime.c:270
+#: ../glib/gdatetime.c:230
 msgctxt "full month name"
 msgid "February"
 msgstr "fevereiro"
 
-#: glib/gdatetime.c:272
+#: ../glib/gdatetime.c:232
 msgctxt "full month name"
 msgid "March"
 msgstr "março"
 
-#: glib/gdatetime.c:274
+#: ../glib/gdatetime.c:234
 msgctxt "full month name"
 msgid "April"
 msgstr "abril"
 
-#: glib/gdatetime.c:276
+#: ../glib/gdatetime.c:236
 msgctxt "full month name"
 msgid "May"
 msgstr "maio"
 
-#: glib/gdatetime.c:278
+#: ../glib/gdatetime.c:238
 msgctxt "full month name"
 msgid "June"
 msgstr "junho"
 
-#: glib/gdatetime.c:280
+#: ../glib/gdatetime.c:240
 msgctxt "full month name"
 msgid "July"
 msgstr "julho"
 
-#: glib/gdatetime.c:282
+#: ../glib/gdatetime.c:242
 msgctxt "full month name"
 msgid "August"
 msgstr "agosto"
 
-#: glib/gdatetime.c:284
+#: ../glib/gdatetime.c:244
 msgctxt "full month name"
 msgid "September"
 msgstr "setembro"
 
-#: glib/gdatetime.c:286
+#: ../glib/gdatetime.c:246
 msgctxt "full month name"
 msgid "October"
 msgstr "outubro"
 
-#: glib/gdatetime.c:288
+#: ../glib/gdatetime.c:248
 msgctxt "full month name"
 msgid "November"
 msgstr "novembro"
 
-#: glib/gdatetime.c:290
+#: ../glib/gdatetime.c:250
 msgctxt "full month name"
 msgid "December"
 msgstr "dezembro"
 
-#. Translators: Some languages need different grammatical forms of
-#. * month names depending on whether they are standalone or in a complete
-#. * date context, with the day number.  Some may prefer starting with
-#. * uppercase when they are standalone and with lowercase when they are
-#. * in a full date context.  However, as these names are abbreviated
-#. * the grammatical difference is visible probably only in Belarusian
-#. * and Russian.  In other languages there is no difference between
-#. * the standalone and complete date form when they are abbreviated.
-#. * If your system is Linux with the glibc version 2.27 (released
-#. * Feb 1, 2018) or newer then you can refer to the date command line
-#. * utility and see what the command `date +%Ob' produces.  Also in
-#. * the latest Linux the command `locale ab_alt_mon' in your native
-#. * locale produces a complete list of month names almost ready to copy
-#. * and paste here.  Note that this feature is not yet supported by any
-#. * other platform.  Here are abbreviated month names in a form
-#. * appropriate when they are used standalone.
-#.
-#: glib/gdatetime.c:322
+#: ../glib/gdatetime.c:265
 msgctxt "abbreviated month name"
 msgid "Jan"
 msgstr "jan"
 
-#: glib/gdatetime.c:324
+#: ../glib/gdatetime.c:267
 msgctxt "abbreviated month name"
 msgid "Feb"
 msgstr "fev"
 
-#: glib/gdatetime.c:326
+#: ../glib/gdatetime.c:269
 msgctxt "abbreviated month name"
 msgid "Mar"
 msgstr "mar"
 
-#: glib/gdatetime.c:328
+#: ../glib/gdatetime.c:271
 msgctxt "abbreviated month name"
 msgid "Apr"
 msgstr "abr"
 
-#: glib/gdatetime.c:330
+#: ../glib/gdatetime.c:273
 msgctxt "abbreviated month name"
 msgid "May"
 msgstr "mai"
 
-#: glib/gdatetime.c:332
+#: ../glib/gdatetime.c:275
 msgctxt "abbreviated month name"
 msgid "Jun"
 msgstr "jun"
 
-#: glib/gdatetime.c:334
+#: ../glib/gdatetime.c:277
 msgctxt "abbreviated month name"
 msgid "Jul"
 msgstr "jul"
 
-#: glib/gdatetime.c:336
+#: ../glib/gdatetime.c:279
 msgctxt "abbreviated month name"
 msgid "Aug"
 msgstr "ago"
 
-#: glib/gdatetime.c:338
+#: ../glib/gdatetime.c:281
 msgctxt "abbreviated month name"
 msgid "Sep"
 msgstr "set"
 
-#: glib/gdatetime.c:340
+#: ../glib/gdatetime.c:283
 msgctxt "abbreviated month name"
 msgid "Oct"
 msgstr "out"
 
-#: glib/gdatetime.c:342
+#: ../glib/gdatetime.c:285
 msgctxt "abbreviated month name"
 msgid "Nov"
 msgstr "nov"
 
-#: glib/gdatetime.c:344
+#: ../glib/gdatetime.c:287
 msgctxt "abbreviated month name"
 msgid "Dec"
 msgstr "dez"
 
-#: glib/gdatetime.c:359
+#: ../glib/gdatetime.c:302
 msgctxt "full weekday name"
 msgid "Monday"
 msgstr "2ª feira"
 
-#: glib/gdatetime.c:361
+#: ../glib/gdatetime.c:304
 msgctxt "full weekday name"
 msgid "Tuesday"
 msgstr "3ª feira"
 
-#: glib/gdatetime.c:363
+#: ../glib/gdatetime.c:306
 msgctxt "full weekday name"
 msgid "Wednesday"
 msgstr "4ª feira"
 
-#: glib/gdatetime.c:365
+#: ../glib/gdatetime.c:308
 msgctxt "full weekday name"
 msgid "Thursday"
 msgstr "5ª feira"
 
-#: glib/gdatetime.c:367
+#: ../glib/gdatetime.c:310
 msgctxt "full weekday name"
 msgid "Friday"
 msgstr "6ª feira"
 
-#: glib/gdatetime.c:369
+#: ../glib/gdatetime.c:312
 msgctxt "full weekday name"
 msgid "Saturday"
 msgstr "sábado"
 
-#: glib/gdatetime.c:371
+#: ../glib/gdatetime.c:314
 msgctxt "full weekday name"
 msgid "Sunday"
 msgstr "domingo"
 
-#: glib/gdatetime.c:386
+#: ../glib/gdatetime.c:329
 msgctxt "abbreviated weekday name"
 msgid "Mon"
 msgstr "2ª"
 
-#: glib/gdatetime.c:388
+#: ../glib/gdatetime.c:331
 msgctxt "abbreviated weekday name"
 msgid "Tue"
 msgstr "3ª"
 
-#: glib/gdatetime.c:390
+#: ../glib/gdatetime.c:333
 msgctxt "abbreviated weekday name"
 msgid "Wed"
 msgstr "4ª"
 
-#: glib/gdatetime.c:392
+#: ../glib/gdatetime.c:335
 msgctxt "abbreviated weekday name"
 msgid "Thu"
 msgstr "5ª"
 
-#: glib/gdatetime.c:394
+#: ../glib/gdatetime.c:337
 msgctxt "abbreviated weekday name"
 msgid "Fri"
 msgstr "6ª"
 
-#: glib/gdatetime.c:396
+#: ../glib/gdatetime.c:339
 msgctxt "abbreviated weekday name"
 msgid "Sat"
 msgstr "sáb"
 
-#: glib/gdatetime.c:398
+#: ../glib/gdatetime.c:341
 msgctxt "abbreviated weekday name"
 msgid "Sun"
 msgstr "dom"
 
-#. Translators: Some languages need different grammatical forms of
-#. * month names depending on whether they are standalone or in a full
-#. * date context, with the day number.  Some may prefer starting with
-#. * uppercase when they are standalone and with lowercase when they are
-#. * in a full date context.  Here are full month names in a form
-#. * appropriate when they are used in a full date context, with the
-#. * day number.  If your system is Linux with the glibc version 2.27
-#. * (released Feb 1, 2018) or newer or if it is from the BSD family
-#. * (which includes OS X) then you can refer to the date command line
-#. * utility and see what the command `date +%B' produces.  Also in
-#. * the latest Linux the command `locale mon' in your native locale
-#. * produces a complete list of month names almost ready to copy and
-#. * paste here.  In older Linux systems due to a bug the result is
-#. * incorrect in some languages.  Note that in most of the languages
-#. * (western European, non-European) there is no difference between the
-#. * standalone and complete date form.
-#.
-#: glib/gdatetime.c:462
-msgctxt "full month name with day"
-msgid "January"
-msgstr "janeiro"
-
-#: glib/gdatetime.c:464
-msgctxt "full month name with day"
-msgid "February"
-msgstr "fevereiro"
-
-#: glib/gdatetime.c:466
-msgctxt "full month name with day"
-msgid "March"
-msgstr "março"
-
-#: glib/gdatetime.c:468
-msgctxt "full month name with day"
-msgid "April"
-msgstr "abril"
-
-#: glib/gdatetime.c:470
-msgctxt "full month name with day"
-msgid "May"
-msgstr "maio"
-
-#: glib/gdatetime.c:472
-msgctxt "full month name with day"
-msgid "June"
-msgstr "junho"
-
-#: glib/gdatetime.c:474
-msgctxt "full month name with day"
-msgid "July"
-msgstr "julho"
-
-#: glib/gdatetime.c:476
-msgctxt "full month name with day"
-msgid "August"
-msgstr "agosto"
-
-#: glib/gdatetime.c:478
-msgctxt "full month name with day"
-msgid "September"
-msgstr "setembro"
-
-#: glib/gdatetime.c:480
-msgctxt "full month name with day"
-msgid "October"
-msgstr "outubro"
-
-#: glib/gdatetime.c:482
-msgctxt "full month name with day"
-msgid "November"
-msgstr "novembro"
-
-#: glib/gdatetime.c:484
-msgctxt "full month name with day"
-msgid "December"
-msgstr "dezembro"
-
-#. Translators: Some languages need different grammatical forms of
-#. * month names depending on whether they are standalone or in a full
-#. * date context, with the day number.  Some may prefer starting with
-#. * uppercase when they are standalone and with lowercase when they are
-#. * in a full date context.  Here are abbreviated month names in a form
-#. * appropriate when they are used in a full date context, with the
-#. * day number.  However, as these names are abbreviated the grammatical
-#. * difference is visible probably only in Belarusian and Russian.
-#. * In other languages there is no difference between the standalone
-#. * and complete date form when they are abbreviated.  If your system
-#. * is Linux with the glibc version 2.27 (released Feb 1, 2018) or newer
-#. * then you can refer to the date command line utility and see what the
-#. * command `date +%b' produces.  Also in the latest Linux the command
-#. * `locale abmon' in your native locale produces a complete list of
-#. * month names almost ready to copy and paste here.  In other systems
-#. * due to a bug the result is incorrect in some languages.
-#.
-#: glib/gdatetime.c:549
-msgctxt "abbreviated month name with day"
-msgid "Jan"
-msgstr "jan"
-
-#: glib/gdatetime.c:551
-msgctxt "abbreviated month name with day"
-msgid "Feb"
-msgstr "fev"
-
-#: glib/gdatetime.c:553
-msgctxt "abbreviated month name with day"
-msgid "Mar"
-msgstr "mar"
-
-#: glib/gdatetime.c:555
-msgctxt "abbreviated month name with day"
-msgid "Apr"
-msgstr "abr"
-
-#: glib/gdatetime.c:557
-msgctxt "abbreviated month name with day"
-msgid "May"
-msgstr "mai"
-
-#: glib/gdatetime.c:559
-msgctxt "abbreviated month name with day"
-msgid "Jun"
-msgstr "jun"
-
-#: glib/gdatetime.c:561
-msgctxt "abbreviated month name with day"
-msgid "Jul"
-msgstr "jul"
-
-#: glib/gdatetime.c:563
-msgctxt "abbreviated month name with day"
-msgid "Aug"
-msgstr "ago"
-
-#: glib/gdatetime.c:565
-msgctxt "abbreviated month name with day"
-msgid "Sep"
-msgstr "set"
-
-#: glib/gdatetime.c:567
-msgctxt "abbreviated month name with day"
-msgid "Oct"
-msgstr "out"
-
-#: glib/gdatetime.c:569
-msgctxt "abbreviated month name with day"
-msgid "Nov"
-msgstr "nov"
-
-#: glib/gdatetime.c:571
-msgctxt "abbreviated month name with day"
-msgid "Dec"
-msgstr "dez"
-
-#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:588
-msgctxt "GDateTime"
-msgid "AM"
-msgstr "AM"
-
-#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:591
-msgctxt "GDateTime"
-msgid "PM"
-msgstr "PM"
-
-#: glib/gdir.c:154
+#: ../glib/gdir.c:155
 #, c-format
-#| msgid "Error opening directory '%s': %s"
-msgid "Error opening directory “%s”: %s"
-msgstr "Erro ao abrir o diretório “%s”: %s"
+msgid "Error opening directory '%s': %s"
+msgstr "Erro ao abrir a pasta \"%s\": %s"
 
-#: glib/gfileutils.c:733 glib/gfileutils.c:825
+#: ../glib/gfileutils.c:701 ../glib/gfileutils.c:793
 #, c-format
-#| msgid "Could not allocate %lu byte to read file \"%s\""
-#| msgid_plural "Could not allocate %lu bytes to read file \"%s\""
-msgid "Could not allocate %lu byte to read file “%s”"
-msgid_plural "Could not allocate %lu bytes to read file “%s”"
-msgstr[0] "Impossível alocar %lu byte para ler o ficheiro “%s”"
-msgstr[1] "Impossível alocar %lu bytes para ler o ficheiro “%s”"
+msgid "Could not allocate %lu byte to read file \"%s\""
+msgid_plural "Could not allocate %lu bytes to read file \"%s\""
+msgstr[0] "Impossível alocar %lu byte para ler o ficheiro \"%s\""
+msgstr[1] "Impossível alocar %lu bytes para ler o ficheiro \"%s\""
 
-#: glib/gfileutils.c:750
+#: ../glib/gfileutils.c:718
 #, c-format
-#| msgid "Error reading file %s: %s"
-msgid "Error reading file “%s”: %s"
-msgstr "Erro ao ler o ficheiro %s: %s"
+msgid "Error reading file '%s': %s"
+msgstr "Erro ao ler o ficheiro \"%s\": %s"
 
-#: glib/gfileutils.c:786
+#: ../glib/gfileutils.c:754
 #, c-format
-#| msgid "File \"%s\" is too large"
-msgid "File “%s” is too large"
-msgstr "Ficheiro “%s” é demasiado grande"
+msgid "File \"%s\" is too large"
+msgstr "Ficheiro \"%s\" é demasiado grande"
 
-#: glib/gfileutils.c:850
+#: ../glib/gfileutils.c:818
 #, c-format
-#| msgid "Failed to read from file '%s': %s"
-msgid "Failed to read from file “%s”: %s"
-msgstr "Falha ao ler do ficheiro “%s”: %s"
+msgid "Failed to read from file '%s': %s"
+msgstr "Falha ao ler do ficheiro \"%s\": %s"
 
-#: glib/gfileutils.c:898 glib/gfileutils.c:970
+#: ../glib/gfileutils.c:866 ../glib/gfileutils.c:938
 #, c-format
-#| msgid "Failed to open file '%s': %s"
-msgid "Failed to open file “%s”: %s"
-msgstr "Falha ao abrir o ficheiro “%s”: %s"
+msgid "Failed to open file '%s': %s"
+msgstr "Falha ao abrir o ficheiro \"%s\": %s"
 
-#: glib/gfileutils.c:910
+#: ../glib/gfileutils.c:878
 #, c-format
-#| msgid "Failed to get attributes of file '%s': fstat() failed: %s"
-msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
-msgstr "Falha ao obter atributos do ficheiro “%s”: falha no fstat(): %s"
+msgid "Failed to get attributes of file '%s': fstat() failed: %s"
+msgstr "Falha ao obter atributos do ficheiro \"%s\": falha no fstat(): %s"
 
-#: glib/gfileutils.c:940
+#: ../glib/gfileutils.c:908
 #, c-format
-#| msgid "Failed to open file '%s': fdopen() failed: %s"
-msgid "Failed to open file “%s”: fdopen() failed: %s"
-msgstr "Falha ao abrir o ficheiro “%s”: falha no fdopen(): %s"
+msgid "Failed to open file '%s': fdopen() failed: %s"
+msgstr "Falha ao abrir o ficheiro \"%s\": falha no fdopen(): %s"
 
-#: glib/gfileutils.c:1039
+#: ../glib/gfileutils.c:1007
 #, c-format
-#| msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
-msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
-msgstr "Falha ao renomear o ficheiro “%s” para “%s”: falha no g_rename(): %s"
+msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
+msgstr ""
+"Falha ao renomear o ficheiro \"%s\" para \"%s\": falha no g_rename(): %s"
 
-#: glib/gfileutils.c:1074 glib/gfileutils.c:1592
+#: ../glib/gfileutils.c:1042 ../glib/gfileutils.c:1541
 #, c-format
-#| msgid "Failed to create file '%s': %s"
-msgid "Failed to create file “%s”: %s"
-msgstr "Falha ao criar o ficheiro “%s”: %s"
+msgid "Failed to create file '%s': %s"
+msgstr "Falha ao criar o ficheiro \"%s\": %s"
 
-#: glib/gfileutils.c:1101
+#: ../glib/gfileutils.c:1069
 #, c-format
-#| msgid "Failed to write file '%s': write() failed: %s"
-msgid "Failed to write file “%s”: write() failed: %s"
-msgstr "Falha ao escrever o ficheiro “%s”: falha no write(): %s"
+msgid "Failed to write file '%s': write() failed: %s"
+msgstr "Falha ao escrever o ficheiro \"%s\": falha no write(): %s"
 
-#: glib/gfileutils.c:1144
+#: ../glib/gfileutils.c:1112
 #, c-format
-#| msgid "Failed to write file '%s': fsync() failed: %s"
-msgid "Failed to write file “%s”: fsync() failed: %s"
-msgstr "Falha ao escrever o ficheiro “%s”: falha no fsync(): %s"
+msgid "Failed to write file '%s': fsync() failed: %s"
+msgstr "Falha ao escrever o ficheiro \"%s\": falha no fsync(): %s"
 
-#: glib/gfileutils.c:1279
+#: ../glib/gfileutils.c:1236
 #, c-format
-#| msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
-msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
-msgstr "Impossível remover o ficheiro “%s” existente: falha no g_unlink(): %s"
+msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
+msgstr ""
+"Impossível remover o ficheiro \"%s\" existente: falha no g_unlink(): %s"
 
-#: glib/gfileutils.c:1558
+#: ../glib/gfileutils.c:1507
 #, c-format
-#| msgid "Template '%s' invalid, should not contain a '%s'"
-msgid "Template “%s” invalid, should not contain a “%s”"
-msgstr "Modelo “%s” inválido, não deveria conter um “%s”"
+msgid "Template '%s' invalid, should not contain a '%s'"
+msgstr "Modelo \"%s\" inválido, não deveria conter um \"%s\""
 
-#: glib/gfileutils.c:1571
+#: ../glib/gfileutils.c:1520
 #, c-format
-#| msgid "Template '%s' doesn't contain XXXXXX"
-msgid "Template “%s” doesn’t contain XXXXXX"
-msgstr "Modelo “%s” não contém XXXXXX"
+msgid "Template '%s' doesn't contain XXXXXX"
+msgstr "Modelo \"%s\" não contém XXXXXX"
 
-#: glib/gfileutils.c:2129 glib/gfileutils.c:2157
+#: ../glib/gfileutils.c:2045
 #, c-format
-#| msgid "Failed to read the symbolic link '%s': %s"
-msgid "Failed to read the symbolic link “%s”: %s"
-msgstr "Falha ao ler a ligação simbólica “%s”: %s"
+msgid "Failed to read the symbolic link '%s': %s"
+msgstr "Falha ao ler a ligação simbólica \"%s\": %s"
 
-#: glib/giochannel.c:1396
+#: ../glib/giochannel.c:1388
 #, c-format
-#| msgid "Could not open converter from '%s' to '%s': %s"
-msgid "Could not open converter from “%s” to “%s”: %s"
-msgstr "Impossível abrir conversor de “%s” para “%s”: %s"
+msgid "Could not open converter from '%s' to '%s': %s"
+msgstr "Impossível abrir conversor de \"%s\" para \"%s\": %s"
 
-#: glib/giochannel.c:1749
-#| msgid "Can't do a raw read in g_io_channel_read_line_string"
-msgid "Can’t do a raw read in g_io_channel_read_line_string"
+#: ../glib/giochannel.c:1733
+msgid "Can't do a raw read in g_io_channel_read_line_string"
 msgstr ""
-"Impossível efetuar uma leitura em bruto em g_io_channel_read_line_string"
+"Impossível efetuar uma leitura em bruto sobre g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1796 glib/giochannel.c:2054 glib/giochannel.c:2141
+#: ../glib/giochannel.c:1780 ../glib/giochannel.c:2038
+#: ../glib/giochannel.c:2125
 msgid "Leftover unconverted data in read buffer"
 msgstr "Dados residuais não convertidos no buffer de leitura"
 
-#: glib/giochannel.c:1877 glib/giochannel.c:1954
+#: ../glib/giochannel.c:1861 ../glib/giochannel.c:1938
 msgid "Channel terminates in a partial character"
 msgstr "Canal termina num carácter parcial"
 
-#: glib/giochannel.c:1940
-#| msgid "Can't do a raw read in g_io_channel_read_to_end"
-msgid "Can’t do a raw read in g_io_channel_read_to_end"
-msgstr "Impossível efetuar uma leitura em bruto em g_io_channel_read_to_end"
+#: ../glib/giochannel.c:1924
+msgid "Can't do a raw read in g_io_channel_read_to_end"
+msgstr "Impossível efetuar uma leitura em bruto sobre g_io_channel_read_to_end"
 
-#: glib/gkeyfile.c:789
+#: ../glib/gkeyfile.c:737
 msgid "Valid key file could not be found in search dirs"
 msgstr "Impossível encontrar um ficheiro de chave válido nas pastas procuradas"
 
-#: glib/gkeyfile.c:826
+#: ../glib/gkeyfile.c:773
 msgid "Not a regular file"
 msgstr "Não é um ficheiro normal"
 
-#: glib/gkeyfile.c:1275
+#: ../glib/gkeyfile.c:1204
 #, c-format
-#| msgid ""
-#| "Key file contains line '%s' which is not a key-value pair, group, or "
-#| "comment"
 msgid ""
-"Key file contains line “%s” which is not a key-value pair, group, or comment"
+"Key file contains line '%s' which is not a key-value pair, group, or comment"
 msgstr ""
-"O ficheiro de chave contém a linha “%s” que não é um par chave-valor, grupo "
-"ou comentário"
+"O ficheiro de chave contém a linha \"%s\" que não é um par chave-valor, "
+"grupo ou comentário"
 
-#: glib/gkeyfile.c:1332
+#: ../glib/gkeyfile.c:1261
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Nome de grupo inválido: %s"
 
-#: glib/gkeyfile.c:1354
+#: ../glib/gkeyfile.c:1283
 msgid "Key file does not start with a group"
 msgstr "Ficheiro de chave não começa com um grupo"
 
-#: glib/gkeyfile.c:1380
+#: ../glib/gkeyfile.c:1309
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Nome de chave inválida: %s"
 
-#: glib/gkeyfile.c:1407
+#: ../glib/gkeyfile.c:1336
 #, c-format
-#| msgid "Key file contains unsupported encoding '%s'"
-msgid "Key file contains unsupported encoding “%s”"
-msgstr "Ficheiro de chave contém uma codificação não suportada “%s”"
+msgid "Key file contains unsupported encoding '%s'"
+msgstr "Ficheiro de chave contém uma codificação não suportada \"%s\""
 
-#: glib/gkeyfile.c:1650 glib/gkeyfile.c:1823 glib/gkeyfile.c:3276
-#: glib/gkeyfile.c:3340 glib/gkeyfile.c:3470 glib/gkeyfile.c:3602
-#: glib/gkeyfile.c:3748 glib/gkeyfile.c:3977 glib/gkeyfile.c:4044
+#: ../glib/gkeyfile.c:1579 ../glib/gkeyfile.c:1752 ../glib/gkeyfile.c:3130
+#: ../glib/gkeyfile.c:3193 ../glib/gkeyfile.c:3323 ../glib/gkeyfile.c:3453
+#: ../glib/gkeyfile.c:3597 ../glib/gkeyfile.c:3826 ../glib/gkeyfile.c:3893
 #, c-format
-#| msgid "Key file does not have group '%s'"
-msgid "Key file does not have group “%s”"
-msgstr "Ficheiro de chave não possui um grupo “%s”"
+msgid "Key file does not have group '%s'"
+msgstr "Ficheiro de chave não possui um grupo \"%s\""
 
-#: glib/gkeyfile.c:1778
+#: ../glib/gkeyfile.c:1707
 #, c-format
-#| msgid "Key file does not have key '%s' in group '%s'"
-msgid "Key file does not have key “%s” in group “%s”"
-msgstr "Ficheiro de chave não possui a chave “%s” no grupo “%s”"
+msgid "Key file does not have key '%s' in group '%s'"
+msgstr "Ficheiro de chave não possui a chave \"%s\" no grupo \"%s\""
 
-#: glib/gkeyfile.c:1940 glib/gkeyfile.c:2056
+#: ../glib/gkeyfile.c:1869 ../glib/gkeyfile.c:1985
 #, c-format
-#| msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
-msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
-msgstr "Ficheiro de chave contém a chave “%s” com o valor “%s” que não é UTF-8"
+msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
+msgstr ""
+"Ficheiro de chave contém a chave \"%s\" com o valor \"%s\" que não é UTF-8"
 
-#: glib/gkeyfile.c:1960 glib/gkeyfile.c:2076 glib/gkeyfile.c:2518
+#: ../glib/gkeyfile.c:1889 ../glib/gkeyfile.c:2005 ../glib/gkeyfile.c:2374
 #, c-format
-#| msgid ""
-#| "Key file contains key '%s' which has a value that cannot be interpreted."
 msgid ""
-"Key file contains key “%s” which has a value that cannot be interpreted."
-msgstr "Ficheiro de chaves contém a chave “%s” cujo valor não é interpretável."
+"Key file contains key '%s' which has a value that cannot be interpreted."
+msgstr ""
+"Ficheiro de chaves contém a chave \"%s\" cujo valor não é interpretável."
 
-#: glib/gkeyfile.c:2736 glib/gkeyfile.c:3105
+#: ../glib/gkeyfile.c:2591 ../glib/gkeyfile.c:2959
 #, c-format
-#| msgid ""
-#| "Key file contains key '%s' in group '%s' which has a value that cannot be "
-#| "interpreted."
 msgid ""
-"Key file contains key “%s” in group “%s” which has a value that cannot be "
+"Key file contains key '%s' in group '%s' which has a value that cannot be "
 "interpreted."
 msgstr ""
-"Ficheiro de chave contém a chave “%s” no grupo “%s” que tem um valor que não "
-"pode ser interpretado."
+"Ficheiro de chave contém a chave \"%s\" no grupo \"%s\" que tem um valor que "
+"não pode ser interpretado."
 
-#: glib/gkeyfile.c:2814 glib/gkeyfile.c:2891
+#: ../glib/gkeyfile.c:2669 ../glib/gkeyfile.c:2746
 #, c-format
-#| msgid "Key '%s' in group '%s' has value '%s' where %s was expected"
-msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
-msgstr "Chave “%s” no grupo “%s” tem o valor “%s” onde %s era esperado"
+msgid "Key '%s' in group '%s' has value '%s' where %s was expected"
+msgstr "Chave \"%s\" no grupo \"%s\" tem o valor \"%s\" onde %s era esperado"
 
-#: glib/gkeyfile.c:4284
+#: ../glib/gkeyfile.c:4133
 msgid "Key file contains escape character at end of line"
-msgstr "Ficheiro de chave contém caracteres mascarados no final da linha"
+msgstr "Ficheiro de chave contém caracteres escapados no final da linha"
 
-#: glib/gkeyfile.c:4306
+#: ../glib/gkeyfile.c:4155
 #, c-format
-#| msgid "Key file contains invalid escape sequence '%s'"
-msgid "Key file contains invalid escape sequence “%s”"
+msgid "Key file contains invalid escape sequence '%s'"
 msgstr ""
-"Ficheiro de chave contém uma sequência de caracteres mascarados inválida “%s”"
+"Ficheiro de chave contém uma sequência de caracteres escapados inválida \"%s"
+"\""
 
-#: glib/gkeyfile.c:4450
+#: ../glib/gkeyfile.c:4297
 #, c-format
-#| msgid "Value '%s' cannot be interpreted as a number."
-msgid "Value “%s” cannot be interpreted as a number."
-msgstr "Impossível interpretar o valor “%s” como um numérico."
+msgid "Value '%s' cannot be interpreted as a number."
+msgstr "Impossível interpretar o valor \"%s\" como um numérico."
 
-#: glib/gkeyfile.c:4464
+#: ../glib/gkeyfile.c:4311
 #, c-format
-#| msgid "Integer value '%s' out of range"
-msgid "Integer value “%s” out of range"
-msgstr "Valor inteiro “%s” para além do limite permitido"
+msgid "Integer value '%s' out of range"
+msgstr "Valor inteiro \"%s\" para além do limite permitido"
 
-#: glib/gkeyfile.c:4497
+#: ../glib/gkeyfile.c:4344
 #, c-format
-#| msgid "Value '%s' cannot be interpreted as a float number."
-msgid "Value “%s” cannot be interpreted as a float number."
-msgstr "Impossível interpretar o valor “%s” como um número vírgula flutuante."
+msgid "Value '%s' cannot be interpreted as a float number."
+msgstr ""
+"Impossível interpretar o valor \"%s\" como um número de vírgula flutuante."
 
-#: glib/gkeyfile.c:4536
+#: ../glib/gkeyfile.c:4383
 #, c-format
-#| msgid "Value '%s' cannot be interpreted as a boolean."
-msgid "Value “%s” cannot be interpreted as a boolean."
-msgstr "Impossível interpretar o valor “%s” como lógico."
+msgid "Value '%s' cannot be interpreted as a boolean."
+msgstr "Impossível interpretar o valor \"%s\" como lógico."
 
-#: glib/gmappedfile.c:129
+#: ../glib/gmappedfile.c:129
 #, c-format
-#| msgid "Failed to get attributes of file '%s%s%s%s': fstat() failed: %s"
-msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
-msgstr "Falha ao obter atributos do ficheiro “%s%s%s%s”: falha no fstat(): %s"
+msgid "Failed to get attributes of file '%s%s%s%s': fstat() failed: %s"
+msgstr ""
+"Falha ao obter atributos do ficheiro \"%s%s%s%s\": falha no fstat(): %s"
 
-#: glib/gmappedfile.c:195
+#: ../glib/gmappedfile.c:195
 #, c-format
 msgid "Failed to map %s%s%s%s: mmap() failed: %s"
 msgstr "Falha ao mapear %s%s%s%s: falha no mmap(): %s"
 
-#: glib/gmappedfile.c:262
+#: ../glib/gmappedfile.c:262
 #, c-format
-#| msgid "Failed to open file '%s': open() failed: %s"
-msgid "Failed to open file “%s”: open() failed: %s"
-msgstr "Falha ao abrir o ficheiro “%s”: falha no open(): %s"
+msgid "Failed to open file '%s': open() failed: %s"
+msgstr "Falha ao abrir o ficheiro \"%s\": falha no open(): %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: ../glib/gmarkup.c:398 ../glib/gmarkup.c:440
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Erro na linha %d, carácter %d: "
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: ../glib/gmarkup.c:462 ../glib/gmarkup.c:545
 #, c-format
-#| msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
-msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
-msgstr "Texto codificado em UTF-8 no nome inválido — “%s” inválido"
+msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
+msgstr "Texto codificado UTF-8 inválido no nome - \"%s\" inválido"
 
-#: glib/gmarkup.c:473
+#: ../glib/gmarkup.c:473
 #, c-format
-#| msgid "'%s' is not a valid name"
-msgid "“%s” is not a valid name"
-msgstr "“%s” não é um nome válido"
+msgid "'%s' is not a valid name"
+msgstr "\"%s\" não é um nome válido"
 
-#: glib/gmarkup.c:489
+#: ../glib/gmarkup.c:489
 #, c-format
-#| msgid "'%s' is not a valid name: '%c'"
-msgid "“%s” is not a valid name: “%c”"
-msgstr "“%s” não é um nome válido: “%c”"
+msgid "'%s' is not a valid name: '%c'"
+msgstr "\"%s\" não é um nome válido: \"%c\""
 
-#: glib/gmarkup.c:613
+#: ../glib/gmarkup.c:599
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Erro na linha %d: %s"
 
-#: glib/gmarkup.c:690
+#: ../glib/gmarkup.c:676
 #, c-format
-#| msgid ""
-#| "Failed to parse '%-.*s', which should have been a digit inside a "
-#| "character reference (&#234; for example) - perhaps the digit is too large"
 msgid ""
-"Failed to parse “%-.*s”, which should have been a digit inside a character "
-"reference (&#234; for example)  perhaps the digit is too large"
+"Failed to parse '%-.*s', which should have been a digit inside a character "
+"reference (&#234; for example) - perhaps the digit is too large"
 msgstr ""
-"Falha ao processar “%-.*s”, que deveria ser um dígito dentro de uma "
-"referência de carácter (&#234; por exemplo)  talvez o dígito seja demasiado "
+"Falha ao processar \"%-.*s\", que deveria ser um dígito dentro de uma "
+"referência de carácter (&#234; por exemplo) - talvez o dígito seja demasiado "
 "grande"
 
-#: glib/gmarkup.c:702
-#| msgid ""
-#| "Character reference did not end with a semicolon; most likely you used an "
-#| "ampersand character without intending to start an entity - escape "
-#| "ampersand as &amp;"
+#: ../glib/gmarkup.c:688
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
-"ampersand character without intending to start an entity  escape ampersand "
+"ampersand character without intending to start an entity - escape ampersand "
 "as &amp;"
 msgstr ""
 "Referência de carácter não termina com um ponto e vírgula; provavelmente foi "
-"utilizado um carácter “i comercial” sem intenção de iniciar uma entidade — "
+"utilizado um carácter \"i comercial\" sem intenção de iniciar uma entidade - "
 "mascare-o como &amp;"
 
-#: glib/gmarkup.c:728
+#: ../glib/gmarkup.c:714
 #, c-format
-#| msgid "Character reference '%-.*s' does not encode a permitted character"
-msgid "Character reference “%-.*s” does not encode a permitted character"
-msgstr "Referência de carácter “%-.*s” não codifica um carácter permitido"
+msgid "Character reference '%-.*s' does not encode a permitted character"
+msgstr "Referência de carácter \"%-.*s\" não codifica um carácter permitido"
 
-#: glib/gmarkup.c:766
-#| msgid ""
-#| "Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+#: ../glib/gmarkup.c:752
 msgid ""
-"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+"Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
 msgstr ""
-"Entidade vazia “&;” avistada; entidades válidas são: &amp; &quot; &lt; &gt; "
-"&apos;"
+"Detetada entidade vazia \"&;\"; entidades válidas são: &amp; &quot; &lt; "
+"&gt; &apos;"
 
-#: glib/gmarkup.c:774
+#: ../glib/gmarkup.c:760
 #, c-format
-#| msgid "Entity name '%-.*s' is not known"
-msgid "Entity name “%-.*s” is not known"
-msgstr "Nome de entidade “%-.*s” é desconhecido"
+msgid "Entity name '%-.*s' is not known"
+msgstr "Nome de entidade \"%-.*s\" é desconhecido"
 
-#: glib/gmarkup.c:779
-#| msgid ""
-#| "Entity did not end with a semicolon; most likely you used an ampersand "
-#| "character without intending to start an entity - escape ampersand as &amp;"
+#: ../glib/gmarkup.c:765
 msgid ""
 "Entity did not end with a semicolon; most likely you used an ampersand "
-"character without intending to start an entity  escape ampersand as &amp;"
+"character without intending to start an entity - escape ampersand as &amp;"
 msgstr ""
 "Entidade não termina com um ponto e vírgula; provavelmente foi utilizado um "
-"carácter “e comercial” sem intenção de iniciar uma entidade — mascare-o como "
-"&amp;"
+"carácter \"i comercial\" sem intenção de iniciar uma entidade - mascare-o "
+"como &amp;"
 
-#: glib/gmarkup.c:1193
+#: ../glib/gmarkup.c:1171
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Documento tem de começar com um elemento (ex. <book>)"
 
-#: glib/gmarkup.c:1233
+#: ../glib/gmarkup.c:1211
 #, c-format
-#| msgid ""
-#| "'%s' is not a valid character following a '<' character; it may not begin "
-#| "an element name"
 msgid ""
-"“%s” is not a valid character following a “<” character; it may not begin an "
+"'%s' is not a valid character following a '<' character; it may not begin an "
 "element name"
 msgstr ""
-"“%s” não é um carácter válido após um carácter “<”; pode não iniciar um nome "
-"de elemento"
+"\"%s\" não é um carácter válido após um carácter \"<\"; não pode iniciar um "
+"nome de elemento"
 
-#: glib/gmarkup.c:1276
+#: ../glib/gmarkup.c:1253
 #, c-format
-#| msgid ""
-#| "Odd character '%s', expected a '>' character to end the empty-element tag "
-#| "'%s'"
 msgid ""
-"Odd character “%s”, expected a “>” character to end the empty-element tag "
-"“%s”"
+"Odd character '%s', expected a '>' character to end the empty-element tag "
+"'%s'"
 msgstr ""
-"Carácter estranho “%s”, era esperado um carácter “>” para terminar a "
-"etiqueta de elemento vazio “%s”"
+"Caracter estranho \"%s\", era esperado um carácter \">\" para terminar a "
+"etiqueta de elemento vazio \"%s\""
 
-#: glib/gmarkup.c:1346
+#: ../glib/gmarkup.c:1334
 #, c-format
-msgid "Too many attributes in element “%s”"
-msgstr "Demasiados atributos no elemento “%s”"
-
-#: glib/gmarkup.c:1366
-#, c-format
-#| msgid ""
-#| "Odd character '%s', expected a '=' after attribute name '%s' of element "
-#| "'%s'"
 msgid ""
-"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
+"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
 msgstr ""
-"Carácter estranho “%s”, era esperado um “=” após o nome do atributo “%s” do "
-"elemento “%s”"
+"Carácter estranho \"%s\", era esperado um \"=\" após o nome do atributo \"%s"
+"\" do elemento \"%s\""
 
-#: glib/gmarkup.c:1408
+#: ../glib/gmarkup.c:1375
 #, c-format
-#| msgid ""
-#| "Odd character '%s', expected a '>' or '/' character to end the start tag "
-#| "of element '%s', or optionally an attribute; perhaps you used an invalid "
-#| "character in an attribute name"
 msgid ""
-"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
-"element “%s”, or optionally an attribute; perhaps you used an invalid "
+"Odd character '%s', expected a '>' or '/' character to end the start tag of "
+"element '%s', or optionally an attribute; perhaps you used an invalid "
 "character in an attribute name"
 msgstr ""
-"Carácter estranho “%s”, era esperado um carácter “>” ou “/” para terminar a "
-"etiqueta inicial do elemento “%s”, ou opcionalmente um atributo; talvez "
-"tenha sido utilizado um carácter inválido no nome de um atributo"
+"Carácter estranho \"%s\", era esperado um carácter \">\" ou \"/\" para "
+"terminar a etiqueta inicial do elemento \"%s\", ou opcionalmente um "
+"atributo; talvez tenha sido utilizado um carácter inválido no nome de um "
+"atributo"
 
-#: glib/gmarkup.c:1453
+#: ../glib/gmarkup.c:1419
 #, c-format
-#| msgid ""
-#| "Odd character '%s', expected an open quote mark after the equals sign "
-#| "when giving value for attribute '%s' of element '%s'"
 msgid ""
-"Odd character “%s”, expected an open quote mark after the equals sign when "
-"giving value for attribute “%s” of element “%s”"
+"Odd character '%s', expected an open quote mark after the equals sign when "
+"giving value for attribute '%s' of element '%s'"
 msgstr ""
-"Carácter estranho “%s”, era esperada uma abertura de aspa após o sinal de "
-"igual ao atribuir valor ao atributo “%s” do elemento “%s”"
+"Carácter estranho \"%s\", era esperada uma abertura de aspa após o sinal de "
+"igual ao atribuir valor ao atributo \"%s\" do elemento \"%s\""
 
-#: glib/gmarkup.c:1587
+#: ../glib/gmarkup.c:1552
 #, c-format
-#| msgid ""
-#| "'%s' is not a valid character following the characters '</'; '%s' may not "
-#| "begin an element name"
 msgid ""
-"“%s” is not a valid character following the characters “</”; “%s” may not "
+"'%s' is not a valid character following the characters '</'; '%s' may not "
 "begin an element name"
 msgstr ""
-"“%s” não é um carácter válido após os caracteres \"</\"; “%s” pode não "
+"\"%s\" não é um carácter válido após os caracteres \"</\"; \"%s\" não pode "
 "iniciar o nome de um elemento"
 
-#: glib/gmarkup.c:1625
+#: ../glib/gmarkup.c:1588
 #, c-format
-#| msgid ""
-#| "'%s' is not a valid character following the close element name '%s'; the "
-#| "allowed character is '>'"
 msgid ""
-"“%s” is not a valid character following the close element name “%s”; the "
-"allowed character is “>”"
+"'%s' is not a valid character following the close element name '%s'; the "
+"allowed character is '>'"
 msgstr ""
-"“%s” não é um carácter válido após o nome do elemento de fecho “%s”; o "
-"carácter permitido é “>”"
+"\"%s\" não é um carácter válido após o nome do elemento de fecho \"%s\"; o "
+"carácter permitido é \">\""
 
-#: glib/gmarkup.c:1637
+#: ../glib/gmarkup.c:1599
 #, c-format
-#| msgid "Element '%s' was closed, no element is currently open"
-msgid "Element “%s” was closed, no element is currently open"
-msgstr "Elemento “%s” foi fechado, nenhum elemento está atualmente aberto"
+msgid "Element '%s' was closed, no element is currently open"
+msgstr "Elemento \"%s\" foi fechado, nenhum elemento está atualmente aberto"
 
-#: glib/gmarkup.c:1646
+#: ../glib/gmarkup.c:1608
 #, c-format
-#| msgid "Element '%s' was closed, but the currently open element is '%s'"
-msgid "Element “%s” was closed, but the currently open element is “%s”"
-msgstr "Elemento “%s” foi fechado, mas o elemento atualmente aberto é “%s”"
+msgid "Element '%s' was closed, but the currently open element is '%s'"
+msgstr "Elemento \"%s\" foi fechado, mas o elemento atualmente aberto é \"%s\""
 
-#: glib/gmarkup.c:1799
+#: ../glib/gmarkup.c:1761
 msgid "Document was empty or contained only whitespace"
 msgstr "Documento estava vazio ou só continha espaços"
 
-#: glib/gmarkup.c:1813
-#| msgid "Document ended unexpectedly just after an open angle bracket '<'"
-msgid "Document ended unexpectedly just after an open angle bracket “<”"
-msgstr "Documento terminou inesperadamente logo após um carácter menor que “<”"
+#: ../glib/gmarkup.c:1775
+msgid "Document ended unexpectedly just after an open angle bracket '<'"
+msgstr ""
+"Documento terminou inesperadamente logo após um carácter menor que \"<\""
 
-#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
+#: ../glib/gmarkup.c:1783 ../glib/gmarkup.c:1828
 #, c-format
-#| msgid ""
-#| "Document ended unexpectedly with elements still open - '%s' was the last "
-#| "element opened"
 msgid ""
-"Document ended unexpectedly with elements still open — “%s” was the last "
+"Document ended unexpectedly with elements still open - '%s' was the last "
 "element opened"
 msgstr ""
-"Documento terminou inesperadamente com elementos ainda abertos — “%s” foi o "
-"último elemento aberto"
+"Documento terminou inesperadamente com elementos ainda abertos - \"%s\" foi "
+"último elemento aberto"
 
-#: glib/gmarkup.c:1829
+#: ../glib/gmarkup.c:1791
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5620,21 +4647,21 @@ msgstr ""
 "Documento terminou inesperadamente, era esperado um maior que \">\" para "
 "terminar a etiqueta <%s/>"
 
-#: glib/gmarkup.c:1835
+#: ../glib/gmarkup.c:1797
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Documento terminou inesperadamente dentro do nome de um elemento"
 
-#: glib/gmarkup.c:1841
+#: ../glib/gmarkup.c:1803
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Documento terminou inesperadamente dentro do nome de um atributo"
 
-#: glib/gmarkup.c:1846
+#: ../glib/gmarkup.c:1808
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr ""
 "Documento terminou inesperadamente dentro da etiqueta de abertura de um "
 "elemento."
 
-#: glib/gmarkup.c:1852
+#: ../glib/gmarkup.c:1814
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5642,330 +4669,316 @@ msgstr ""
 "Documento terminou inesperadamente após o sinal de igual posterior a um nome "
 "de atributo; nenhum valor de atributo"
 
-#: glib/gmarkup.c:1859
+#: ../glib/gmarkup.c:1821
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Documento terminou inesperadamente dentro do valor de um atributo"
 
-#: glib/gmarkup.c:1876
+#: ../glib/gmarkup.c:1837
 #, c-format
-#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgid "Document ended unexpectedly inside the close tag for element “%s”"
+msgid "Document ended unexpectedly inside the close tag for element '%s'"
 msgstr ""
 "Documento terminou inesperadamente dentro da etiqueta de fecho do elemento "
-"“%s”"
+"\"%s\""
 
-#: glib/gmarkup.c:1880
-#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgid ""
-"Document ended unexpectedly inside the close tag for an unopened element"
-msgstr ""
-"Documento terminou inesperadamente dentro da etiqueta de fecho do elemento "
-"para um elemento não aberto"
-
-#: glib/gmarkup.c:1886
+#: ../glib/gmarkup.c:1843
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "Documento terminou inesperadamente dentro de um comentário ou instrução de "
 "processamento"
 
-#: glib/goption.c:868
-#| msgid "[OPTION...]"
-msgid "[OPTION…]"
+#: ../glib/goption.c:861
+msgid "[OPTION...]"
 msgstr "[OPÇÃO...]"
 
-#: glib/goption.c:984
+#: ../glib/goption.c:977
 msgid "Help Options:"
 msgstr "Opções de ajuda:"
 
-#: glib/goption.c:985
+#: ../glib/goption.c:978
 msgid "Show help options"
 msgstr "Mostrar as opções de ajuda"
 
-#: glib/goption.c:991
+#: ../glib/goption.c:984
 msgid "Show all help options"
 msgstr "Mostrar todas as opções de ajuda"
 
-#: glib/goption.c:1054
+#: ../glib/goption.c:1047
 msgid "Application Options:"
 msgstr "Opções da aplicação:"
 
-#: glib/goption.c:1056
+#: ../glib/goption.c:1049
 msgid "Options:"
 msgstr "Opções:"
 
-#: glib/goption.c:1120 glib/goption.c:1190
+#: ../glib/goption.c:1113 ../glib/goption.c:1183
 #, c-format
-#| msgid "Cannot parse integer value '%s' for %s"
-msgid "Cannot parse integer value “%s” for %s"
-msgstr "Impossível processar o valor inteiro “%s” para %s"
+msgid "Cannot parse integer value '%s' for %s"
+msgstr "Impossível processar o valor inteiro \"%s\" para %s"
 
-#: glib/goption.c:1130 glib/goption.c:1198
+#: ../glib/goption.c:1123 ../glib/goption.c:1191
 #, c-format
-#| msgid "Integer value '%s' for %s out of range"
-msgid "Integer value “%s” for %s out of range"
-msgstr "Valor inteiro “%s” para %s para lá do limite permitido"
+msgid "Integer value '%s' for %s out of range"
+msgstr "Valor inteiro \"%s\" para %s para lá do limite permitido"
 
-#: glib/goption.c:1155
+#: ../glib/goption.c:1148
 #, c-format
-#| msgid "Cannot parse double value '%s' for %s"
-msgid "Cannot parse double value “%s” for %s"
-msgstr "Impossível processar o valor de dupla precisão “%s” para %s"
+msgid "Cannot parse double value '%s' for %s"
+msgstr "Impossível processar o valor double \"%s\" para %s"
 
-#: glib/goption.c:1163
+#: ../glib/goption.c:1156
 #, c-format
-#| msgid "Double value '%s' for %s out of range"
-msgid "Double value “%s” for %s out of range"
-msgstr "Valor de dupla precisão “%s” para %s para lá do limite permitido"
+msgid "Double value '%s' for %s out of range"
+msgstr "Valor double \"%s\" para %s para lá do limite permitido"
 
-#: glib/goption.c:1455 glib/goption.c:1534
+#: ../glib/goption.c:1442 ../glib/goption.c:1521
 #, c-format
 msgid "Error parsing option %s"
 msgstr "Erro ao processar a opção %s"
 
-#: glib/goption.c:1565 glib/goption.c:1678
+#: ../glib/goption.c:1552 ../glib/goption.c:1665
 #, c-format
 msgid "Missing argument for %s"
 msgstr "Argumento em falta para %s"
 
-#: glib/goption.c:2189
+#: ../glib/goption.c:2126
 #, c-format
 msgid "Unknown option %s"
 msgstr "Opção %s desconhecida"
 
-#: glib/gregex.c:257
+#: ../glib/gregex.c:258
 msgid "corrupted object"
 msgstr "objeto corrompido"
 
-#: glib/gregex.c:259
+#: ../glib/gregex.c:260
 msgid "internal error or corrupted object"
 msgstr "erro interno ou objeto corrompido"
 
-#: glib/gregex.c:261
+#: ../glib/gregex.c:262
 msgid "out of memory"
 msgstr "sem memória livre"
 
-#: glib/gregex.c:266
+#: ../glib/gregex.c:267
 msgid "backtracking limit reached"
 msgstr "limite de retroceder alcançado"
 
-#: glib/gregex.c:278 glib/gregex.c:286
+#: ../glib/gregex.c:279 ../glib/gregex.c:287
 msgid "the pattern contains items not supported for partial matching"
 msgstr "o padrão contém itens não suportados para comparação parcial"
 
-#: glib/gregex.c:280
+#: ../glib/gregex.c:281
 msgid "internal error"
 msgstr "erro interno"
 
-#: glib/gregex.c:288
+#: ../glib/gregex.c:289
 msgid "back references as conditions are not supported for partial matching"
 msgstr ""
 "referências anteriores como condições não são suportadas para comparação "
 "parcial"
 
-#: glib/gregex.c:297
+#: ../glib/gregex.c:298
 msgid "recursion limit reached"
 msgstr "alcançado o limite de recursividade"
 
-#: glib/gregex.c:299
+#: ../glib/gregex.c:300
 msgid "invalid combination of newline flags"
 msgstr "combinação inválida de parâmetros de quebra de linha"
 
-#: glib/gregex.c:301
+#: ../glib/gregex.c:302
 msgid "bad offset"
 msgstr "desvio inválido"
 
-#: glib/gregex.c:303
+#: ../glib/gregex.c:304
 msgid "short utf8"
 msgstr "utf8 curto"
 
-#: glib/gregex.c:305
+#: ../glib/gregex.c:306
 msgid "recursion loop"
 msgstr "recursão infinita"
 
-#: glib/gregex.c:309
+#: ../glib/gregex.c:310
 msgid "unknown error"
 msgstr "erro desconhecido"
 
-#: glib/gregex.c:329
+#: ../glib/gregex.c:330
 msgid "\\ at end of pattern"
 msgstr "\\ no final do padrão"
 
-#: glib/gregex.c:332
+#: ../glib/gregex.c:333
 msgid "\\c at end of pattern"
 msgstr "\\c no final do padrão"
 
-#: glib/gregex.c:335
+#: ../glib/gregex.c:336
 msgid "unrecognized character following \\"
 msgstr "carácter desconhecido após \\"
 
-#: glib/gregex.c:338
+#: ../glib/gregex.c:339
 msgid "numbers out of order in {} quantifier"
 msgstr "números fora da ordem no quantificador {}"
 
-#: glib/gregex.c:341
+#: ../glib/gregex.c:342
 msgid "number too big in {} quantifier"
 msgstr "número demasiado grande no quantificador {}"
 
-#: glib/gregex.c:344
+#: ../glib/gregex.c:345
 msgid "missing terminating ] for character class"
 msgstr "falta o ] de fecho da classe de carácter"
 
-#: glib/gregex.c:347
+#: ../glib/gregex.c:348
 msgid "invalid escape sequence in character class"
 msgstr "sequência de escape inválida na classe de carácter"
 
-#: glib/gregex.c:350
+#: ../glib/gregex.c:351
 msgid "range out of order in character class"
 msgstr "intervalo fora da ordem na classe de carácter"
 
-#: glib/gregex.c:353
+#: ../glib/gregex.c:354
 msgid "nothing to repeat"
 msgstr "nada a repetir"
 
-#: glib/gregex.c:357
+#: ../glib/gregex.c:358
 msgid "unexpected repeat"
 msgstr "repetição inesperada"
 
-#: glib/gregex.c:360
+#: ../glib/gregex.c:361
 msgid "unrecognized character after (? or (?-"
 msgstr "carácter desconhecido após (? or (?-"
 
-#: glib/gregex.c:363
+#: ../glib/gregex.c:364
 msgid "POSIX named classes are supported only within a class"
 msgstr "classes denominadas POSIX apenas são suportadas dentro de uma classe"
 
-#: glib/gregex.c:366
+#: ../glib/gregex.c:367
 msgid "missing terminating )"
 msgstr "falta o ) de fecho"
 
-#: glib/gregex.c:369
+#: ../glib/gregex.c:370
 msgid "reference to non-existent subpattern"
 msgstr "referência a padrão inexistente"
 
-#: glib/gregex.c:372
+#: ../glib/gregex.c:373
 msgid "missing ) after comment"
 msgstr "falta o ) após o comentário"
 
-#: glib/gregex.c:375
+#: ../glib/gregex.c:376
 msgid "regular expression is too large"
-msgstr "Expressão regular demasiado extensa"
+msgstr "expressão regular demasiado extensa"
 
-#: glib/gregex.c:378
+#: ../glib/gregex.c:379
 msgid "failed to get memory"
 msgstr "falha ao obter memória"
 
-#: glib/gregex.c:382
+#: ../glib/gregex.c:383
 msgid ") without opening ("
 msgstr ") sem um ( de abertura"
 
-#: glib/gregex.c:386
+#: ../glib/gregex.c:387
 msgid "code overflow"
 msgstr "código fora dos limites"
 
-#: glib/gregex.c:390
+#: ../glib/gregex.c:391
 msgid "unrecognized character after (?<"
 msgstr "carácter desconhecido após (?<"
 
-#: glib/gregex.c:393
+#: ../glib/gregex.c:394
 msgid "lookbehind assertion is not fixed length"
 msgstr "asserção de verificação anterior não é de largura fixa"
 
-#: glib/gregex.c:396
+#: ../glib/gregex.c:397
 msgid "malformed number or name after (?("
 msgstr "número ou nome mal formado após (?("
 
-#: glib/gregex.c:399
+#: ../glib/gregex.c:400
 msgid "conditional group contains more than two branches"
 msgstr "grupo condicional contém mais de dois ramos"
 
-#: glib/gregex.c:402
+#: ../glib/gregex.c:403
 msgid "assertion expected after (?("
 msgstr "esperada uma asserção após (?("
 
 #. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
 #. * sequences here, '(?-54' would be an example for the second group.
 #.
-#: glib/gregex.c:409
+#: ../glib/gregex.c:410
 msgid "(?R or (?[+-]digits must be followed by )"
 msgstr "(?R ou (?[+-]números tem de ser seguido de )"
 
-#: glib/gregex.c:412
+#: ../glib/gregex.c:413
 msgid "unknown POSIX class name"
 msgstr "nome de classe POSIX desconhecido"
 
-#: glib/gregex.c:415
+#: ../glib/gregex.c:416
 msgid "POSIX collating elements are not supported"
 msgstr "não são suportados os elementos de junção POSIX"
 
-#: glib/gregex.c:418
+#: ../glib/gregex.c:419
 msgid "character value in \\x{...} sequence is too large"
 msgstr "valor do carácter na sequência \\x{...} é demasiado grande"
 
-#: glib/gregex.c:421
+#: ../glib/gregex.c:422
 msgid "invalid condition (?(0)"
 msgstr "condição inválida (?(0)"
 
-#: glib/gregex.c:424
+#: ../glib/gregex.c:425
 msgid "\\C not allowed in lookbehind assertion"
 msgstr "\\C não é permitido numa asserção de verificação anterior"
 
-#: glib/gregex.c:431
+#: ../glib/gregex.c:432
 msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
 msgstr "escapes \\L, \\l, \\N{nome}, \\U, e \\u não são suportados"
 
-#: glib/gregex.c:434
+#: ../glib/gregex.c:435
 msgid "recursive call could loop indefinitely"
 msgstr "chamada recursiva pode iterar indefinidamente"
 
-#: glib/gregex.c:438
+#: ../glib/gregex.c:439
 msgid "unrecognized character after (?P"
 msgstr "carácter desconhecido após (?P"
 
-#: glib/gregex.c:441
+#: ../glib/gregex.c:442
 msgid "missing terminator in subpattern name"
 msgstr "falta o terminador no nome do subpadrão"
 
-#: glib/gregex.c:444
+#: ../glib/gregex.c:445
 msgid "two named subpatterns have the same name"
 msgstr "dois subpadrões denominados têm o mesmo nome"
 
-#: glib/gregex.c:447
+#: ../glib/gregex.c:448
 msgid "malformed \\P or \\p sequence"
 msgstr "sequência \\P ou \\p mal formada"
 
-#: glib/gregex.c:450
+#: ../glib/gregex.c:451
 msgid "unknown property name after \\P or \\p"
 msgstr "nome de propriedade desconhecido após \\P ou \\p"
 
-#: glib/gregex.c:453
+#: ../glib/gregex.c:454
 msgid "subpattern name is too long (maximum 32 characters)"
 msgstr "nome do subpadrão é demasiado extenso (máximo de 32 caracteres)"
 
-#: glib/gregex.c:456
+#: ../glib/gregex.c:457
 msgid "too many named subpatterns (maximum 10,000)"
 msgstr "demasiados subpadrões denominados (máximo de 10.000)"
 
-#: glib/gregex.c:459
+#: ../glib/gregex.c:460
 msgid "octal value is greater than \\377"
 msgstr "valor octal é maior do que \\377"
 
-#: glib/gregex.c:463
+#: ../glib/gregex.c:464
 msgid "overran compiling workspace"
 msgstr "derramou fora da área de trabalho de compilação"
 
-#: glib/gregex.c:467
+#: ../glib/gregex.c:468
 msgid "previously-checked referenced subpattern not found"
 msgstr "subpadrão referenciado previamente verificado não foi encontrado"
 
-#: glib/gregex.c:470
+#: ../glib/gregex.c:471
 msgid "DEFINE group contains more than one branch"
 msgstr "grupo DEFINE contém mais de um ramo"
 
-#: glib/gregex.c:473
+#: ../glib/gregex.c:474
 msgid "inconsistent NEWLINE options"
 msgstr "opções de NEWLINE inconsistentes"
 
-#: glib/gregex.c:476
+#: ../glib/gregex.c:477
 msgid ""
 "\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
 "or by a plain number"
@@ -5973,294 +4986,278 @@ msgstr ""
 "\\g não é seguido de um nome ou número delimitado por chavetas, parenteses "
 "ou aspas ou um número simples"
 
-#: glib/gregex.c:480
+#: ../glib/gregex.c:481
 msgid "a numbered reference must not be zero"
 msgstr "uma referência numerada não pode ser zero"
 
-#: glib/gregex.c:483
+#: ../glib/gregex.c:484
 msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
 msgstr "não é permitido um argumento para (*ACCEPT), (*FAIL), ou (*COMMIT)"
 
-#: glib/gregex.c:486
+#: ../glib/gregex.c:487
 msgid "(*VERB) not recognized"
 msgstr "(*VERB) não é reconhecido"
 
-#: glib/gregex.c:489
+#: ../glib/gregex.c:490
 msgid "number is too big"
 msgstr "número é demasiado grande"
 
-#: glib/gregex.c:492
+#: ../glib/gregex.c:493
 msgid "missing subpattern name after (?&"
 msgstr "falta o nome do subpadrão após (?&"
 
-#: glib/gregex.c:495
+#: ../glib/gregex.c:496
 msgid "digit expected after (?+"
 msgstr "esperado um dígito após (?+"
 
-#: glib/gregex.c:498
+#: ../glib/gregex.c:499
 msgid "] is an invalid data character in JavaScript compatibility mode"
 msgstr ""
 "] é um carácter de dados inválido no modo de compatibilidade JavaScript"
 
-#: glib/gregex.c:501
+#: ../glib/gregex.c:502
 msgid "different names for subpatterns of the same number are not allowed"
 msgstr "não são permitidos nomes diferentes para subpadrões do mesmo número"
 
-#: glib/gregex.c:504
+#: ../glib/gregex.c:505
 msgid "(*MARK) must have an argument"
 msgstr "(*MARK) tem de ter um argumento"
 
-#: glib/gregex.c:507
+#: ../glib/gregex.c:508
 msgid "\\c must be followed by an ASCII character"
 msgstr "\\c não pode ser seguido de um carácter ASCII"
 
-#: glib/gregex.c:510
+#: ../glib/gregex.c:511
 msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
 msgstr ""
 "\\k não é seguido de um nome delimitado por chavetas, parenteses angulares "
 "ou aspas"
 
-#: glib/gregex.c:513
+#: ../glib/gregex.c:514
 msgid "\\N is not supported in a class"
 msgstr "\\N não é suportado numa classe"
 
-#: glib/gregex.c:516
+#: ../glib/gregex.c:517
 msgid "too many forward references"
 msgstr "demasiadas referências de reencaminhamento"
 
-#: glib/gregex.c:519
+#: ../glib/gregex.c:520
 msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
 msgstr "nome é demasiado extenso em (*MARK), (*PRUNE), (*SKIP), ou (*THEN)"
 
-#: glib/gregex.c:522
+#: ../glib/gregex.c:523
 msgid "character value in \\u.... sequence is too large"
 msgstr "valor do carácter na sequência \\u.... é demasiado grande"
 
-#: glib/gregex.c:745 glib/gregex.c:1983
+#: ../glib/gregex.c:746 ../glib/gregex.c:1977
 #, c-format
 msgid "Error while matching regular expression %s: %s"
 msgstr "Erro ao comparar a expressão regular %s: %s"
 
-#: glib/gregex.c:1316
+#: ../glib/gregex.c:1317
 msgid "PCRE library is compiled without UTF8 support"
 msgstr "Biblioteca PCRE está compilada sem suporte UTF8"
 
-#: glib/gregex.c:1320
+#: ../glib/gregex.c:1321
 msgid "PCRE library is compiled without UTF8 properties support"
 msgstr "Biblioteca PCRE está compilada sem suporte para propriedades UTF8"
 
-#: glib/gregex.c:1328
+#: ../glib/gregex.c:1329
 msgid "PCRE library is compiled with incompatible options"
 msgstr "Biblioteca PCRE está compilada com opções incompatíveis"
 
-#: glib/gregex.c:1357
+#: ../glib/gregex.c:1358
 #, c-format
 msgid "Error while optimizing regular expression %s: %s"
 msgstr "Erro ao otimizar a expressão regular %s: %s"
 
-#: glib/gregex.c:1437
+#: ../glib/gregex.c:1438
 #, c-format
 msgid "Error while compiling regular expression %s at char %d: %s"
 msgstr "Erro ao compilar a expressão regular %s no carácter %d: %s"
 
-#: glib/gregex.c:2419
-#| msgid "hexadecimal digit or '}' expected"
-msgid "hexadecimal digit or “}” expected"
+#: ../glib/gregex.c:2413
+msgid "hexadecimal digit or '}' expected"
 msgstr "esperado um dígito hexadecimal ou \"}\""
 
-#: glib/gregex.c:2435
+#: ../glib/gregex.c:2429
 msgid "hexadecimal digit expected"
 msgstr "esperado um dígito hexadecimal"
 
-#: glib/gregex.c:2475
-#| msgid "missing '<' in symbolic reference"
-msgid "missing “<” in symbolic reference"
-msgstr "falta “<” na referência simbólica"
+#: ../glib/gregex.c:2469
+msgid "missing '<' in symbolic reference"
+msgstr "falta \"<\" na referência simbólica"
 
-#: glib/gregex.c:2484
+#: ../glib/gregex.c:2478
 msgid "unfinished symbolic reference"
 msgstr "referência simbólica por terminar"
 
-#: glib/gregex.c:2491
+#: ../glib/gregex.c:2485
 msgid "zero-length symbolic reference"
 msgstr "referência simbólica de tamanho zero"
 
-#: glib/gregex.c:2502
+#: ../glib/gregex.c:2496
 msgid "digit expected"
 msgstr "esperado um dígito"
 
-#: glib/gregex.c:2520
+#: ../glib/gregex.c:2514
 msgid "illegal symbolic reference"
 msgstr "referência simbólica ilegal"
 
-#: glib/gregex.c:2583
-#| msgid "stray final '\\'"
-msgid "stray final “\\”"
-msgstr "“\\” final a mais"
+#: ../glib/gregex.c:2576
+msgid "stray final '\\'"
+msgstr "\"\\\" final a mais"
 
-#: glib/gregex.c:2587
+#: ../glib/gregex.c:2580
 msgid "unknown escape sequence"
 msgstr "sequência de escape desconhecida"
 
-#: glib/gregex.c:2597
+#: ../glib/gregex.c:2590
 #, c-format
-#| msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
-msgid "Error while parsing replacement text “%s” at char %lu: %s"
-msgstr "Erro ao processar o texto de substituição “%s” no carácter %lu: %s"
+msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
+msgstr "Erro ao processar o texto de substituição \"%s\" no carácter %lu: %s"
 
-#: glib/gshell.c:94
-#| msgid "Quoted text doesn't begin with a quotation mark"
-msgid "Quoted text doesn’t begin with a quotation mark"
+#: ../glib/gshell.c:96
+msgid "Quoted text doesn't begin with a quotation mark"
 msgstr "Texto citado não é iniciado com um carácter de aspa"
 
-#: glib/gshell.c:184
+#: ../glib/gshell.c:186
 msgid "Unmatched quotation mark in command line or other shell-quoted text"
 msgstr "Aspa sem par na linha de comando ou outro texto de consola citado"
 
-#: glib/gshell.c:580
+#: ../glib/gshell.c:582
 #, c-format
-#| msgid "Text ended just after a '\\' character. (The text was '%s')"
-msgid "Text ended just after a “\\” character. (The text was “%s”)"
-msgstr "Texto terminou após um carácter “\\”. (O texto era “%s”)"
+msgid "Text ended just after a '\\' character. (The text was '%s')"
+msgstr "Texto terminou após um carácter \"\\\". (O texto era \"%s\")"
 
-#: glib/gshell.c:587
+#: ../glib/gshell.c:589
 #, c-format
-#| msgid ""
-#| "Text ended before matching quote was found for %c. (The text was '%s')"
-msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
+msgid "Text ended before matching quote was found for %c. (The text was '%s')"
 msgstr ""
 "Texto terminou antes de ser encontrada a aspa equivalente para %c. (O texto "
-"era “%s”)"
+"era \"%s\")"
 
-#: glib/gshell.c:599
+#: ../glib/gshell.c:601
 msgid "Text was empty (or contained only whitespace)"
 msgstr "Texto estava vazio (ou apenas continha espaços)"
 
-#: glib/gspawn.c:315
+#: ../glib/gspawn.c:209
 #, c-format
 msgid "Failed to read data from child process (%s)"
 msgstr "Falha ao ler dados de processo filho (%s)"
 
-#: glib/gspawn.c:460
+#: ../glib/gspawn.c:353
 #, c-format
-#| msgid "Unexpected error in select() reading data from a child process (%s)"
-msgid "Unexpected error in reading data from a child process (%s)"
-msgstr "Erro inesperado ao ler dados de processo filho (%s)"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr "Erro inesperado no select() ao ler dados de processo filho (%s)"
 
-#: glib/gspawn.c:545
+#: ../glib/gspawn.c:438
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Erro inesperado em waitpid() (%s)"
 
-#: glib/gspawn.c:1053 glib/gspawn-win32.c:1329
+#: ../glib/gspawn.c:844 ../glib/gspawn-win32.c:1233
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "Processo filho terminou com o código %ld"
 
-#: glib/gspawn.c:1061
+#: ../glib/gspawn.c:852
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "Processo filho morto com o sinal %ld"
 
-#: glib/gspawn.c:1068
+#: ../glib/gspawn.c:859
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "Processo filho parado com o sinal %ld"
 
-#: glib/gspawn.c:1075
+#: ../glib/gspawn.c:866
 #, c-format
 msgid "Child process exited abnormally"
 msgstr "O processo filho terminou anormalmente"
 
-#: glib/gspawn.c:1475 glib/gspawn-win32.c:350 glib/gspawn-win32.c:358
+#: ../glib/gspawn.c:1271 ../glib/gspawn-win32.c:339 ../glib/gspawn-win32.c:347
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr "Falha ao ler de canal filho (%s)"
 
-#: glib/gspawn.c:1723
-#, c-format
-#| msgid "Failed to fork child process (%s)"
-msgid "Failed to spawn child process “%s” (%s)"
-msgstr "Falha ao criar processo filho “%s” (%s)"
-
-#: glib/gspawn.c:1762
+#: ../glib/gspawn.c:1341
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Falha ao efetuar fork (%s)"
 
-#: glib/gspawn.c:1911 glib/gspawn-win32.c:381
+#: ../glib/gspawn.c:1490 ../glib/gspawn-win32.c:370
 #, c-format
-#| msgid "Failed to change to directory '%s' (%s)"
-msgid "Failed to change to directory “%s” (%s)"
-msgstr "Falha ao ir para o diretório “%s” (%s)"
+msgid "Failed to change to directory '%s' (%s)"
+msgstr "Falha ao ir para pasta \"%s\" (%s)"
 
-#: glib/gspawn.c:1921
+#: ../glib/gspawn.c:1500
 #, c-format
-#| msgid "Failed to execute child process \"%s\" (%s)"
-msgid "Failed to execute child process “%s” (%s)"
-msgstr "Falha ao executar o processo filho “%s” (%s)"
+msgid "Failed to execute child process \"%s\" (%s)"
+msgstr "Falha ao executar o processo filho \"%s\" (%s)"
 
-#: glib/gspawn.c:1931
+#: ../glib/gspawn.c:1510
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Falha ao redirecionar saída ou entrada de processo filho (%s)"
 
-#: glib/gspawn.c:1940
+#: ../glib/gspawn.c:1519
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Falha ao efetuar fork de processo filho (%s)"
 
-#: glib/gspawn.c:1948
+#: ../glib/gspawn.c:1527
 #, c-format
-#| msgid "Unknown error executing child process \"%s\""
-msgid "Unknown error executing child process “%s”"
-msgstr "Erro desconhecido ao executar processo filho “%s”"
+msgid "Unknown error executing child process \"%s\""
+msgstr "Erro desconhecido ao executar processo filho \"%s\""
 
-#: glib/gspawn.c:1972
+#: ../glib/gspawn.c:1551
 #, c-format
 msgid "Failed to read enough data from child pid pipe (%s)"
 msgstr "Impossível ler dados suficientes de canal pid do filho (%s)"
 
-#: glib/gspawn-win32.c:294
+#: ../glib/gspawn-win32.c:283
 msgid "Failed to read data from child process"
 msgstr "Falha ao ler dados de processo filho"
 
-#: glib/gspawn-win32.c:311
+#: ../glib/gspawn-win32.c:300
 #, c-format
 msgid "Failed to create pipe for communicating with child process (%s)"
 msgstr "Falha ao criar canal para comunicar com processo filho (%s)"
 
-#: glib/gspawn-win32.c:387 glib/gspawn-win32.c:392 glib/gspawn-win32.c:511
+#: ../glib/gspawn-win32.c:376 ../glib/gspawn-win32.c:495
 #, c-format
 msgid "Failed to execute child process (%s)"
 msgstr "Falha ao executar processo filho (%s)"
 
-#: glib/gspawn-win32.c:461
+#: ../glib/gspawn-win32.c:445
 #, c-format
 msgid "Invalid program name: %s"
 msgstr "Nome de aplicação inválido: %s"
 
-#: glib/gspawn-win32.c:471 glib/gspawn-win32.c:725
+#: ../glib/gspawn-win32.c:455 ../glib/gspawn-win32.c:722
+#: ../glib/gspawn-win32.c:1297
 #, c-format
 msgid "Invalid string in argument vector at %d: %s"
-msgstr "Cadeia inválida no vetor de argumentos na posição %d: %s"
+msgstr "Expressão inválida no vetor de argumentos na posição %d: %s"
 
-#: glib/gspawn-win32.c:482 glib/gspawn-win32.c:740
+#: ../glib/gspawn-win32.c:466 ../glib/gspawn-win32.c:737
+#: ../glib/gspawn-win32.c:1330
 #, c-format
 msgid "Invalid string in environment: %s"
-msgstr "Cadeia inválida no ambiente: %s"
+msgstr "Expressão inválida no ambiente: %s"
 
-#: glib/gspawn-win32.c:721
+#: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1278
 #, c-format
 msgid "Invalid working directory: %s"
 msgstr "Pasta de trabalho inválida: %s"
 
-#: glib/gspawn-win32.c:783
+#: ../glib/gspawn-win32.c:783
 #, c-format
 msgid "Failed to execute helper program (%s)"
 msgstr "Falha ao executar aplicação auxiliar (%s)"
 
-#: glib/gspawn-win32.c:1056
+#: ../glib/gspawn-win32.c:997
 msgid ""
 "Unexpected error in g_io_channel_win32_poll() reading data from a child "
 "process"
@@ -6268,356 +5265,203 @@ msgstr ""
 "Erro inesperado no g_io_channel_win32_poll() ao ler dados de um processo "
 "filho"
 
-#: glib/gstrfuncs.c:3309 glib/gstrfuncs.c:3411
-msgid "Empty string is not a number"
-msgstr "Cadeia vazia não é um número"
-
-#: glib/gstrfuncs.c:3333
-#, c-format
-#| msgid "'%s' is not a valid name"
-msgid "“%s” is not a signed number"
-msgstr "“%s” não é um número com sinal"
-
-#: glib/gstrfuncs.c:3343 glib/gstrfuncs.c:3447
-#, c-format
-msgid "Number “%s” is out of bounds [%s, %s]"
-msgstr "Número “%s” está fora do limite [%s, %s]"
-
-#: glib/gstrfuncs.c:3437
-#, c-format
-#| msgid "'%s' is not a valid name"
-msgid "“%s” is not an unsigned number"
-msgstr "“%s” não é um valor sem sinal"
-
-#: glib/gutf8.c:817
+#: ../glib/gutf8.c:797
 msgid "Failed to allocate memory"
 msgstr "Falha ao alocar memória"
 
-#: glib/gutf8.c:950
+#: ../glib/gutf8.c:930
 msgid "Character out of range for UTF-8"
 msgstr "Carácter fora do limite para UTF-8 "
 
-#: glib/gutf8.c:1051 glib/gutf8.c:1060 glib/gutf8.c:1190 glib/gutf8.c:1199
-#: glib/gutf8.c:1338 glib/gutf8.c:1435
+#: ../glib/gutf8.c:1031 ../glib/gutf8.c:1040 ../glib/gutf8.c:1170
+#: ../glib/gutf8.c:1179 ../glib/gutf8.c:1318 ../glib/gutf8.c:1415
 msgid "Invalid sequence in conversion input"
 msgstr "Sequência inválida na conversão da entrada"
 
-#: glib/gutf8.c:1349 glib/gutf8.c:1446
+#: ../glib/gutf8.c:1329 ../glib/gutf8.c:1426
 msgid "Character out of range for UTF-16"
 msgstr "Carácter fora do limite para UTF-16"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2756
-#, c-format
-#| msgid "%.1f kB"
-msgid "%.1f kB"
-msgstr "%.1f kB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2758
-#, c-format
-#| msgid "%.1f MB"
-msgid "%.1f MB"
-msgstr "%.1f MB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2760
-#, c-format
-#| msgid "%.1f GB"
-msgid "%.1f GB"
-msgstr "%.1f GB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2762
-#, c-format
-#| msgid "%.1f TB"
-msgid "%.1f TB"
-msgstr "%.1f TB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2764
-#, c-format
-#| msgid "%.1f PB"
-msgid "%.1f PB"
-msgstr "%.1f PB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2766
-#, c-format
-#| msgid "%.1f EB"
-msgid "%.1f EB"
-msgstr "%.1f EB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2770
+#: ../glib/gutils.c:2139 ../glib/gutils.c:2166 ../glib/gutils.c:2272
 #, c-format
-#| msgid "%.1f KiB"
-msgid "%.1f KiB"
-msgstr "%.1f KiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2772
-#, c-format
-#| msgid "%.1f MiB"
-msgid "%.1f MiB"
-msgstr "%.1f MiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2774
-#, c-format
-#| msgid "%.1f GiB"
-msgid "%.1f GiB"
-msgstr "%.1f GiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2776
-#, c-format
-#| msgid "%.1f TiB"
-msgid "%.1f TiB"
-msgstr "%.1f TiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2778
-#, c-format
-#| msgid "%.1f PiB"
-msgid "%.1f PiB"
-msgstr "%.1f PiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2780
-#, c-format
-#| msgid "%.1f EiB"
-msgid "%.1f EiB"
-msgstr "%.1f EiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2784
-#, c-format
-#| msgid "%.1f kB"
-msgid "%.1f kb"
-msgstr "%.1f kb"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2786
-#, c-format
-#| msgid "%.1f MB"
-msgid "%.1f Mb"
-msgstr "%.1f Mb"
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u byte"
+msgstr[1] "%u bytes"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2788
+#: ../glib/gutils.c:2145
 #, c-format
-#| msgid "%.1f GB"
-msgid "%.1f Gb"
-msgstr "%.1f Gb"
+msgid "%.1f KiB"
+msgstr "%.1f KiB"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2790
+#: ../glib/gutils.c:2147
 #, c-format
-#| msgid "%.1f TB"
-msgid "%.1f Tb"
-msgstr "%.1f Tb"
+msgid "%.1f MiB"
+msgstr "%.1f MiB"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2792
+#: ../glib/gutils.c:2150
 #, c-format
-#| msgid "%.1f PB"
-msgid "%.1f Pb"
-msgstr "%.1f Pb"
+msgid "%.1f GiB"
+msgstr "%.1f GiB"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2794
+#: ../glib/gutils.c:2153
 #, c-format
-#| msgid "%.1f EB"
-msgid "%.1f Eb"
-msgstr "%.1f Eb"
+msgid "%.1f TiB"
+msgstr "%.1f TiB"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2798
+#: ../glib/gutils.c:2156
 #, c-format
-#| msgid "%.1f KiB"
-msgid "%.1f Kib"
-msgstr "%.1f Kib"
+msgid "%.1f PiB"
+msgstr "%.1f PiB"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2800
+#: ../glib/gutils.c:2159
 #, c-format
-#| msgid "%.1f MiB"
-msgid "%.1f Mib"
-msgstr "%.1f Mib"
+msgid "%.1f EiB"
+msgstr "%.1f EiB"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2802
+#: ../glib/gutils.c:2172
 #, c-format
-#| msgid "%.1f GiB"
-msgid "%.1f Gib"
-msgstr "%.1f Gib"
+msgid "%.1f kB"
+msgstr "%.1f kB"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2804
+#: ../glib/gutils.c:2175 ../glib/gutils.c:2290
 #, c-format
-#| msgid "%.1f TiB"
-msgid "%.1f Tib"
-msgstr "%.1f Tib"
+msgid "%.1f MB"
+msgstr "%.1f MB"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2806
+#: ../glib/gutils.c:2178 ../glib/gutils.c:2295
 #, c-format
-#| msgid "%.1f PiB"
-msgid "%.1f Pib"
-msgstr "%.1f Pib"
+msgid "%.1f GB"
+msgstr "%.1f GB"
 
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2808
+#: ../glib/gutils.c:2180 ../glib/gutils.c:2300
 #, c-format
-#| msgid "%.1f EiB"
-msgid "%.1f Eib"
-msgstr "%.1f Eib"
+msgid "%.1f TB"
+msgstr "%.1f TB"
 
-#: glib/gutils.c:2842 glib/gutils.c:2959
+#: ../glib/gutils.c:2183 ../glib/gutils.c:2305
 #, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u byte"
-msgstr[1] "%u bytes"
+msgid "%.1f PB"
+msgstr "%.1f PB"
 
-#: glib/gutils.c:2846
+#: ../glib/gutils.c:2186 ../glib/gutils.c:2310
 #, c-format
-#| msgid "%u byte"
-#| msgid_plural "%u bytes"
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "%u bit"
-msgstr[1] "%u bits"
+msgid "%.1f EB"
+msgstr "%.1f EB"
 
 #. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2913
+#: ../glib/gutils.c:2223
 #, c-format
 msgid "%s byte"
 msgid_plural "%s bytes"
 msgstr[0] "%s byte"
 msgstr[1] "%s bytes"
 
-#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2918
-#, c-format
-#| msgid "%s byte"
-#| msgid_plural "%s bytes"
-msgid "%s bit"
-msgid_plural "%s bits"
-msgstr[0] "%s bit"
-msgstr[1] "%s bits"
-
 #. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
 #. * mean 1024 bytes.  I am aware that 'KB' is not correct, but it has been preserved for reasons of
 #. * compatibility.  Users will not see this string unless a program is using this deprecated function.
 #. * Please translate as literally as possible.
 #.
-#: glib/gutils.c:2972
+#: ../glib/gutils.c:2285
 #, c-format
 msgid "%.1f KB"
 msgstr "%.1f KB"
 
-#: glib/gutils.c:2977
-#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
-
-#: glib/gutils.c:2982
-#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
-
-#: glib/gutils.c:2987
-#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
-
-#: glib/gutils.c:2992
-#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
-
-#: glib/gutils.c:2997
-#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
-
-#~ msgid "Error in address '%s' - the family attribute is malformed"
-#~ msgstr "Erro no endereço \"%s\" - o atributo family está mal formado"
+msgctxt "full month name with day"
+msgid "January"
+msgstr "janeiro"
 
-#~ msgid "Error creating directory '%s': %s"
-#~ msgstr "Erro ao criar a pasta \"%s\": %s"
+msgctxt "full month name with day"
+msgid "February"
+msgstr "fevereiro"
 
-#~ msgid "No such interface"
-#~ msgstr "Não existe o a pasta"
+msgctxt "full month name with day"
+msgid "March"
+msgstr "março"
 
-#~ msgid ""
-#~ "Message has %d file descriptors but the header field indicates %d file "
-#~ "descriptors"
-#~ msgstr ""
-#~ "Mensagem tem %d descritores de ficheiros mas o campo de cabeçalho indica "
-#~ "%d descritores de ficheiros"
+msgctxt "full month name with day"
+msgid "April"
+msgstr "abril"
 
-#~ msgid "Error: signal not specified.\n"
-#~ msgstr "Erro: sinal não especificado.\n"
+msgctxt "full month name with day"
+msgid "May"
+msgstr "maio"
 
-#~ msgid "Error: signal must be the fully-qualified name.\n"
-#~ msgstr "Erro: sinal tem de ser o nome completo (fully-qualified).\n"
+msgctxt "full month name with day"
+msgid "June"
+msgstr "junho"
 
-#~ msgid "No files given"
-#~ msgstr "Nenhum ficheiro oferecido"
+msgctxt "full month name with day"
+msgid "July"
+msgstr "julho"
 
-#~ msgid "Error getting writable attributes: %s\n"
-#~ msgstr "Erro ao definir atributos que podem ser escritos: %s\n"
+msgctxt "full month name with day"
+msgid "August"
+msgstr "agosto"
 
-#~ msgid "Error mounting location: %s\n"
-#~ msgstr "Erro a montar localização: %s\n"
+msgctxt "full month name with day"
+msgid "September"
+msgstr "setembro"
 
-#~ msgid "Error unmounting mount: %s\n"
-#~ msgstr "Erro a desmontar montagem: %s\n"
+msgctxt "full month name with day"
+msgid "October"
+msgstr "outubro"
 
-#~ msgid "Error finding enclosing mount: %s\n"
-#~ msgstr "Erro a encontrar montagem fechada: %s\n"
+msgctxt "full month name with day"
+msgid "November"
+msgstr "novembro"
 
-#~ msgid "Error ejecting mount: %s\n"
-#~ msgstr "Erro a ejetar montagem: %s\n"
+msgctxt "full month name with day"
+msgid "December"
+msgstr "dezembro"
 
-#~ msgid "Error mounting %s: %s\n"
-#~ msgstr "Erro a montar %s: %s\n"
+msgctxt "abbreviated month name with day"
+msgid "Jan"
+msgstr "jan"
 
-#~ msgid "Mounted %s at %s\n"
-#~ msgstr "Montar %s em %s\n"
+msgctxt "abbreviated month name with day"
+msgid "Feb"
+msgstr "fev"
 
-#~ msgid "No files to open"
-#~ msgstr "Nenhum ficheiro a abrir"
+msgctxt "abbreviated month name with day"
+msgid "Mar"
+msgstr "mar"
 
-#~ msgid "No files to delete"
-#~ msgstr "Nenhum ficheiro a apagar"
+msgctxt "abbreviated month name with day"
+msgid "Apr"
+msgstr "abr"
 
-#~ msgid "Error setting attribute: %s\n"
-#~ msgstr "Erro ao definir o atributo: %s\n"
+msgctxt "abbreviated month name with day"
+msgid "May"
+msgstr "mai"
 
-#~ msgid "Failed to create temp file: %s"
-#~ msgstr "Falha ao criar o ficheiro temporário: %s"
+msgctxt "abbreviated month name with day"
+msgid "Jun"
+msgstr "jun"
 
-#~ msgid "; ignoring override for this key.\n"
-#~ msgstr "; a ignorar a sobreposição para esta chave.\n"
+msgctxt "abbreviated month name with day"
+msgid "Jul"
+msgstr "jul"
 
-#~ msgid " and --strict was specified; exiting.\n"
-#~ msgstr " e foi especificado o modo --strict; a terminar.\n"
+msgctxt "abbreviated month name with day"
+msgid "Aug"
+msgstr "ago"
 
-#~ msgid "Ignoring override for this key.\n"
-#~ msgstr "A ignorar sobreposição para esta chave.\n"
+msgctxt "abbreviated month name with day"
+msgid "Sep"
+msgstr "set"
 
-#~ msgid "doing nothing.\n"
-#~ msgstr "inativo.\n"
+msgctxt "abbreviated month name with day"
+msgid "Oct"
+msgstr "out"
 
-#~ msgid "Error opening file '%s': %s"
-#~ msgstr "Erro ao abrir o ficheiro \"%s\": %s"
+msgctxt "abbreviated month name with day"
+msgid "Nov"
+msgstr "nov"
 
-#~ msgid "Error reading file '%s': %s"
-#~ msgstr "Erro ao ler o ficheiro \"%s\": %s"
+msgctxt "abbreviated month name with day"
+msgid "Dec"
+msgstr "dez"
 
 #~ msgid "No locations gives"
 #~ msgstr "Nenhuma localização dá"
index 8a55edc..da24512 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -10,9 +10,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-03-10 16:11+0000\n"
-"PO-Revision-Date: 2020-03-19 11:52+0100\n"
-"Last-Translator: Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>\n"
+"POT-Creation-Date: 2020-03-31 14:16+0000\n"
+"PO-Revision-Date: 2020-05-03 14:47+0300\n"
+"Last-Translator: Florentina Mușat <florentina.musat.28 [at] gmail [dot] "
+"com>\n"
 "Language-Team: Gnome Romanian Translation Team <gnomero-list@lists."
 "sourceforge.net>\n"
 "Language: ro\n"
@@ -3081,99 +3082,136 @@ msgstr ""
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Nu s-a putut determina utilizarea discului a %s: %s"
 
-#: gio/glocalfileinfo.c:755
+#: gio/glocalfileinfo.c:760
 msgid "Attribute value must be non-NULL"
 msgstr "Valoarea atributului trebuie să fie diferită de NULL"
 
-#: gio/glocalfileinfo.c:762
+#: gio/glocalfileinfo.c:767
 msgid "Invalid attribute type (string expected)"
 msgstr "Tip incorect de atribut (se aștepta un șir)"
 
-#: gio/glocalfileinfo.c:769
+#: gio/glocalfileinfo.c:774
 msgid "Invalid extended attribute name"
 msgstr "Nume incorect de atribut extins"
 
-#: gio/glocalfileinfo.c:809
+#: gio/glocalfileinfo.c:814
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Eroare la stabilirea atributului extins „%s”: %s"
 
-#: gio/glocalfileinfo.c:1637
+#: gio/glocalfileinfo.c:1650
 msgid " (invalid encoding)"
 msgstr " (codare incorectă)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1814 gio/glocalfileoutputstream.c:909
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "Eroare în timpul obținerii de informații pentru fișierul „%s”: %s"
 
-#: gio/glocalfileinfo.c:2071
+#: gio/glocalfileinfo.c:2084
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr ""
 "Eroare în timpul obținerii de informații pentru descriptorul de fișier: %s"
 
-#: gio/glocalfileinfo.c:2116
+#: gio/glocalfileinfo.c:2129
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Tip incorect de atribut (se aștepta o valoare uint32)"
 
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2147
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Tip incorect de atribut (se aștepta o valoare uint64)"
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: gio/glocalfileinfo.c:2166 gio/glocalfileinfo.c:2185
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Tip incorect de atribut (se aștepta un șir de octeți)"
 
-#: gio/glocalfileinfo.c:2219
+#: gio/glocalfileinfo.c:2232
 msgid "Cannot set permissions on symlinks"
 msgstr "Nu se pot defini drepturi pentru legături simbolice"
 
-#: gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2248
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Eroare la definirea drepturilor: %s"
 
-#: gio/glocalfileinfo.c:2286
+#: gio/glocalfileinfo.c:2299
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Eroare la definirea deținătorului: %s"
 
-#: gio/glocalfileinfo.c:2309
+#: gio/glocalfileinfo.c:2322
 msgid "symlink must be non-NULL"
 msgstr "legătura simbolică trebuie să fie diferită de NULL"
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
+#: gio/glocalfileinfo.c:2362
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Eroare la definirea legăturii simbolice: %s"
 
-#: gio/glocalfileinfo.c:2328
+#: gio/glocalfileinfo.c:2341
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 "Eroare la definirea legăturii simbolice: fișierul nu este o legătură "
 "simbolică"
 
-#: gio/glocalfileinfo.c:2454
+#: gio/glocalfileinfo.c:2413
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr "Nanosecundele extra %d pentru datarea UNIX %lld sunt negative"
+
+#: gio/glocalfileinfo.c:2422
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr "Nanosecundele extra %d pentru datarea UNIX %lld au ajuns la 1 secundă"
+
+#: gio/glocalfileinfo.c:2432
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr "Datarea UNIVX %lld nu se potrivește pe 64 de biți"
+
+#: gio/glocalfileinfo.c:2443
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr "Datarea UNIX %lld este în afara intervalului suportate de Windows"
+
+#: gio/glocalfileinfo.c:2507
+#, c-format
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr "Numele de fișier „%s” nu poate fi convertit la UTF-16"
+
+#: gio/glocalfileinfo.c:2526
+#, c-format
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr "Fișierul „%s” nu poate fi deschis: eroare de Windows %lu"
+
+#: gio/glocalfileinfo.c:2539
+#, c-format
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr ""
+"Eroare la stabilirea modificării sau timpului de acces pentru fișierul „%s”: "
+"%lu"
+
+#: gio/glocalfileinfo.c:2640
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Eroare la schimbarea datei de acces ori modificare: %s"
 
-#: gio/glocalfileinfo.c:2477
+#: gio/glocalfileinfo.c:2663
 msgid "SELinux context must be non-NULL"
 msgstr "Contextul SELinux trebuie să fie diferit de NULL"
 
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2678
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Eroare la definirea contextului SELinux: %s"
 
-#: gio/glocalfileinfo.c:2499
+#: gio/glocalfileinfo.c:2685
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux nu este activat pentru acest sistem"
 
-#: gio/glocalfileinfo.c:2591
+#: gio/glocalfileinfo.c:2777
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Definirea atributului %s nu este implementată"
@@ -4196,12 +4234,12 @@ msgstr "Nu s-a așteptat un mesaj de control, dar s-a primit %d"
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "Eroare la dezactivarea SO_PASSCRED: %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:362 gio/gunixinputstream.c:383
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "Eroare la citirea din descriptorul de fișier: %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
+#: gio/gunixinputstream.c:416 gio/gunixoutputstream.c:525
 #: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
@@ -4211,9 +4249,9 @@ msgstr "Eroare la închiderea descriptorului de fișier: %s"
 msgid "Filesystem root"
 msgstr "Rădăcina sistemului de fișiere"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:362 gio/gunixoutputstream.c:382
+#: gio/gunixoutputstream.c:469 gio/gunixoutputstream.c:489
+#: gio/gunixoutputstream.c:635
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "Eroare la scrierea în descriptorul de fișier: %s"
index 7b87a60..6bbf298 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -2529,7 +2529,7 @@ msgstr "<choices> nie je povolený pre kľúče typu „%s“"
 #: gio/glib-compile-schemas.c:531
 #, c-format
 msgid "<choice value='%s'/> already given"
-msgstr "<choice value='%s'> je už zadaný"
+msgstr "<choice value='%s'/> je už zadaný"
 
 #: gio/glib-compile-schemas.c:546
 #, c-format
index e92d9a4..353bfbc 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-06-09 04:01+0000\n"
-"PO-Revision-Date: 2020-06-21 22:23+0200\n"
+"POT-Creation-Date: 2020-03-30 19:36+0000\n"
+"PO-Revision-Date: 2020-06-03 22:35+0200\n"
 "Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
 "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
 "Language: sl_SI\n"
@@ -283,7 +283,7 @@ msgstr "Pretok je že zaprt"
 msgid "Truncate not supported on base stream"
 msgstr "Razčlenitev na osnovnem pretoku ni dovoljena"
 
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1862 gio/gdbusprivate.c:1411
+#: gio/gcancellable.c:319 gio/gdbusconnection.c:1871 gio/gdbusprivate.c:1411
 #: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
 #, c-format
 msgid "Operation was cancelled"
@@ -303,22 +303,22 @@ msgstr "Ni dovolj prostora za cilju"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:447 glib/gconvert.c:877
-#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2461
-#: glib/gutf8.c:875 glib/gutf8.c:1328
+#: glib/giochannel.c:1561 glib/giochannel.c:1603 glib/giochannel.c:2450
+#: glib/gutf8.c:870 glib/gutf8.c:1323
 msgid "Invalid byte sequence in conversion input"
 msgstr "Neveljavno zaporedje bajtov na vhodu pretvorbe"
 
 #: gio/gcharsetconverter.c:347 glib/gconvert.c:455 glib/gconvert.c:791
-#: glib/giochannel.c:1571 glib/giochannel.c:2473
+#: glib/giochannel.c:1568 glib/giochannel.c:2462
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Napaka med pretvorbo: %s"
 
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1138
+#: gio/gcharsetconverter.c:445 gio/gsocket.c:1094
 msgid "Cancellable initialization not supported"
 msgstr "Dejanje prekinitve zagona ni podprto"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:320 glib/giochannel.c:1392
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:320 glib/giochannel.c:1389
 #, c-format
 msgid "Conversion from character set “%s” to “%s” is not supported"
 msgstr "Pretvorba iz nabora znakov »%s« v »%s« ni podprta"
@@ -342,11 +342,7 @@ msgstr "Neznana vrsta"
 msgid "%s filetype"
 msgstr "%s vrsta datoteke"
 
-#: gio/gcredentials.c:289
-msgid "GCredentials contains invalid data"
-msgstr "GCredentials vsebuje neveljavne podatke"
-
-#: gio/gcredentials.c:345 gio/gcredentials.c:609
+#: gio/gcredentials.c:345 gio/gcredentials.c:610
 msgid "GCredentials is not implemented on this OS"
 msgstr "Na tem OS predmet GCredentials ni podprt"
 
@@ -358,7 +354,7 @@ msgstr "Okolje ne podpira možnosti GCredentials"
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr "Predmet GCredentials na tem sistemu ne vsebuje ustreznega ID opravila"
 
-#: gio/gcredentials.c:603
+#: gio/gcredentials.c:604
 msgid "Credentials spoofing is not possible on this OS"
 msgstr "Na tem OS vohljanje po poverilih ni podprto"
 
@@ -366,7 +362,7 @@ msgstr "Na tem OS vohljanje po poverilih ni podprto"
 msgid "Unexpected early end-of-stream"
 msgstr "Nepričakovan prezgodnji konec pretoka"
 
-#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:232 gio/gdbusaddress.c:321
+#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:232 gio/gdbusaddress.c:313
 #, c-format
 msgid "Unsupported key “%s” in address entry “%s”"
 msgstr "Nepodprt ključ  »%s« v vnosu naslova  »%s«"
@@ -384,35 +380,39 @@ msgid ""
 msgstr ""
 "Naslov »%s« ni večkavem (zahtevana je pot, začasna mapa ali abstraktni ključ)"
 
-#: gio/gdbusaddress.c:247 gio/gdbusaddress.c:258 gio/gdbusaddress.c:273
-#: gio/gdbusaddress.c:336 gio/gdbusaddress.c:347
+#: gio/gdbusaddress.c:247 gio/gdbusaddress.c:328
+#, c-format
+msgid "Error in address “%s” — the port attribute is malformed"
+msgstr "Napaka v naslovu »%s« – atribut vrat je nepravilno oblikovan"
+
+#: gio/gdbusaddress.c:258 gio/gdbusaddress.c:339
 #, c-format
-msgid "Error in address “%s” — the “%s” attribute is malformed"
-msgstr "Napaka v naslovu »%s« – atribut »%s« je nepravilno oblikovan"
+msgid "Error in address “%s” — the family attribute is malformed"
+msgstr "Napaka v naslovu »%s« – atribut družine je nepravilno oblikovan"
 
-#: gio/gdbusaddress.c:417 gio/gdbusaddress.c:681
+#: gio/gdbusaddress.c:409 gio/gdbusaddress.c:673
 #, c-format
 msgid "Unknown or unsupported transport “%s” for address “%s”"
 msgstr "Neznan ali nepodprt prenos »%s« za naslov »%s«"
 
-#: gio/gdbusaddress.c:461
+#: gio/gdbusaddress.c:453
 #, c-format
 msgid "Address element “%s” does not contain a colon (:)"
 msgstr "Predmet naslova »%s« ne vsebuje dvopičja ( : )"
 
-#: gio/gdbusaddress.c:470
+#: gio/gdbusaddress.c:462
 #, c-format
 msgid "Transport name in address element “%s” must not be empty"
-msgstr "Transportno ime v naslovu predmeta »%s« ne sme biti prazno polje"
+msgstr ""
 
-#: gio/gdbusaddress.c:491
+#: gio/gdbusaddress.c:483
 #, c-format
 msgid ""
 "Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
 "sign"
 msgstr "Par ključ/vrednost %d, »%s« v predmetu naslova »%s« ne vsebuje enačaja"
 
-#: gio/gdbusaddress.c:502
+#: gio/gdbusaddress.c:494
 #, c-format
 msgid ""
 "Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
@@ -420,7 +420,7 @@ msgstr ""
 "Par ključ/vrednost %d, »%s« v predmetu naslova »%s« ne sme vsebovati "
 "praznega ključa"
 
-#: gio/gdbusaddress.c:516
+#: gio/gdbusaddress.c:508
 #, c-format
 msgid ""
 "Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
@@ -429,7 +429,7 @@ msgstr ""
 "Napaka neubežnega ključa ali vrednosti v paru ključ/vrednost %d, »%s«, v "
 "predmetu naslova »%s«"
 
-#: gio/gdbusaddress.c:588
+#: gio/gdbusaddress.c:580
 #, c-format
 msgid ""
 "Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -438,82 +438,82 @@ msgstr ""
 "Napaka v naslovu »%s« – prenos unix zahteva enega izmed ključev »path« ali "
 "»abstract«"
 
-#: gio/gdbusaddress.c:624
+#: gio/gdbusaddress.c:616
 #, c-format
 msgid "Error in address “%s” — the host attribute is missing or malformed"
 msgstr ""
 "Napaka v naslovu »%s« – atribut gostitelja manjka ali pa je nepravilno "
 "oblikovan"
 
-#: gio/gdbusaddress.c:638
+#: gio/gdbusaddress.c:630
 #, c-format
 msgid "Error in address “%s” — the port attribute is missing or malformed"
 msgstr ""
 "Napaka v naslovu »%s« – manjka atribut vrat ali pa ali je nepravilno "
 "oblikovan"
 
-#: gio/gdbusaddress.c:652
+#: gio/gdbusaddress.c:644
 #, c-format
 msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
 msgstr ""
 "Napaka v naslovu »%s« – atribut enkratne datoteke manjka ali pa je "
 "nepravilno oblikovan"
 
-#: gio/gdbusaddress.c:673
+#: gio/gdbusaddress.c:665
 msgid "Error auto-launching: "
 msgstr "Napaka samodejnega zaganjanja:"
 
-#: gio/gdbusaddress.c:726
+#: gio/gdbusaddress.c:718
 #, c-format
 msgid "Error opening nonce file “%s”: %s"
 msgstr "Napaka med odpiranjem enkratne datoteke »%s«: %s"
 
-#: gio/gdbusaddress.c:745
+#: gio/gdbusaddress.c:737
 #, c-format
 msgid "Error reading from nonce file “%s”: %s"
 msgstr "Napaka med branjem iz enkratne datoteke »%s«: %s"
 
-#: gio/gdbusaddress.c:754
+#: gio/gdbusaddress.c:746
 #, c-format
 msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
 msgstr ""
 "Napaka med branjem iz enkratne datoteke »%s«; pričakovanih 16 bajtov, "
 "pridobljenih pa %d"
 
-#: gio/gdbusaddress.c:772
+#: gio/gdbusaddress.c:764
 #, c-format
 msgid "Error writing contents of nonce file “%s” to stream:"
 msgstr "Napaka med pisanjem vsebine enkratne datoteke »%s« v pretok:"
 
-#: gio/gdbusaddress.c:981
+#: gio/gdbusaddress.c:973
 msgid "The given address is empty"
 msgstr "Podan naslov je prazen."
 
-#: gio/gdbusaddress.c:1094
+#: gio/gdbusaddress.c:1086
 #, c-format
 msgid "Cannot spawn a message bus when setuid"
 msgstr "Ni mogoče oživiti vodila sporočila med izvajanjem ukaza setuid"
 
-#: gio/gdbusaddress.c:1101
+#: gio/gdbusaddress.c:1093
 msgid "Cannot spawn a message bus without a machine-id: "
 msgstr "Ni mogoče oživiti vodila sporočila brez predmeta machine-id:"
 
-#: gio/gdbusaddress.c:1108
+#: gio/gdbusaddress.c:1100
 #, c-format
 msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
 msgstr "Ni mogoče samodejno zagnati vodila D-Bus brez nastavitve X11 $DISPLAY"
 
-#: gio/gdbusaddress.c:1150
+#: gio/gdbusaddress.c:1142
 #, c-format
 msgid "Error spawning command line “%s”: "
 msgstr "Napaka med oživljanjem ukazne vrstice »%s«: "
 
-#: gio/gdbusaddress.c:1219
+#: gio/gdbusaddress.c:1211
 #, c-format
 msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr "Ni mogoče določiti naslova vodila seje (ni podprto v tem OS)"
 
-#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7190
+#: gio/gdbusaddress.c:1349 gio/gdbusconnection.c:7178
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -522,7 +522,7 @@ msgstr ""
 "Ni mogoče določiti naslova vodila iz okoljske spremenljivke "
 "DBUS_STARTER_BUS_TYPE – neznana vrednost »%s«"
 
-#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7199
+#: gio/gdbusaddress.c:1358 gio/gdbusconnection.c:7187
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -530,7 +530,7 @@ msgstr ""
 "Ni mogoče določiti naslova vodila, kajti okoljska spremenljivka "
 "DBUS_STARTER_BUS_TYPE ni nastavljena"
 
-#: gio/gdbusaddress.c:1376
+#: gio/gdbusaddress.c:1368
 #, c-format
 msgid "Unknown bus type %d"
 msgstr "Neznana vrsta vodila %d"
@@ -555,12 +555,12 @@ msgstr ""
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr "Prekinjeno s strani GDBusAuthObserver::authorize-authenticated-peer"
 
-#: gio/gdbusauthmechanismsha1.c:265
+#: gio/gdbusauthmechanismsha1.c:264
 #, c-format
 msgid "Error when getting information for directory “%s”: %s"
 msgstr "Napaka med pridobivanjem podrobnosti mape »%s«: %s"
 
-#: gio/gdbusauthmechanismsha1.c:280
+#: gio/gdbusauthmechanismsha1.c:276
 #, c-format
 msgid ""
 "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -568,22 +568,22 @@ msgstr ""
 "Dovoljenja na mapi »%s« so napačno oblikovana. Pričakovano je dovoljenje "
 "0700, pridobljeno pa 0%o"
 
-#: gio/gdbusauthmechanismsha1.c:310
+#: gio/gdbusauthmechanismsha1.c:301
 #, c-format
 msgid "Error creating directory “%s”: %s"
 msgstr "Napaka med ustvarjanjem mape »%s«: %s"
 
-#: gio/gdbusauthmechanismsha1.c:355
+#: gio/gdbusauthmechanismsha1.c:348
 #, c-format
 msgid "Error opening keyring “%s” for reading: "
 msgstr "Napaka med odpiranjem zbirke ključev »%s« za branje:"
 
-#: gio/gdbusauthmechanismsha1.c:378 gio/gdbusauthmechanismsha1.c:700
+#: gio/gdbusauthmechanismsha1.c:371 gio/gdbusauthmechanismsha1.c:689
 #, c-format
 msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr "Vrstica %d zbirke ključev »%s« z vsebino »%s« je neustrezno oblikovana"
 
-#: gio/gdbusauthmechanismsha1.c:392 gio/gdbusauthmechanismsha1.c:714
+#: gio/gdbusauthmechanismsha1.c:385 gio/gdbusauthmechanismsha1.c:703
 #, c-format
 msgid ""
 "First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -591,7 +591,7 @@ msgstr ""
 "Prvi žeton vrstice %d zbirke ključev pri »%s« z vsebino »%s« je neustrezno "
 "oblikovan"
 
-#: gio/gdbusauthmechanismsha1.c:406 gio/gdbusauthmechanismsha1.c:728
+#: gio/gdbusauthmechanismsha1.c:399 gio/gdbusauthmechanismsha1.c:717
 #, c-format
 msgid ""
 "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -599,132 +599,132 @@ msgstr ""
 "Drugi žeton vrstice %d zbirke ključev pri »%s« z vsebino »%s« je neustrezno "
 "oblikovana"
 
-#: gio/gdbusauthmechanismsha1.c:430
+#: gio/gdbusauthmechanismsha1.c:423
 #, c-format
 msgid "Didn’t find cookie with id %d in the keyring at “%s”"
 msgstr "Piškotka z ID %d v zbirki ključev »%s« ni mogoče najti"
 
-#: gio/gdbusauthmechanismsha1.c:476
-#, c-format
-msgid "Error creating lock file “%s”: %s"
-msgstr "Napaka med ustvarjanjem datoteke zaklepa »%s«: %s"
-
-#: gio/gdbusauthmechanismsha1.c:540
+#: gio/gdbusauthmechanismsha1.c:505
 #, c-format
 msgid "Error deleting stale lock file “%s”: %s"
 msgstr "Napaka brisanja stare datoteke zaklepa »%s«: %s"
 
-#: gio/gdbusauthmechanismsha1.c:579
+#: gio/gdbusauthmechanismsha1.c:537
+#, c-format
+msgid "Error creating lock file “%s”: %s"
+msgstr "Napaka med ustvarjanjem datoteke zaklepa »%s«: %s"
+
+#: gio/gdbusauthmechanismsha1.c:568
 #, c-format
 msgid "Error closing (unlinked) lock file “%s”: %s"
 msgstr "Napaka med zapiranjem (nepovezane) datoteke zaklepa »%s«: %s"
 
-#: gio/gdbusauthmechanismsha1.c:590
+#: gio/gdbusauthmechanismsha1.c:579
 #, c-format
 msgid "Error unlinking lock file “%s”: %s"
 msgstr "Napaka med razvezovanjem datoteke zaklepa »%s«: %s"
 
-#: gio/gdbusauthmechanismsha1.c:667
+#: gio/gdbusauthmechanismsha1.c:656
 #, c-format
 msgid "Error opening keyring “%s” for writing: "
 msgstr "Napaka med odpiranjem zbirke ključev »%s« za branje: "
 
-#: gio/gdbusauthmechanismsha1.c:863
+#: gio/gdbusauthmechanismsha1.c:852
 #, c-format
 msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
 msgstr "(V nadaljevanju je spodletelo tudi sproščanje zaklepa »%s«: %s)"
 
-#: gio/gdbusconnection.c:595 gio/gdbusconnection.c:2391
+#: gio/gdbusconnection.c:604 gio/gdbusconnection.c:2400
 msgid "The connection is closed"
 msgstr "Povezava je zaprta"
 
-#: gio/gdbusconnection.c:1892
+#: gio/gdbusconnection.c:1901
 msgid "Timeout was reached"
 msgstr "Čas zakasnitve je potekel"
 
-#: gio/gdbusconnection.c:2513
+#: gio/gdbusconnection.c:2522
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 "Med izgrajevanjem povezave s strani odjemalca so bile odkrite nepodprte "
 "zastavice"
 
-#: gio/gdbusconnection.c:4161 gio/gdbusconnection.c:4508
+#: gio/gdbusconnection.c:4151 gio/gdbusconnection.c:4498
 #, c-format
 msgid ""
 "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
 msgstr ""
 "Vmesnik »org.freedesktop.DBus.Properties« na predmetu na poti %s ne obstaja"
 
-#: gio/gdbusconnection.c:4303
+#: gio/gdbusconnection.c:4293
 #, c-format
 msgid "No such property “%s”"
 msgstr "Lastnost »%s« ne obstaja"
 
-#: gio/gdbusconnection.c:4315
+#: gio/gdbusconnection.c:4305
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "Lastnost »%s« ni berljiva"
 
-#: gio/gdbusconnection.c:4326
+#: gio/gdbusconnection.c:4316
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "Lastnost »%s« ni zapisljiva"
 
-#: gio/gdbusconnection.c:4346
+#: gio/gdbusconnection.c:4336
 #, c-format
 msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
 msgstr ""
 "Napaka med nastavljanjem lastnosti »%s«: pričakovana je vrsta »%s«, javljena "
 "pa »%s«."
 
-#: gio/gdbusconnection.c:4451 gio/gdbusconnection.c:4659
-#: gio/gdbusconnection.c:6630
+#: gio/gdbusconnection.c:4441 gio/gdbusconnection.c:4649
+#: gio/gdbusconnection.c:6618
 #, c-format
 msgid "No such interface “%s”"
 msgstr "Vmesnik »%s« ne obstaja"
 
-#: gio/gdbusconnection.c:4877 gio/gdbusconnection.c:7139
+#: gio/gdbusconnection.c:4867 gio/gdbusconnection.c:7127
 #, c-format
 msgid "No such interface “%s” on object at path %s"
 msgstr "Vmesnik »%s« na predmetu na poti %s ne obstaja"
 
-#: gio/gdbusconnection.c:4975
+#: gio/gdbusconnection.c:4965
 #, c-format
 msgid "No such method “%s”"
 msgstr "Način »%s« ne obstaja"
 
-#: gio/gdbusconnection.c:5006
+#: gio/gdbusconnection.c:4996
 #, c-format
 msgid "Type of message, “%s”, does not match expected type “%s”"
 msgstr "Vrsta sporočila »%s« se ne sklada s pričakovano vrsto »%s«"
 
-#: gio/gdbusconnection.c:5204
+#: gio/gdbusconnection.c:5194
 #, c-format
 msgid "An object is already exported for the interface %s at %s"
 msgstr "Za vmesnik %s pri %s je predmet že izvožen"
 
-#: gio/gdbusconnection.c:5430
+#: gio/gdbusconnection.c:5420
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "Ni mogoče pridobiti lastnosti %s.%s"
 
-#: gio/gdbusconnection.c:5486
+#: gio/gdbusconnection.c:5476
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "Ni mogoče določiti lastnosti %s.%s"
 
-#: gio/gdbusconnection.c:5664
+#: gio/gdbusconnection.c:5654
 #, c-format
 msgid "Method “%s” returned type “%s”, but expected “%s”"
 msgstr "Način »%s« je vrnil vrsto »%s«, pričakovana pa je vrsta »%s«"
 
-#: gio/gdbusconnection.c:6741
+#: gio/gdbusconnection.c:6729
 #, c-format
 msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
 msgstr "Način »%s« na vmesniku »%s« s podpisom »%s« ne obstaja"
 
-#: gio/gdbusconnection.c:6862
+#: gio/gdbusconnection.c:6850
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "Podrejeno drevo je že izvoženo za %s"
@@ -957,17 +957,17 @@ msgstr "Ni mogoče pridobiti strojnega profila: %s"
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "Ni mogoče naložiti /var/lib/dbus/machine-id oziroma /etc/machine-id: "
 
-#: gio/gdbusproxy.c:1562
+#: gio/gdbusproxy.c:1625
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Napaka med klicanjem predmeta StartServiceByName za %s: "
 
-#: gio/gdbusproxy.c:1585
+#: gio/gdbusproxy.c:1648
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Nepričakovan odgovor %d iz načina StartServiceByName(»%s«)"
 
-#: gio/gdbusproxy.c:2685 gio/gdbusproxy.c:2820
+#: gio/gdbusproxy.c:2748 gio/gdbusproxy.c:2883
 #, c-format
 msgid ""
 "Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1023,13 +1023,13 @@ msgstr ""
 "Uporabite »%s COMMAND --help« za pomoč o posameznem ukazu.\n"
 
 #: gio/gdbus-tool.c:197 gio/gdbus-tool.c:264 gio/gdbus-tool.c:336
-#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:850 gio/gdbus-tool.c:1187
-#: gio/gdbus-tool.c:1672
+#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:846 gio/gdbus-tool.c:1183
+#: gio/gdbus-tool.c:1668
 #, c-format
 msgid "Error: %s\n"
 msgstr "Napaka: %s\n"
 
-#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1688
+#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1684
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr "Napaka med samopreverjanjem XML: %s\n"
@@ -1059,23 +1059,23 @@ msgstr "Možnosti končnih točk povezave:"
 msgid "Options specifying the connection endpoint"
 msgstr "Možnosti, ki določajo končne točke povezave"
 
-#: gio/gdbus-tool.c:430
+#: gio/gdbus-tool.c:429
 #, c-format
 msgid "No connection endpoint specified"
 msgstr "Ni določene končne točke povezave"
 
-#: gio/gdbus-tool.c:440
+#: gio/gdbus-tool.c:439
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr "Določenih je več povezav končne točke"
 
-#: gio/gdbus-tool.c:513
+#: gio/gdbus-tool.c:509
 #, c-format
 msgid ""
 "Warning: According to introspection data, interface “%s” does not exist\n"
 msgstr "Opozorilo: na osnovi podatkov samopregleda, vmesnik »%s« ne obstaja\n"
 
-#: gio/gdbus-tool.c:522
+#: gio/gdbus-tool.c:518
 #, c-format
 msgid ""
 "Warning: According to introspection data, method “%s” does not exist on "
@@ -1084,161 +1084,161 @@ msgstr ""
 "Opozorilo: na osnovi podatkov samopregleda, način »%s« ne obstaja na "
 "vmesniku »%s«\n"
 
-#: gio/gdbus-tool.c:584
+#: gio/gdbus-tool.c:580
 msgid "Optional destination for signal (unique name)"
 msgstr "Izbirni cilj za signal (enoznačno ime)"
 
-#: gio/gdbus-tool.c:585
+#: gio/gdbus-tool.c:581
 msgid "Object path to emit signal on"
 msgstr "Pot predmeta za oddajanje signala"
 
-#: gio/gdbus-tool.c:586
+#: gio/gdbus-tool.c:582
 msgid "Signal and interface name"
 msgstr "Ime signala in vmesnika"
 
-#: gio/gdbus-tool.c:619
+#: gio/gdbus-tool.c:615
 msgid "Emit a signal."
 msgstr "Oddaj signal."
 
-#: gio/gdbus-tool.c:674 gio/gdbus-tool.c:981 gio/gdbus-tool.c:1775
-#: gio/gdbus-tool.c:2007 gio/gdbus-tool.c:2227
+#: gio/gdbus-tool.c:670 gio/gdbus-tool.c:977 gio/gdbus-tool.c:1771
+#: gio/gdbus-tool.c:2003 gio/gdbus-tool.c:2223
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "Napaka med povezovanjem: %s\n"
 
-#: gio/gdbus-tool.c:694
+#: gio/gdbus-tool.c:690
 #, c-format
 msgid "Error: %s is not a valid unique bus name.\n"
 msgstr "Napaka: %s ni veljavno enoznačno ime vodila.\n"
 
-#: gio/gdbus-tool.c:713 gio/gdbus-tool.c:1024 gio/gdbus-tool.c:1818
+#: gio/gdbus-tool.c:709 gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1814
 msgid "Error: Object path is not specified\n"
 msgstr "Napaka: pot predmeta ni določena\n"
 
-#: gio/gdbus-tool.c:736 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1838
-#: gio/gdbus-tool.c:2078
+#: gio/gdbus-tool.c:732 gio/gdbus-tool.c:1040 gio/gdbus-tool.c:1834
+#: gio/gdbus-tool.c:2074
 #, c-format
 msgid "Error: %s is not a valid object path\n"
 msgstr "Napaka: %s ni veljavna pot predmeta\n"
 
-#: gio/gdbus-tool.c:756
+#: gio/gdbus-tool.c:752
 msgid "Error: Signal name is not specified\n"
 msgstr "Napaka: ime signala ni določeno\n"
 
-#: gio/gdbus-tool.c:770
+#: gio/gdbus-tool.c:766
 #, c-format
 msgid "Error: Signal name “%s” is invalid\n"
 msgstr "Napaka: ime signala »%s« ni veljavno\n"
 
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:778
 #, c-format
 msgid "Error: %s is not a valid interface name\n"
 msgstr "Napaka: %s ni veljavno ime vmesnika.\n"
 
-#: gio/gdbus-tool.c:788
+#: gio/gdbus-tool.c:784
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr "Napaka: %s ni veljavno ime predmeta.\n"
 
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:825 gio/gdbus-tool.c:1156
+#: gio/gdbus-tool.c:821 gio/gdbus-tool.c:1152
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr "Napaka med razčlenjevanjem parametra %d: %s\n"
 
-#: gio/gdbus-tool.c:857
+#: gio/gdbus-tool.c:853
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr "Napaka med počiščenjem povezave: %s\n"
 
-#: gio/gdbus-tool.c:884
+#: gio/gdbus-tool.c:880
 msgid "Destination name to invoke method on"
 msgstr "Ime cilja za sklicanje načina"
 
-#: gio/gdbus-tool.c:885
+#: gio/gdbus-tool.c:881
 msgid "Object path to invoke method on"
 msgstr "Pot do predmeta za sklicanje načina"
 
-#: gio/gdbus-tool.c:886
+#: gio/gdbus-tool.c:882
 msgid "Method and interface name"
 msgstr "Ime načina in vmesnika"
 
-#: gio/gdbus-tool.c:887
+#: gio/gdbus-tool.c:883
 msgid "Timeout in seconds"
 msgstr "Časovni zamik v sekundah"
 
-#: gio/gdbus-tool.c:926
+#: gio/gdbus-tool.c:922
 msgid "Invoke a method on a remote object."
 msgstr "Skliči način na oddaljenem predmetu."
 
-#: gio/gdbus-tool.c:998 gio/gdbus-tool.c:1792 gio/gdbus-tool.c:2032
+#: gio/gdbus-tool.c:994 gio/gdbus-tool.c:1788 gio/gdbus-tool.c:2028
 msgid "Error: Destination is not specified\n"
 msgstr "Napaka: cilj ni določen\n"
 
-#: gio/gdbus-tool.c:1009 gio/gdbus-tool.c:1809 gio/gdbus-tool.c:2043
+#: gio/gdbus-tool.c:1005 gio/gdbus-tool.c:1805 gio/gdbus-tool.c:2039
 #, c-format
 msgid "Error: %s is not a valid bus name\n"
 msgstr "Napaka: %s ni veljavno ime vodila\n"
 
-#: gio/gdbus-tool.c:1059
+#: gio/gdbus-tool.c:1055
 msgid "Error: Method name is not specified\n"
 msgstr "Napaka: ime načina ni določeno\n"
 
-#: gio/gdbus-tool.c:1070
+#: gio/gdbus-tool.c:1066
 #, c-format
 msgid "Error: Method name “%s” is invalid\n"
 msgstr "Napaka: ime načina »%s« ni veljavno\n"
 
-#: gio/gdbus-tool.c:1148
+#: gio/gdbus-tool.c:1144
 #, c-format
 msgid "Error parsing parameter %d of type “%s”: %s\n"
 msgstr "Napaka med razčlenjevanjem parametra %d vrste »%s«: %s\n"
 
-#: gio/gdbus-tool.c:1634
+#: gio/gdbus-tool.c:1630
 msgid "Destination name to introspect"
 msgstr "Samopreverjanje ciljnega imena"
 
-#: gio/gdbus-tool.c:1635
+#: gio/gdbus-tool.c:1631
 msgid "Object path to introspect"
 msgstr "Samopreverjanje poti predmeta"
 
-#: gio/gdbus-tool.c:1636
+#: gio/gdbus-tool.c:1632
 msgid "Print XML"
 msgstr "Natisni XML"
 
-#: gio/gdbus-tool.c:1637
+#: gio/gdbus-tool.c:1633
 msgid "Introspect children"
 msgstr "Samopreverjanje podrejenih predmetov"
 
-#: gio/gdbus-tool.c:1638
+#: gio/gdbus-tool.c:1634
 msgid "Only print properties"
 msgstr "Natisni le lastnosti"
 
-#: gio/gdbus-tool.c:1727
+#: gio/gdbus-tool.c:1723
 msgid "Introspect a remote object."
 msgstr "Samopreverjanje oddaljenega predmeta."
 
-#: gio/gdbus-tool.c:1933
+#: gio/gdbus-tool.c:1929
 msgid "Destination name to monitor"
 msgstr "Nadzor ciljnega imena"
 
-#: gio/gdbus-tool.c:1934
+#: gio/gdbus-tool.c:1930
 msgid "Object path to monitor"
 msgstr "Nadzor poti predmeta"
 
-#: gio/gdbus-tool.c:1959
+#: gio/gdbus-tool.c:1955
 msgid "Monitor a remote object."
 msgstr "Nadzoruj oddaljeni predmet."
 
-#: gio/gdbus-tool.c:2017
+#: gio/gdbus-tool.c:2013
 msgid "Error: can’t monitor a non-message-bus connection\n"
 msgstr "Napaka: ni mogoče nadzirati povezav mimo sporočilnega vtiča\n"
 
-#: gio/gdbus-tool.c:2141
+#: gio/gdbus-tool.c:2137
 msgid "Service to activate before waiting for the other one (well-known name)"
 msgstr "Storitev, ki naj se začne, preden začne program čakati na drugo (ime)"
 
-#: gio/gdbus-tool.c:2144
+#: gio/gdbus-tool.c:2140
 msgid ""
 "Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
 "(default)"
@@ -1246,65 +1246,65 @@ msgstr ""
 "Časovni zamik, po katerem je program končan z napako (v sekundah); vrednost "
 "0 onemogoči zamik (privzeto)"
 
-#: gio/gdbus-tool.c:2192
+#: gio/gdbus-tool.c:2188
 msgid "[OPTION…] BUS-NAME"
 msgstr "[MOŽNOST …] IME-VODILA"
 
-#: gio/gdbus-tool.c:2193
+#: gio/gdbus-tool.c:2189
 msgid "Wait for a bus name to appear."
 msgstr "Počakaj na izpis imena vodila."
 
-#: gio/gdbus-tool.c:2269
+#: gio/gdbus-tool.c:2265
 msgid "Error: A service to activate for must be specified.\n"
 msgstr "Napaka: storitev za omogočanje mora biti določena.\n"
 
-#: gio/gdbus-tool.c:2274
+#: gio/gdbus-tool.c:2270
 msgid "Error: A service to wait for must be specified.\n"
 msgstr ""
 "Napaka: storitev za čakanje mora biti določena.\n"
 "\n"
 
-#: gio/gdbus-tool.c:2279
+#: gio/gdbus-tool.c:2275
 msgid "Error: Too many arguments.\n"
 msgstr "Napaka: navedenih je preveč argumentov.\n"
 
-#: gio/gdbus-tool.c:2287 gio/gdbus-tool.c:2294
+#: gio/gdbus-tool.c:2283 gio/gdbus-tool.c:2290
 #, c-format
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "Napaka: %s ni veljavno enoznačno ime vodila.\n"
 
-#: gio/gdesktopappinfo.c:2071 gio/gdesktopappinfo.c:4877
+#: gio/gdesktopappinfo.c:2072 gio/gdesktopappinfo.c:4870
 msgid "Unnamed"
 msgstr "Neimenovano"
 
-#: gio/gdesktopappinfo.c:2481
+#: gio/gdesktopappinfo.c:2482
 msgid "Desktop file didn’t specify Exec field"
 msgstr "Namizna datoteka ne vsebuje določenega polja Exec"
 
-#: gio/gdesktopappinfo.c:2761
+#: gio/gdesktopappinfo.c:2754
 msgid "Unable to find terminal required for application"
 msgstr "Ni mogoče najti terminala, ki ga zahteva program"
 
-#: gio/gdesktopappinfo.c:3413
+#: gio/gdesktopappinfo.c:3406
 #, c-format
 msgid "Can’t create user application configuration folder %s: %s"
 msgstr "Ni mogoče ustvariti nastavitvene mape uporabnikovega programa %s: %s"
 
-#: gio/gdesktopappinfo.c:3417
+#: gio/gdesktopappinfo.c:3410
 #, c-format
 msgid "Can’t create user MIME configuration folder %s: %s"
 msgstr "Ni mogoče ustvariti uporabnikove nastavitvene mape MIME %s: %s"
 
-#: gio/gdesktopappinfo.c:3657 gio/gdesktopappinfo.c:3681
+#: gio/gdesktopappinfo.c:3650 gio/gdesktopappinfo.c:3674
 msgid "Application information lacks an identifier"
 msgstr "Podatki programa so brez določila"
 
-#: gio/gdesktopappinfo.c:3915
+#: gio/gdesktopappinfo.c:3908
 #, c-format
 msgid "Can’t create user desktop file %s"
 msgstr "Ni mogoče ustvariti uporabnikove datoteke namizja %s"
 
-#: gio/gdesktopappinfo.c:4049
+#: gio/gdesktopappinfo.c:4042
 #, c-format
 msgid "Custom definition for %s"
 msgstr "Določilo po meri za %s"
@@ -1332,12 +1332,12 @@ msgstr "pogon ne vključuje možnosti zagona"
 msgid "drive doesn’t implement stop"
 msgstr "pogon ne vključuje možnosti zaustavitve"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
+#: gio/gdummytlsbackend.c:509
 msgid "TLS support is not available"
 msgstr "Podpora TLS ni na voljo"
 
-#: gio/gdummytlsbackend.c:423
+#: gio/gdummytlsbackend.c:419
 msgid "DTLS support is not available"
 msgstr "Podpora za DTLS ni na voljo"
 
@@ -1365,12 +1365,12 @@ msgstr "Nepravilno oblikovana znakov (%d) v kodiranju GEmblemedIcon"
 msgid "Expected a GEmblem for GEmblemedIcon"
 msgstr "Pričakovan GEmblem za GEmblemedIcon"
 
-#: gio/gfile.c:1044 gio/gfile.c:1282 gio/gfile.c:1420 gio/gfile.c:1658
-#: gio/gfile.c:1713 gio/gfile.c:1771 gio/gfile.c:1855 gio/gfile.c:1912
-#: gio/gfile.c:1976 gio/gfile.c:2031 gio/gfile.c:3722 gio/gfile.c:3777
-#: gio/gfile.c:4055 gio/gfile.c:4523 gio/gfile.c:4934 gio/gfile.c:5019
-#: gio/gfile.c:5109 gio/gfile.c:5206 gio/gfile.c:5293 gio/gfile.c:5394
-#: gio/gfile.c:8104 gio/gfile.c:8194 gio/gfile.c:8278
+#: gio/gfile.c:1076 gio/gfile.c:1314 gio/gfile.c:1452 gio/gfile.c:1690
+#: gio/gfile.c:1745 gio/gfile.c:1803 gio/gfile.c:1887 gio/gfile.c:1944
+#: gio/gfile.c:2008 gio/gfile.c:2063 gio/gfile.c:3758 gio/gfile.c:3813
+#: gio/gfile.c:4049 gio/gfile.c:4091 gio/gfile.c:4559 gio/gfile.c:4970
+#: gio/gfile.c:5055 gio/gfile.c:5145 gio/gfile.c:5242 gio/gfile.c:5329
+#: gio/gfile.c:5430 gio/gfile.c:8134 gio/gfile.c:8224 gio/gfile.c:8308
 #: gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "Opravilo ni podprto"
@@ -1379,74 +1379,70 @@ msgstr "Opravilo ni podprto"
 #. * trying to find the enclosing (user visible)
 #. * mount of a file, but none exists.
 #.
-#: gio/gfile.c:1543
+#: gio/gfile.c:1575
 msgid "Containing mount does not exist"
 msgstr "Obstoječa enota ne obstaja"
 
-#: gio/gfile.c:2590 gio/glocalfile.c:2428
+#: gio/gfile.c:2622 gio/glocalfile.c:2446
 msgid "Can’t copy over directory"
 msgstr "Ni mogoče kopirati prek mape"
 
-#: gio/gfile.c:2650
+#: gio/gfile.c:2682
 msgid "Can’t copy directory over directory"
 msgstr "Ni mogoče kopirati mape prek mape"
 
-#: gio/gfile.c:2658
+#: gio/gfile.c:2690
 msgid "Target file exists"
 msgstr "Ciljna datoteka obstaja"
 
-#: gio/gfile.c:2677
+#: gio/gfile.c:2709
 msgid "Can’t recursively copy directory"
 msgstr "Ni mogoče kopirati drevesne zgradbe map"
 
-#: gio/gfile.c:2952
+#: gio/gfile.c:2984
 msgid "Splice not supported"
 msgstr "Splice ni podprt"
 
-#: gio/gfile.c:2956 gio/gfile.c:3001
+#: gio/gfile.c:2988 gio/gfile.c:3033
 #, c-format
 msgid "Error splicing file: %s"
 msgstr "Napaka med prepletanjem datoteke: %s"
 
-#: gio/gfile.c:3117
+#: gio/gfile.c:3149
 msgid "Copy (reflink/clone) between mounts is not supported"
 msgstr ""
 "Kopiranje (sklic povezave/kloniranje) med različnimi priklopi ni podprto"
 
-#: gio/gfile.c:3121
+#: gio/gfile.c:3153
 msgid "Copy (reflink/clone) is not supported or invalid"
 msgstr "Kopiranje (sklic povezave/kloniranje) ni podprto ali pa ni veljavno"
 
-#: gio/gfile.c:3126
+#: gio/gfile.c:3158
 msgid "Copy (reflink/clone) is not supported or didn’t work"
 msgstr "Kopiranje (sklic povezave/kloniranje) ni podprto, ali pa ni delovalo"
 
-#: gio/gfile.c:3190
+#: gio/gfile.c:3222
 msgid "Can’t copy special file"
 msgstr "Ni mogoče kopirati posebne datoteke"
 
-#: gio/gfile.c:4003
+#: gio/gfile.c:4039
 msgid "Invalid symlink value given"
 msgstr "Neveljavna vrednost simbolne povezave"
 
-#: gio/gfile.c:4013 glib/gfileutils.c:2172
-msgid "Symbolic links not supported"
-msgstr "Simbolne povezave niso podprte"
-
-#: gio/gfile.c:4164
+#: gio/gfile.c:4200
 msgid "Trash not supported"
 msgstr "Smeti niso podprte"
 
-#: gio/gfile.c:4276
+#: gio/gfile.c:4312
 #, c-format
 msgid "File names cannot contain “%c”"
 msgstr "Ni mogoče uporabiti »%c« v imenu datoteke"
 
-#: gio/gfile.c:6757 gio/gvolume.c:364
+#: gio/gfile.c:6793 gio/gvolume.c:364
 msgid "volume doesn’t implement mount"
 msgstr "enota ne podpira priklopa"
 
-#: gio/gfile.c:6871 gio/gfile.c:6919
+#: gio/gfile.c:6904 gio/gfile.c:6950
 msgid "No application is registered as handling this file"
 msgstr "Na voljo ni programa z a upravljanje s to datoteko"
 
@@ -1491,7 +1487,7 @@ msgstr "Razčlenitev ni dovoljena na dovodnem pretoku"
 msgid "Truncate not supported on stream"
 msgstr "Razčlenitev ni podprta na pretoku"
 
-#: gio/ghttpproxy.c:91 gio/gresolver.c:443 gio/gresolver.c:595
+#: gio/ghttpproxy.c:91 gio/gresolver.c:386 gio/gresolver.c:538
 #: glib/gconvert.c:1777
 msgid "Invalid hostname"
 msgstr "Neveljavno ime gostitelja"
@@ -1694,10 +1690,10 @@ msgid "Error writing to stdout"
 msgstr "Napaka med pisanjem v standardni odvod"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:333 gio/gio-tool-list.c:172
+#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:282 gio/gio-tool-list.c:165
 #: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
 #: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:203 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
+#: gio/gio-tool-monitor.c:203 gio/gio-tool-mount.c:1212 gio/gio-tool-open.c:70
 #: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:89
 #: gio/gio-tool-trash.c:81 gio/gio-tool-tree.c:239
 msgid "LOCATION"
@@ -1717,60 +1713,56 @@ msgstr ""
 "oddaljen GIO namesto krajevnih poti do datotek. Primer: kot pot je\n"
 "mogoče uporabiti smb://strežnik/vir/datoteka.txt."
 
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:364 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
+#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:313 gio/gio-tool-mkdir.c:76
+#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1263 gio/gio-tool-open.c:96
 #: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
 msgid "No locations given"
 msgstr "Ni podanih mest"
 
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
+#: gio/gio-tool-copy.c:42 gio/gio-tool-move.c:38
 msgid "No target directory"
 msgstr "Ni ciljne mape"
 
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
+#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:39
 msgid "Show progress"
 msgstr "Pokaži napredek"
 
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:40
 msgid "Prompt before overwrite"
 msgstr "Opozori pred prepisovanjem"
 
-#: gio/gio-tool-copy.c:46
+#: gio/gio-tool-copy.c:45
 msgid "Preserve all attributes"
 msgstr "Ohrani vse atribute"
 
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
 msgid "Backup existing destination files"
 msgstr "Varnostno kopiraj obstoječe ciljne datoteke"
 
-#: gio/gio-tool-copy.c:48
+#: gio/gio-tool-copy.c:47
 msgid "Never follow symbolic links"
 msgstr "Nikoli ne sledi simbolnim povezavam"
 
-#: gio/gio-tool-copy.c:49
-msgid "Use default permissions for the destination"
-msgstr "Uporabi privzeta dovoljenja za ciljno mesto"
-
-#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
+#: gio/gio-tool-copy.c:72 gio/gio-tool-move.c:67
 #, c-format
 msgid "Transferred %s out of %s (%s/s)"
 msgstr "Preneseno %s od %s (%s/s)"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
+#: gio/gio-tool-copy.c:98 gio/gio-tool-move.c:94
 msgid "SOURCE"
 msgstr "VIR"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
+#: gio/gio-tool-copy.c:98 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
 msgid "DESTINATION"
 msgstr "CILJ"
 
-#: gio/gio-tool-copy.c:105
+#: gio/gio-tool-copy.c:103
 msgid "Copy one or more files from SOURCE to DESTINATION."
 msgstr "Kopiraj eno ali več datotek iz VIRA na CILJ."
 
-#: gio/gio-tool-copy.c:107
+#: gio/gio-tool-copy.c:105
 msgid ""
 "gio copy is similar to the traditional cp utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
@@ -1780,98 +1772,88 @@ msgstr ""
 "oddaljen GIO namesto krajevnih poti do datotek. Primer: kot pot je\n"
 "mogoče uporabiti smb://strežnik/vir/datoteka.txt."
 
-#: gio/gio-tool-copy.c:149
+#: gio/gio-tool-copy.c:147
 #, c-format
 msgid "Destination %s is not a directory"
 msgstr "CIljni predmet %s ni mapa"
 
-#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
+#: gio/gio-tool-copy.c:192 gio/gio-tool-move.c:186
 #, c-format
 msgid "%s: overwrite “%s”? "
 msgstr "%s: Ali želite prepisati »%s«? "
 
-#: gio/gio-tool-info.c:37
+#: gio/gio-tool-info.c:34
 msgid "List writable attributes"
 msgstr "Izpiši zapisljive atribute"
 
-#: gio/gio-tool-info.c:38
+#: gio/gio-tool-info.c:35
 msgid "Get file system info"
 msgstr "Pridobi podrobnosti datotečnega sistema"
 
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
 msgid "The attributes to get"
 msgstr "Zahtevani atributi"
 
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
 msgid "ATTRIBUTES"
 msgstr "ATRIBUTI"
 
-#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
+#: gio/gio-tool-info.c:37 gio/gio-tool-list.c:38 gio/gio-tool-set.c:34
 msgid "Don’t follow symbolic links"
 msgstr "Ne sledi simbolnim povezavam"
 
-#: gio/gio-tool-info.c:78
+#: gio/gio-tool-info.c:75
 msgid "attributes:\n"
 msgstr "atributi:\n"
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:134
+#: gio/gio-tool-info.c:127
 #, c-format
 msgid "display name: %s\n"
 msgstr "prikaži ime: %s\n"
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:139
+#: gio/gio-tool-info.c:132
 #, c-format
 msgid "edit name: %s\n"
 msgstr "uredi ime: %s\n"
 
-#: gio/gio-tool-info.c:145
+#: gio/gio-tool-info.c:138
 #, c-format
 msgid "name: %s\n"
 msgstr "ime: %s\n"
 
-#: gio/gio-tool-info.c:152
+#: gio/gio-tool-info.c:145
 #, c-format
 msgid "type: %s\n"
 msgstr "vrsta: %s\n"
 
-#: gio/gio-tool-info.c:158
+#: gio/gio-tool-info.c:151
 msgid "size: "
 msgstr "velikost:"
 
-#: gio/gio-tool-info.c:163
+#: gio/gio-tool-info.c:156
 msgid "hidden\n"
 msgstr "skrito\n"
 
-#: gio/gio-tool-info.c:166
+#: gio/gio-tool-info.c:159
 #, c-format
 msgid "uri: %s\n"
 msgstr "naslov URI: %s\n"
 
-#: gio/gio-tool-info.c:172
-#, c-format
-msgid "local path: %s\n"
-msgstr "Krajevna pot: %s\n"
-
-#: gio/gio-tool-info.c:199
-#, c-format
-msgid "unix mount: %s%s %s %s %s\n"
-msgstr "priklopna točka unix: %s%s %s %s %s\n"
-
-#: gio/gio-tool-info.c:279
+#: gio/gio-tool-info.c:228
 msgid "Settable attributes:\n"
 msgstr "Nastavljivi atributi:\n"
 
-#: gio/gio-tool-info.c:303
+#: gio/gio-tool-info.c:252
 msgid "Writable attribute namespaces:\n"
 msgstr "Imenski prostor zapisljivih atributov:\n"
 
-#: gio/gio-tool-info.c:338
+#: gio/gio-tool-info.c:287
 msgid "Show information about locations."
 msgstr "Pokaže podatke o mestih."
 
-#: gio/gio-tool-info.c:340
+#: gio/gio-tool-info.c:289
 msgid ""
 "gio info is similar to the traditional ls utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
@@ -1885,27 +1867,23 @@ msgstr ""
 "so lahko navedeni z imeni GIO, na primer standard::ikona, ali pa le z\n"
 "imenskim prostorom, na primer: unix ali z » * «, ki ustreza vsem."
 
-#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
+#: gio/gio-tool-list.c:36 gio/gio-tool-tree.c:32
 msgid "Show hidden files"
 msgstr "Pokaži skrite datoteke"
 
-#: gio/gio-tool-list.c:38
+#: gio/gio-tool-list.c:37
 msgid "Use a long listing format"
 msgstr "Uporabi zapis v dolgi obliki"
 
-#: gio/gio-tool-list.c:40
-msgid "Print display names"
-msgstr "Izpiši prikazna imena"
-
-#: gio/gio-tool-list.c:41
+#: gio/gio-tool-list.c:39
 msgid "Print full URIs"
 msgstr "Izpiši celotne naslove URI"
 
-#: gio/gio-tool-list.c:177
+#: gio/gio-tool-list.c:170
 msgid "List the contents of the locations."
 msgstr "Izpiši vsebino mest."
 
-#: gio/gio-tool-list.c:179
+#: gio/gio-tool-list.c:172
 msgid ""
 "gio list is similar to the traditional ls utility, but using GIO\n"
 "locations instead of local files: for example, you can use something\n"
@@ -2033,12 +2011,12 @@ msgid "Mount as mountable"
 msgstr "priklopi kot priklopno"
 
 #: gio/gio-tool-mount.c:64
-msgid "Mount volume with device file, or other identifier"
-msgstr "Priklopi nosilec z datoteko naprave oz. drugim določilnikom"
+msgid "Mount volume with device file"
+msgstr "Priklopi nosilec z datoteko naprave"
 
-#: gio/gio-tool-mount.c:64
-msgid "ID"
-msgstr "ID"
+#: gio/gio-tool-mount.c:64 gio/gio-tool-mount.c:67
+msgid "DEVICE"
+msgstr "NAPRAVA"
 
 #: gio/gio-tool-mount.c:65
 msgid "Unmount"
@@ -2052,10 +2030,6 @@ msgstr "Izvrzi"
 msgid "Stop drive with device file"
 msgstr "Zaustavi pogon z datoteko naprave"
 
-#: gio/gio-tool-mount.c:67
-msgid "DEVICE"
-msgstr "NAPRAVA"
-
 #: gio/gio-tool-mount.c:68
 msgid "Unmount all mounts with the given scheme"
 msgstr "Odklopi vse priklope s podano shemo"
@@ -2110,11 +2084,16 @@ msgstr "Brezimen dostop ni dovoljen!"
 msgid "No drive for device file"
 msgstr "Ni določenega pogona za datoteko naprave"
 
-#: gio/gio-tool-mount.c:1014
-msgid "No volume for given ID"
-msgstr "Ni nosilca za podano določilo ID"
+#: gio/gio-tool-mount.c:975
+#, c-format
+msgid "Mounted %s at %s\n"
+msgstr "Priklopljen %s na %s\n"
+
+#: gio/gio-tool-mount.c:1027
+msgid "No volume for device file"
+msgstr "Ni določenega nosilca za datoteko naprave"
 
-#: gio/gio-tool-mount.c:1203
+#: gio/gio-tool-mount.c:1216
 msgid "Mount or unmount the locations."
 msgstr "Priklop oziroma odklop različnih nosilcev"
 
@@ -2756,41 +2735,46 @@ msgid "Ignoring this file."
 msgstr "Datoteka je prezrta."
 
 #: gio/glib-compile-schemas.c:1963
-#, c-format
+#, fuzzy, c-format
+#| msgid "No such key “%s” in schema “%s” as specified in override file “%s”"
 msgid ""
 "No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
 "override for this key."
 msgstr ""
-"Ključ »%s« v shemi »%s« kot je določen v datoteki prepisa »%s« ne obstaja. "
-"Prepis za ta ključ bo prezrt."
+"Ključ »%s« v shemi »%s« kot je določen v datoteki prepisa »%s« ne obstaja"
 
 #: gio/glib-compile-schemas.c:1971
-#, c-format
+#, fuzzy, c-format
+#| msgid "No such key “%s” in schema “%s” as specified in override file “%s”"
 msgid ""
 "No such key “%s” in schema “%s” as specified in override file “%s” and --"
 "strict was specified; exiting."
 msgstr ""
-"Ključ »%s« v shemi »%s« kot je določen v datoteki prepisa »%s« ne obstaja, "
-"določena je tudi zastavica --strict. Opravilo je prekinjeno."
+"Ključ »%s« v shemi »%s« kot je določen v datoteki prepisa »%s« ne obstaja"
 
 #: gio/glib-compile-schemas.c:1993
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "cannot provide per-desktop overrides for localised key “%s” in schema "
+#| "“%s” (override file “%s”)"
 msgid ""
 "Cannot provide per-desktop overrides for localized key “%s” in schema "
 "“%s” (override file “%s”); ignoring override for this key."
 msgstr ""
-"Ni mogoče uporabiti prepisa jezikovno prilagojenega ključa »%s« za namizje v "
-"shemi »%s« (prepisna datoteka »%s«). Prepis za ta ključ bo prezrt."
+"ni mogoče uporabiti prepisa jezikovno prilagojenega ključa »%s« za namizje v "
+"shemi »%s« (prepisna datoteka »%s«)"
 
 #: gio/glib-compile-schemas.c:2002
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "cannot provide per-desktop overrides for localised key “%s” in schema "
+#| "“%s” (override file “%s”)"
 msgid ""
 "Cannot provide per-desktop overrides for localized key “%s” in schema "
 "“%s” (override file “%s”) and --strict was specified; exiting."
 msgstr ""
-"Ni mogoče uporabiti prepisa jezikovno prilagojenega ključa »%s« za namizje v "
-"shemi »%s« (prepisna datoteka »%s«), določena je tudi zastavica --strict. "
-"Opravilo je prekinjeno."
+"ni mogoče uporabiti prepisa jezikovno prilagojenega ključa »%s« za namizje v "
+"shemi »%s« (prepisna datoteka »%s«)"
 
 #: gio/glib-compile-schemas.c:2026
 #, c-format
@@ -2812,41 +2796,52 @@ msgstr ""
 "preklicano."
 
 #: gio/glib-compile-schemas.c:2065
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "override for key “%s” in schema “%s” in override file “%s” is outside the "
+#| "range given in the schema"
 msgid ""
 "Override for key “%s” in schema “%s” in override file “%s” is outside the "
 "range given in the schema; ignoring override for this key."
 msgstr ""
-"Prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v obsegu, "
-"podanem v shemi. Prepis za ta ključ bo prezrt."
+"prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v obsegu, "
+"podanem v shemi"
 
 #: gio/glib-compile-schemas.c:2075
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "override for key “%s” in schema “%s” in override file “%s” is outside the "
+#| "range given in the schema"
 msgid ""
 "Override for key “%s” in schema “%s” in override file “%s” is outside the "
 "range given in the schema and --strict was specified; exiting."
 msgstr ""
-"Prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v obsegu, "
-"podanem v shemi, določena je tudi zastavica --strict. Opravilo je prekinjeno."
+"prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v obsegu, "
+"podanem v shemi"
 
 #: gio/glib-compile-schemas.c:2101
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "override for key “%s” in schema “%s” in override file “%s” is not in the "
+#| "list of valid choices"
 msgid ""
 "Override for key “%s” in schema “%s” in override file “%s” is not in the "
 "list of valid choices; ignoring override for this key."
 msgstr ""
-"Prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v seznamu "
-"veljavnih možnosti. Prepis za ta ključ bo prezrt."
+"prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v seznamu "
+"veljavnih možnosti"
 
 #: gio/glib-compile-schemas.c:2111
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "override for key “%s” in schema “%s” in override file “%s” is not in the "
+#| "list of valid choices"
 msgid ""
 "Override for key “%s” in schema “%s” in override file “%s” is not in the "
 "list of valid choices and --strict was specified; exiting."
 msgstr ""
-"Prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v seznamu "
-"veljavnih možnosti, določena je tudi zastavica --strict. Opravilo je "
-"prekinjeno."
+"prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v seznamu "
+"veljavnih možnosti"
 
 #: gio/glib-compile-schemas.c:2173
 msgid "Where to store the gschemas.compiled file"
@@ -2920,7 +2915,7 @@ msgid "Can’t rename file, filename already exists"
 msgstr "Ni mogoče preimenovati datoteke, izbrano ime že obstaja"
 
 #: gio/glocalfile.c:1213 gio/glocalfile.c:2322 gio/glocalfile.c:2350
-#: gio/glocalfile.c:2489 gio/glocalfileoutputstream.c:647
+#: gio/glocalfile.c:2507 gio/glocalfileoutputstream.c:647
 msgid "Invalid filename"
 msgstr "Neveljavno ime datoteke"
 
@@ -2996,126 +2991,130 @@ msgstr "Datotečni sistem ne podpira simbolnih povezav"
 msgid "Error making symbolic link %s: %s"
 msgstr "Napaka med ustvarjanjem simbolne povezave %s: %s"
 
-#: gio/glocalfile.c:2400 gio/glocalfile.c:2435 gio/glocalfile.c:2492
+#: gio/glocalfile.c:2363 glib/gfileutils.c:2172
+msgid "Symbolic links not supported"
+msgstr "Simbolne povezave niso podprte"
+
+#: gio/glocalfile.c:2418 gio/glocalfile.c:2453 gio/glocalfile.c:2510
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Napaka med premikanjem datoteke %s: %s"
 
-#: gio/glocalfile.c:2423
+#: gio/glocalfile.c:2441
 msgid "Can’t move directory over directory"
 msgstr "Ni mogoče premakniti mape čez mapo"
 
-#: gio/glocalfile.c:2449 gio/glocalfileoutputstream.c:1031
+#: gio/glocalfile.c:2467 gio/glocalfileoutputstream.c:1031
 #: gio/glocalfileoutputstream.c:1045 gio/glocalfileoutputstream.c:1060
 #: gio/glocalfileoutputstream.c:1077 gio/glocalfileoutputstream.c:1091
 msgid "Backup file creation failed"
 msgstr "Ustvarjanje varnostne kopije je spodletelo."
 
-#: gio/glocalfile.c:2468
+#: gio/glocalfile.c:2486
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Napaka med odstranjevanjem ciljne datoteke: %s"
 
-#: gio/glocalfile.c:2482
+#: gio/glocalfile.c:2500
 msgid "Move between mounts not supported"
 msgstr "Premikanje med priklopi ni podprto"
 
-#: gio/glocalfile.c:2673
+#: gio/glocalfile.c:2691
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Ni mogoče določiti porabe diska %s: %s."
 
-#: gio/glocalfileinfo.c:755
+#: gio/glocalfileinfo.c:752
 msgid "Attribute value must be non-NULL"
 msgstr "Vrednost atributa ni mogoče določiti kot NULL"
 
-#: gio/glocalfileinfo.c:762
+#: gio/glocalfileinfo.c:759
 msgid "Invalid attribute type (string expected)"
 msgstr "Neveljavna vrsta atributa (pričakovan niz)"
 
-#: gio/glocalfileinfo.c:769
+#: gio/glocalfileinfo.c:766
 msgid "Invalid extended attribute name"
 msgstr "Neveljavno razširjeno ime atributa"
 
-#: gio/glocalfileinfo.c:809
+#: gio/glocalfileinfo.c:806
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Napaka med določanjem razširjenega atributa »%s«: %s"
 
-#: gio/glocalfileinfo.c:1637
+#: gio/glocalfileinfo.c:1634
 msgid " (invalid encoding)"
 msgstr " (neveljavni nabor znakov)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1798 gio/glocalfileoutputstream.c:909
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "Napaka med pridobivanjem podatkov za datoteko »%s«: %s"
 
-#: gio/glocalfileinfo.c:2071
+#: gio/glocalfileinfo.c:2068
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Napaka med potrjevanjem opisovalnika datoteke: %s"
 
-#: gio/glocalfileinfo.c:2116
+#: gio/glocalfileinfo.c:2113
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Neveljavna vrsta atributa (pričakovan uint32)"
 
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2131
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Neveljavna vrsta atributa (pričakovan uint64)"
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: gio/glocalfileinfo.c:2150 gio/glocalfileinfo.c:2169
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Neveljavna vrsta atributa (pričakovan bitni niz)"
 
-#: gio/glocalfileinfo.c:2219
+#: gio/glocalfileinfo.c:2216
 msgid "Cannot set permissions on symlinks"
 msgstr "Ni mogoče določiti dovoljenj simbolnih povezav"
 
-#: gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2232
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Napaka med določanjem dovoljenj: %s"
 
-#: gio/glocalfileinfo.c:2286
+#: gio/glocalfileinfo.c:2283
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Napaka med določanjem lastnika: %s"
 
-#: gio/glocalfileinfo.c:2309
+#: gio/glocalfileinfo.c:2306
 msgid "symlink must be non-NULL"
 msgstr "Simbolna povezava ne sme biti določena kot NULL"
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2316 gio/glocalfileinfo.c:2335
+#: gio/glocalfileinfo.c:2346
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Napaka med določanjem simbolne povezave: %s"
 
-#: gio/glocalfileinfo.c:2328
+#: gio/glocalfileinfo.c:2325
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 "Napaka med določevanjem simbolne povezave; datoteka ni simbolna povezava"
 
-#: gio/glocalfileinfo.c:2454
+#: gio/glocalfileinfo.c:2451
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Napaka med določanjem sprememb ali časa dostopa: %s"
 
-#: gio/glocalfileinfo.c:2477
+#: gio/glocalfileinfo.c:2474
 msgid "SELinux context must be non-NULL"
 msgstr "Atributa SELinux ni mogoče določiti kot NULL"
 
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2489
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Napaka nastavitve vsebine SELinux: %s"
 
-#: gio/glocalfileinfo.c:2499
+#: gio/glocalfileinfo.c:2496
 msgid "SELinux is not enabled on this system"
 msgstr "Na tem sistemu SELinux ni omogočen"
 
-#: gio/glocalfileinfo.c:2591
+#: gio/glocalfileinfo.c:2588
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Določanje atributa %s ni podprto"
@@ -3281,11 +3280,11 @@ msgstr "priklop ne podpira usklajevanja ugibanja vsebine vrste"
 msgid "Hostname “%s” contains “[” but not “]”"
 msgstr "Ime gostitelja »%s« vsebuje » [ «, ne pa tudi » ] «"
 
-#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
+#: gio/gnetworkmonitorbase.c:211 gio/gnetworkmonitorbase.c:315
 msgid "Network unreachable"
 msgstr "Omrežje ni dosegljivo"
 
-#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
+#: gio/gnetworkmonitorbase.c:249 gio/gnetworkmonitorbase.c:279
 msgid "Host unreachable"
 msgstr "Gostitelj ni dosegljiv"
 
@@ -3326,18 +3325,18 @@ msgstr "Vsota vektorjev, poslanih na %s, je prevelika."
 msgid "Source stream is already closed"
 msgstr "Izvorni pretok je že zaprt"
 
-#: gio/gresolver.c:386 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
+#: gio/gresolver.c:351 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
 #, c-format
 msgid "Error resolving “%s”: %s"
 msgstr "Napaka med razreševanjem »%s«: %s"
 
 #. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:455 gio/gresolver.c:613
+#: gio/gresolver.c:398 gio/gresolver.c:556
 #, c-format
 msgid "%s not implemented"
 msgstr "Za funkcijo %s ni zagotovljene podpore."
 
-#: gio/gresolver.c:981 gio/gresolver.c:1033
+#: gio/gresolver.c:924 gio/gresolver.c:976
 msgid "Invalid domain"
 msgstr "Neveljavna domena"
 
@@ -3711,174 +3710,174 @@ msgstr "Ni podanega imena sheme.\n"
 msgid "No such key “%s”\n"
 msgstr "Ključ »%s« ne obstaja.\n"
 
-#: gio/gsocket.c:418
+#: gio/gsocket.c:374
 msgid "Invalid socket, not initialized"
 msgstr "Neveljaven vtič, ni zagnano"
 
-#: gio/gsocket.c:425
+#: gio/gsocket.c:381
 #, c-format
 msgid "Invalid socket, initialization failed due to: %s"
 msgstr "Neveljaven vtič, zaganjanje je spodletelo: %s"
 
-#: gio/gsocket.c:433
+#: gio/gsocket.c:389
 msgid "Socket is already closed"
 msgstr "Vtič je že zaprt"
 
-#: gio/gsocket.c:448 gio/gsocket.c:3182 gio/gsocket.c:4399 gio/gsocket.c:4457
+#: gio/gsocket.c:404 gio/gsocket.c:3134 gio/gsocket.c:4351 gio/gsocket.c:4409
 msgid "Socket I/O timed out"
 msgstr "Vtič V/I naprave je časovno potekel"
 
-#: gio/gsocket.c:583
+#: gio/gsocket.c:539
 #, c-format
 msgid "creating GSocket from fd: %s"
 msgstr "ustvarjanje GSocet preko fd: %s"
 
-#: gio/gsocket.c:612 gio/gsocket.c:666 gio/gsocket.c:673
+#: gio/gsocket.c:568 gio/gsocket.c:622 gio/gsocket.c:629
 #, c-format
 msgid "Unable to create socket: %s"
 msgstr "Ni mogoče ustvariti vtiča: %s"
 
-#: gio/gsocket.c:666
+#: gio/gsocket.c:622
 msgid "Unknown family was specified"
 msgstr "Določena je neznana družina"
 
-#: gio/gsocket.c:673
+#: gio/gsocket.c:629
 msgid "Unknown protocol was specified"
 msgstr "Določen je neznan protokol"
 
-#: gio/gsocket.c:1164
+#: gio/gsocket.c:1120
 #, c-format
 msgid "Cannot use datagram operations on a non-datagram socket."
 msgstr "Ni mogoče uporabiti opravil datagrama na vtiču, ki jih ne podpira."
 
-#: gio/gsocket.c:1181
+#: gio/gsocket.c:1137
 #, c-format
 msgid "Cannot use datagram operations on a socket with a timeout set."
 msgstr ""
 "Ni mogoče uporabiti opravil datagrama na vtiču z nastavljenim časovnim "
 "pretekom"
 
-#: gio/gsocket.c:1988
+#: gio/gsocket.c:1944
 #, c-format
 msgid "could not get local address: %s"
 msgstr "ni mogoče pridobiti krajevnega naslova: %s"
 
-#: gio/gsocket.c:2034
+#: gio/gsocket.c:1990
 #, c-format
 msgid "could not get remote address: %s"
 msgstr "ni mogoče pridobiti oddaljenega naslova: %s"
 
-#: gio/gsocket.c:2100
+#: gio/gsocket.c:2056
 #, c-format
 msgid "could not listen: %s"
 msgstr "ni mogoče slediti: %s"
 
-#: gio/gsocket.c:2204
+#: gio/gsocket.c:2158
 #, c-format
-msgid "Error binding to address %s: %s"
-msgstr "Napaka vezave na naslov %s: %s"
+msgid "Error binding to address: %s"
+msgstr "Napaka vezanjem na naslov: %s"
 
-#: gio/gsocket.c:2380 gio/gsocket.c:2417 gio/gsocket.c:2527 gio/gsocket.c:2552
-#: gio/gsocket.c:2615 gio/gsocket.c:2673 gio/gsocket.c:2691
+#: gio/gsocket.c:2332 gio/gsocket.c:2369 gio/gsocket.c:2479 gio/gsocket.c:2504
+#: gio/gsocket.c:2567 gio/gsocket.c:2625 gio/gsocket.c:2643
 #, c-format
 msgid "Error joining multicast group: %s"
 msgstr "Napaka povezovanja v skupino za večsmerno oddajanje: %s"
 
-#: gio/gsocket.c:2381 gio/gsocket.c:2418 gio/gsocket.c:2528 gio/gsocket.c:2553
-#: gio/gsocket.c:2616 gio/gsocket.c:2674 gio/gsocket.c:2692
+#: gio/gsocket.c:2333 gio/gsocket.c:2370 gio/gsocket.c:2480 gio/gsocket.c:2505
+#: gio/gsocket.c:2568 gio/gsocket.c:2626 gio/gsocket.c:2644
 #, c-format
 msgid "Error leaving multicast group: %s"
 msgstr "Napaka zapuščanja skupine za večsmerno oddajanje: %s"
 
-#: gio/gsocket.c:2382
+#: gio/gsocket.c:2334
 msgid "No support for source-specific multicast"
 msgstr "Ni podpore za večsmerno oddajanje lastno viru"
 
-#: gio/gsocket.c:2529
+#: gio/gsocket.c:2481
 msgid "Unsupported socket family"
 msgstr "Nepodprta skupina vtiča"
 
-#: gio/gsocket.c:2554
+#: gio/gsocket.c:2506
 msgid "source-specific not an IPv4 address"
 msgstr "določeno po viru in ne po naslovu IPv4"
 
-#: gio/gsocket.c:2578
+#: gio/gsocket.c:2530
 #, c-format
 msgid "Interface name too long"
 msgstr "Ime vmesnika je predolgo"
 
-#: gio/gsocket.c:2591 gio/gsocket.c:2641
+#: gio/gsocket.c:2543 gio/gsocket.c:2593
 #, c-format
 msgid "Interface not found: %s"
 msgstr "Vmesnika ni mogoče najti: %s"
 
-#: gio/gsocket.c:2617
+#: gio/gsocket.c:2569
 msgid "No support for IPv4 source-specific multicast"
 msgstr "Ni podpore za večsmerno oddajanje v protokolu IPv4"
 
-#: gio/gsocket.c:2675
+#: gio/gsocket.c:2627
 msgid "No support for IPv6 source-specific multicast"
 msgstr "Ni podpore za večsmerno oddajanje v protokolu IPv6"
 
-#: gio/gsocket.c:2884
+#: gio/gsocket.c:2836
 #, c-format
 msgid "Error accepting connection: %s"
 msgstr "Napaka med sprejemanjem povezave: %s"
 
-#: gio/gsocket.c:3010
+#: gio/gsocket.c:2962
 msgid "Connection in progress"
 msgstr "Povezava v teku"
 
-#: gio/gsocket.c:3061
+#: gio/gsocket.c:3013
 msgid "Unable to get pending error: "
 msgstr "Ni mogoče pridobiti uvrščene napake:"
 
-#: gio/gsocket.c:3247
+#: gio/gsocket.c:3199
 #, c-format
 msgid "Error receiving data: %s"
 msgstr "Napaka med prejemanjem podatkov: %s"
 
-#: gio/gsocket.c:3444
+#: gio/gsocket.c:3396
 #, c-format
 msgid "Error sending data: %s"
 msgstr "Napaka med pošiljanjem podatkov: %s"
 
-#: gio/gsocket.c:3631
+#: gio/gsocket.c:3583
 #, c-format
 msgid "Unable to shutdown socket: %s"
 msgstr "Ni mogoče izklopiti vtiča: %s"
 
-#: gio/gsocket.c:3712
+#: gio/gsocket.c:3664
 #, c-format
 msgid "Error closing socket: %s"
 msgstr "Napaka med zapiranjem vtiča: %s"
 
-#: gio/gsocket.c:4392
+#: gio/gsocket.c:4344
 #, c-format
 msgid "Waiting for socket condition: %s"
 msgstr "Čakanje na stanje vtiča: %s"
 
-#: gio/gsocket.c:4770 gio/gsocket.c:4772 gio/gsocket.c:4919 gio/gsocket.c:5004
-#: gio/gsocket.c:5182 gio/gsocket.c:5222 gio/gsocket.c:5224
+#: gio/gsocket.c:4722 gio/gsocket.c:4724 gio/gsocket.c:4871 gio/gsocket.c:4956
+#: gio/gsocket.c:5134 gio/gsocket.c:5174 gio/gsocket.c:5176
 #, c-format
 msgid "Error sending message: %s"
 msgstr "Napaka med pošiljanjem sporočila: %s"
 
-#: gio/gsocket.c:4946
+#: gio/gsocket.c:4898
 msgid "GSocketControlMessage not supported on Windows"
 msgstr "Predmet GSocketControlMessage na sistemih Windows ni podprt"
 
-#: gio/gsocket.c:5415 gio/gsocket.c:5488 gio/gsocket.c:5714
+#: gio/gsocket.c:5367 gio/gsocket.c:5440 gio/gsocket.c:5666
 #, c-format
 msgid "Error receiving message: %s"
 msgstr "Napaka med prejemanjem sporočila: %s"
 
-#: gio/gsocket.c:5995
+#: gio/gsocket.c:5947
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr "Ni mogoče prebrati poveril vtiča: %s."
 
-#: gio/gsocket.c:6004
+#: gio/gsocket.c:5956
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr "Operacijski sistem ne podpira možnosti g_socket_get_credentials"
 
@@ -4231,72 +4230,72 @@ msgstr "Napačni argumenti\n"
 msgid "Unexpected attribute “%s” for element “%s”"
 msgstr "Nepričakovan atribut »%s« za predmet »%s«"
 
-#: glib/gbookmarkfile.c:767 glib/gbookmarkfile.c:847 glib/gbookmarkfile.c:857
-#: glib/gbookmarkfile.c:969
+#: glib/gbookmarkfile.c:767 glib/gbookmarkfile.c:838 glib/gbookmarkfile.c:848
+#: glib/gbookmarkfile.c:960
 #, c-format
 msgid "Attribute “%s” of element “%s” not found"
 msgstr "Atributa »%s« predmeta »%s« ni mogoče najti"
 
-#: glib/gbookmarkfile.c:1178 glib/gbookmarkfile.c:1243
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1317
+#: glib/gbookmarkfile.c:1169 glib/gbookmarkfile.c:1234
+#: glib/gbookmarkfile.c:1298 glib/gbookmarkfile.c:1308
 #, c-format
 msgid "Unexpected tag “%s”, tag “%s” expected"
 msgstr "Nepričakovana oznaka »%s«, pričakovana je »%s«"
 
-#: glib/gbookmarkfile.c:1203 glib/gbookmarkfile.c:1217
-#: glib/gbookmarkfile.c:1285 glib/gbookmarkfile.c:1331
+#: glib/gbookmarkfile.c:1194 glib/gbookmarkfile.c:1208
+#: glib/gbookmarkfile.c:1276 glib/gbookmarkfile.c:1322
 #, c-format
 msgid "Unexpected tag “%s” inside “%s”"
 msgstr "Nepričakovana oznaka »%s« znotraj »%s«"
 
-#: glib/gbookmarkfile.c:1625
+#: glib/gbookmarkfile.c:1616
 #, c-format
 msgid "Invalid date/time ‘%s’ in bookmark file"
 msgstr "Neveljaven zapis datuma/časa »%s« v datoteki zaznamka"
 
-#: glib/gbookmarkfile.c:1831
+#: glib/gbookmarkfile.c:1822
 msgid "No valid bookmark file found in data dirs"
 msgstr "Ni veljavne datoteke zaznamkov v podatkovnih mapah"
 
-#: glib/gbookmarkfile.c:2032
+#: glib/gbookmarkfile.c:2023
 #, c-format
 msgid "A bookmark for URI “%s” already exists"
 msgstr "Zaznamek za naslov URI »%s« že obstaja"
 
-#: glib/gbookmarkfile.c:2078 glib/gbookmarkfile.c:2236
-#: glib/gbookmarkfile.c:2321 glib/gbookmarkfile.c:2401
-#: glib/gbookmarkfile.c:2486 glib/gbookmarkfile.c:2569
-#: glib/gbookmarkfile.c:2647 glib/gbookmarkfile.c:2726
-#: glib/gbookmarkfile.c:2768 glib/gbookmarkfile.c:2865
-#: glib/gbookmarkfile.c:2986 glib/gbookmarkfile.c:3176
-#: glib/gbookmarkfile.c:3252 glib/gbookmarkfile.c:3420
-#: glib/gbookmarkfile.c:3509 glib/gbookmarkfile.c:3598
-#: glib/gbookmarkfile.c:3717
+#: glib/gbookmarkfile.c:2069 glib/gbookmarkfile.c:2227
+#: glib/gbookmarkfile.c:2312 glib/gbookmarkfile.c:2392
+#: glib/gbookmarkfile.c:2477 glib/gbookmarkfile.c:2560
+#: glib/gbookmarkfile.c:2638 glib/gbookmarkfile.c:2717
+#: glib/gbookmarkfile.c:2759 glib/gbookmarkfile.c:2856
+#: glib/gbookmarkfile.c:2977 glib/gbookmarkfile.c:3167
+#: glib/gbookmarkfile.c:3243 glib/gbookmarkfile.c:3411
+#: glib/gbookmarkfile.c:3500 glib/gbookmarkfile.c:3589
+#: glib/gbookmarkfile.c:3708
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr "Ni veljavnega zaznamka za naslov URI »%s«"
 
-#: glib/gbookmarkfile.c:2410
+#: glib/gbookmarkfile.c:2401
 #, c-format
 msgid "No MIME type defined in the bookmark for URI “%s”"
 msgstr "V zaznamku za naslov URI »%s« ni določene vrsta MIME"
 
-#: glib/gbookmarkfile.c:2495
+#: glib/gbookmarkfile.c:2486
 #, c-format
 msgid "No private flag has been defined in bookmark for URI “%s”"
 msgstr "V zaznamku za naslov URI »%s« ni določene zasebne zastavice"
 
-#: glib/gbookmarkfile.c:2874
+#: glib/gbookmarkfile.c:2865
 #, c-format
 msgid "No groups set in bookmark for URI “%s”"
 msgstr "V zaznamku za naslov URI »%s« ni nastavljenih skupin"
 
-#: glib/gbookmarkfile.c:3273 glib/gbookmarkfile.c:3430
+#: glib/gbookmarkfile.c:3264 glib/gbookmarkfile.c:3421
 #, c-format
 msgid "No application with name “%s” registered a bookmark for “%s”"
 msgstr "Program z imenom »%s« ni ustvaril zaznamka za »%s«"
 
-#: glib/gbookmarkfile.c:3453
+#: glib/gbookmarkfile.c:3444
 #, c-format
 msgid "Failed to expand exec line “%s” with URI “%s”"
 msgstr "Razširjanje ukazne vrstice »%s« z naslovom URI »%s« je spodletelo."
@@ -4305,8 +4304,8 @@ msgstr "Razširjanje ukazne vrstice »%s« z naslovom URI »%s« je spodletelo."
 msgid "Unrepresentable character in conversion input"
 msgstr "Nepredstavljiv znak na dovodu pretvorbe"
 
-#: glib/gconvert.c:493 glib/gutf8.c:871 glib/gutf8.c:1083 glib/gutf8.c:1220
-#: glib/gutf8.c:1324
+#: glib/gconvert.c:493 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
+#: glib/gutf8.c:1319
 msgid "Partial character sequence at end of input"
 msgstr "Nedokončano zaporedje znakov na koncu vhoda"
 
@@ -4856,24 +4855,24 @@ msgstr "Predloga »%s« ne vsebuje XXXXXX"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Branje simbolne povezave »%s« je spodletelo: %s"
 
-#: glib/giochannel.c:1396
+#: glib/giochannel.c:1393
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "Ni mogoče odpreti pretvornika iz »%s« v »%s«: %s"
 
-#: glib/giochannel.c:1749
+#: glib/giochannel.c:1738
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr "Ni mogoče prebrati g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1796 glib/giochannel.c:2054 glib/giochannel.c:2141
+#: glib/giochannel.c:1785 glib/giochannel.c:2043 glib/giochannel.c:2130
 msgid "Leftover unconverted data in read buffer"
 msgstr "Preostanek nepretvorjenih podatkov v bralnem medpomnilniku"
 
-#: glib/giochannel.c:1877 glib/giochannel.c:1954
+#: glib/giochannel.c:1866 glib/giochannel.c:1943
 msgid "Channel terminates in a partial character"
 msgstr "Kanal je prekinjen v delnem znaku"
 
-#: glib/giochannel.c:1940
+#: glib/giochannel.c:1929
 msgid "Can’t do a raw read in g_io_channel_read_to_end"
 msgstr "Ni mogoče prebrati v g_io_channel_read_to_end"
 
@@ -4913,8 +4912,8 @@ msgid "Key file contains unsupported encoding “%s”"
 msgstr "Datoteka ključa vsebuje nepodprto kodiranje »%s«"
 
 #: glib/gkeyfile.c:1650 glib/gkeyfile.c:1823 glib/gkeyfile.c:3276
-#: glib/gkeyfile.c:3340 glib/gkeyfile.c:3470 glib/gkeyfile.c:3602
-#: glib/gkeyfile.c:3748 glib/gkeyfile.c:3977 glib/gkeyfile.c:4044
+#: glib/gkeyfile.c:3339 glib/gkeyfile.c:3469 glib/gkeyfile.c:3601
+#: glib/gkeyfile.c:3747 glib/gkeyfile.c:3976 glib/gkeyfile.c:4043
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Datoteka s ključem ni del skupine »%s«"
@@ -4953,31 +4952,31 @@ msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
 msgstr ""
 "Ključ »%s« v skupini »%s« ima vrednost »%s«, pričakovana pa je vrednost %s."
 
-#: glib/gkeyfile.c:4284
+#: glib/gkeyfile.c:4283
 msgid "Key file contains escape character at end of line"
 msgstr "Datoteka s ključem vsebuje ubežni znak na koncu vrstice"
 
-#: glib/gkeyfile.c:4306
+#: glib/gkeyfile.c:4305
 #, c-format
 msgid "Key file contains invalid escape sequence “%s”"
 msgstr "Datoteka ključa vsebuje neveljavno ubežno zaporedje »%s«"
 
-#: glib/gkeyfile.c:4450
+#: glib/gkeyfile.c:4449
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr "Vrednosti »%s« ni mogoče obravnavati kot število."
 
-#: glib/gkeyfile.c:4464
+#: glib/gkeyfile.c:4463
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "Celoštevilska vrednost »%s« je izven obsega"
 
-#: glib/gkeyfile.c:4497
+#: glib/gkeyfile.c:4496
 #, c-format
 msgid "Value “%s” cannot be interpreted as a float number."
 msgstr "Vrednosti »%s« ni mogoče obravnavati kot število s plavajočo vejico."
 
-#: glib/gkeyfile.c:4536
+#: glib/gkeyfile.c:4535
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr "Vrednosti »%s« ni mogoče obravnavati kot logično Boolovo vrednost."
@@ -5068,11 +5067,11 @@ msgstr ""
 "Predmet ni zaključen s podpičjem; najverjetneje je uporabljen znak » & « "
 "brez povezave s predmetom – znak » & « mora biti zapisan kot »&amp;«."
 
-#: glib/gmarkup.c:1193
+#: glib/gmarkup.c:1187
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Dokument se mora začeti z predmetom (na primer <book>)"
 
-#: glib/gmarkup.c:1233
+#: glib/gmarkup.c:1227
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5081,7 +5080,7 @@ msgstr ""
 "»%s« ni veljaven znak, ki lahko sledi znaku » < «;. Morda se ne začne z "
 "imenom predmeta."
 
-#: glib/gmarkup.c:1276
+#: glib/gmarkup.c:1270
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5090,12 +5089,7 @@ msgstr ""
 "Nenavaden znak »%s«; pričakovan znak je » > «, da zaključi oznako predmeta "
 "»%s«"
 
-#: glib/gmarkup.c:1346
-#, c-format
-msgid "Too many attributes in element “%s”"
-msgstr "Določenih je preveč atributov za predmet »%s«"
-
-#: glib/gmarkup.c:1366
+#: glib/gmarkup.c:1352
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5103,7 +5097,7 @@ msgstr ""
 "Nenavaden znak »%s«; za imenom atributa »%s« (predmeta »%s«) je pričakovan "
 "znak » = «."
 
-#: glib/gmarkup.c:1408
+#: glib/gmarkup.c:1394
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5114,7 +5108,7 @@ msgstr ""
 "predmeta »%s« ali pogojno atribut. Morda je uporabljen neveljaven znak v "
 "imenu atributa."
 
-#: glib/gmarkup.c:1453
+#: glib/gmarkup.c:1439
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5123,7 +5117,7 @@ msgstr ""
 "Nenavaden znak »%s«; za enačajem je pričakovan narekovaj, znotraj katerega "
 "je podana vrednost atributa »%s« predmeta »%s«."
 
-#: glib/gmarkup.c:1587
+#: glib/gmarkup.c:1573
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5132,7 +5126,7 @@ msgstr ""
 "»%s« ni veljaven znak za znakoma » </ «; imena predmeta ni mogoče začeti z "
 "»%s«"
 
-#: glib/gmarkup.c:1625
+#: glib/gmarkup.c:1611
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
@@ -5141,25 +5135,25 @@ msgstr ""
 "Znak »%s« ni veljaven, kadar sledi zaprtju imena predmeta »%s«; dovoljen "
 "znak je » > «."
 
-#: glib/gmarkup.c:1637
+#: glib/gmarkup.c:1623
 #, c-format
 msgid "Element “%s” was closed, no element is currently open"
 msgstr "Predmet »%s« je zaprt, trenutno ni odprtega drugega predmeta"
 
-#: glib/gmarkup.c:1646
+#: glib/gmarkup.c:1632
 #, c-format
 msgid "Element “%s” was closed, but the currently open element is “%s”"
 msgstr "Predmet »%s« je zaprt, še vedno pa je odprt predmet »%s«"
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1785
 msgid "Document was empty or contained only whitespace"
 msgstr "Dokument je prazen ali pa vsebuje le presledne znake"
 
-#: glib/gmarkup.c:1813
+#: glib/gmarkup.c:1799
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr "Dokument je nepričakovano zaključen takoj za odprtjem oznake z » < «"
 
-#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
+#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5168,7 +5162,7 @@ msgstr ""
 "Dokument je nepričakovano zaključen s še odprtimi predmeti – »%s« je zadnji "
 "odprt predmet"
 
-#: glib/gmarkup.c:1829
+#: glib/gmarkup.c:1815
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5177,19 +5171,19 @@ msgstr ""
 "Dokument nepričakovano zaključen, pričakovan je zaključni zaklepaj oznake <"
 "%s/>"
 
-#: glib/gmarkup.c:1835
+#: glib/gmarkup.c:1821
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Dokument nepričakovano zaključen sredi imena predmeta"
 
-#: glib/gmarkup.c:1841
+#: glib/gmarkup.c:1827
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Dokument nepričakovano zaključen sredi imena atributa"
 
-#: glib/gmarkup.c:1846
+#: glib/gmarkup.c:1832
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr "Dokument nepričakovano zaključen sredi oznake za odprtje predmeta."
 
-#: glib/gmarkup.c:1852
+#: glib/gmarkup.c:1838
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5197,23 +5191,23 @@ msgstr ""
 "Dokument nepričakovano zaključen za enačajem, ki sledil imenu atributa; ni "
 "določena vrednosti atributa"
 
-#: glib/gmarkup.c:1859
+#: glib/gmarkup.c:1845
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Dokument nepričakovano zaključen sredi vrednosti atributa"
 
-#: glib/gmarkup.c:1876
+#: glib/gmarkup.c:1862
 #, c-format
 msgid "Document ended unexpectedly inside the close tag for element “%s”"
 msgstr "Dokument je nepričakovano zaključen sredi oznake zaprtja predmeta »%s«"
 
-#: glib/gmarkup.c:1880
+#: glib/gmarkup.c:1866
 msgid ""
 "Document ended unexpectedly inside the close tag for an unopened element"
 msgstr ""
 "Dokument je nepričakovano zaključen sredi oznake zaprtja predmeta za neodprt "
 "predmet"
 
-#: glib/gmarkup.c:1886
+#: glib/gmarkup.c:1872
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr "Dokument nepričakovano zaključen sredi opombe ali ukaza"
 
@@ -5374,7 +5368,7 @@ msgstr "neprepoznan znak za (? ali (?-"
 
 #: glib/gregex.c:363
 msgid "POSIX named classes are supported only within a class"
-msgstr "Imenski razredi POSIX so podprti le znotraj razreda"
+msgstr "razredi POSIX so podprti le znotraj razreda"
 
 #: glib/gregex.c:366
 msgid "missing terminating )"
@@ -5437,7 +5431,7 @@ msgstr "neznano ime razreda POSIX"
 
 #: glib/gregex.c:415
 msgid "POSIX collating elements are not supported"
-msgstr "Zbirni predmeti POSIX niso podprti"
+msgstr "zbirni predmeti POSIX niso podprti"
 
 #: glib/gregex.c:418
 msgid "character value in \\x{...} sequence is too large"
@@ -5537,7 +5531,7 @@ msgstr "manjkajoče ime podrejenega vzorca po (?&"
 
 #: glib/gregex.c:495
 msgid "digit expected after (?+"
-msgstr "pričakovana števka po (?+"
+msgstr "pričakovana števka po "
 
 #: glib/gregex.c:498
 msgid "] is an invalid data character in JavaScript compatibility mode"
@@ -5673,8 +5667,10 @@ msgstr "Ni mogoče prebrati podatkov podrejenega procesa (%s)"
 
 #: glib/gspawn.c:460
 #, c-format
-msgid "Unexpected error in reading data from a child process (%s)"
-msgstr "Nepričakovana napaka branja podatkov podrejenega opravila (%s)"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
+"Nepričakovana napaka branja podatkov v opravilu select() podrejenega "
+"opravila (%s)"
 
 #: glib/gspawn.c:545
 #, c-format
@@ -5701,47 +5697,47 @@ msgstr "Podrejeni proces se je ustavil s signalom %ld"
 msgid "Child process exited abnormally"
 msgstr "Podrejeni proces se je zaključil nenaravno"
 
-#: glib/gspawn.c:1475 glib/gspawn-win32.c:350 glib/gspawn-win32.c:358
+#: glib/gspawn.c:1402 glib/gspawn-win32.c:350 glib/gspawn-win32.c:358
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr "Ni mogoče prebrati iz cevi podrejenega procesa (%s)"
 
-#: glib/gspawn.c:1723
+#: glib/gspawn.c:1650
 #, c-format
 msgid "Failed to spawn child process “%s” (%s)"
 msgstr "Ni mogoče ustvariti podrejenega opravila »%s« (%s)"
 
-#: glib/gspawn.c:1762
+#: glib/gspawn.c:1689
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Ni mogoča razvejitev (%s)"
 
-#: glib/gspawn.c:1911 glib/gspawn-win32.c:381
+#: glib/gspawn.c:1838 glib/gspawn-win32.c:381
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "Ni mogoče spremeniti v mapo »%s« (%s)"
 
-#: glib/gspawn.c:1921
+#: glib/gspawn.c:1848
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr "Ni mogoče izvesti podrejenega opravila »%s« (%s)"
 
-#: glib/gspawn.c:1931
+#: glib/gspawn.c:1858
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Ni mogoče preusmeriti vhoda ali izhoda podrejenega procesa (%s)"
 
-#: glib/gspawn.c:1940
+#: glib/gspawn.c:1867
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Ni mogoče razvejiti podrejenega procesa (%s)"
 
-#: glib/gspawn.c:1948
+#: glib/gspawn.c:1875
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr "Neznana napaka med izvajanjem podrejenega opravila »%s«"
 
-#: glib/gspawn.c:1972
+#: glib/gspawn.c:1899
 #, c-format
 msgid "Failed to read enough data from child pid pipe (%s)"
 msgstr "Ni mogoče prebrati dovolj podatkov iz cevi podrejenega procesa (%s)"
@@ -5793,187 +5789,187 @@ msgstr ""
 "Nepričakovana napaka v g_io_channel_win32_poll() med branjem podatkov "
 "procesa podrejenega predmeta"
 
-#: glib/gstrfuncs.c:3309 glib/gstrfuncs.c:3411
+#: glib/gstrfuncs.c:3301 glib/gstrfuncs.c:3403
 msgid "Empty string is not a number"
 msgstr "Prazen niz ni številska vrednost"
 
-#: glib/gstrfuncs.c:3333
+#: glib/gstrfuncs.c:3325
 #, c-format
 msgid "“%s” is not a signed number"
 msgstr "»%s« ni podpisano število"
 
-#: glib/gstrfuncs.c:3343 glib/gstrfuncs.c:3447
+#: glib/gstrfuncs.c:3335 glib/gstrfuncs.c:3439
 #, c-format
 msgid "Number “%s” is out of bounds [%s, %s]"
 msgstr "Število »%s« je izven območja [%s, %s]"
 
-#: glib/gstrfuncs.c:3437
+#: glib/gstrfuncs.c:3429
 #, c-format
 msgid "“%s” is not an unsigned number"
 msgstr "»%s« ni nepodpisano število"
 
-#: glib/gutf8.c:817
+#: glib/gutf8.c:812
 msgid "Failed to allocate memory"
 msgstr "Ni mogoče dodeliti pomnilnika"
 
-#: glib/gutf8.c:950
+#: glib/gutf8.c:945
 msgid "Character out of range for UTF-8"
 msgstr "Znak izven območja za UTF-8"
 
-#: glib/gutf8.c:1051 glib/gutf8.c:1060 glib/gutf8.c:1190 glib/gutf8.c:1199
-#: glib/gutf8.c:1338 glib/gutf8.c:1435
+#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
+#: glib/gutf8.c:1333 glib/gutf8.c:1430
 msgid "Invalid sequence in conversion input"
 msgstr "Neveljavno zaporedje na vhodu pretvorbe"
 
-#: glib/gutf8.c:1349 glib/gutf8.c:1446
+#: glib/gutf8.c:1344 glib/gutf8.c:1441
 msgid "Character out of range for UTF-16"
 msgstr "Znak izven območja za UTF-16"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2756
+#: glib/gutils.c:2326
 #, c-format
 msgid "%.1f kB"
 msgstr "%.1f kB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2758
+#: glib/gutils.c:2328
 #, c-format
 msgid "%.1f MB"
 msgstr "%.1f MB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2760
+#: glib/gutils.c:2330
 #, c-format
 msgid "%.1f GB"
 msgstr "%.1f GB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2762
+#: glib/gutils.c:2332
 #, c-format
 msgid "%.1f TB"
 msgstr "%.1f TB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2764
+#: glib/gutils.c:2334
 #, c-format
 msgid "%.1f PB"
 msgstr "%.1f PB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2766
+#: glib/gutils.c:2336
 #, c-format
 msgid "%.1f EB"
 msgstr "%.1f EB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2770
+#: glib/gutils.c:2340
 #, c-format
 msgid "%.1f KiB"
 msgstr "%.1f KiB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2772
+#: glib/gutils.c:2342
 #, c-format
 msgid "%.1f MiB"
 msgstr "%.1f MiB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2774
+#: glib/gutils.c:2344
 #, c-format
 msgid "%.1f GiB"
 msgstr "%.1f GiB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2776
+#: glib/gutils.c:2346
 #, c-format
 msgid "%.1f TiB"
 msgstr "%.1f TiB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2778
+#: glib/gutils.c:2348
 #, c-format
 msgid "%.1f PiB"
 msgstr "%.1f PiB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2780
+#: glib/gutils.c:2350
 #, c-format
 msgid "%.1f EiB"
 msgstr "%.1f EiB"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2784
+#: glib/gutils.c:2354
 #, c-format
 msgid "%.1f kb"
 msgstr "%.1f kb"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2786
+#: glib/gutils.c:2356
 #, c-format
 msgid "%.1f Mb"
 msgstr "%.1f Mb"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2788
+#: glib/gutils.c:2358
 #, c-format
 msgid "%.1f Gb"
 msgstr "%.1f Gb"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2790
+#: glib/gutils.c:2360
 #, c-format
 msgid "%.1f Tb"
 msgstr "%.1f Tb"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2792
+#: glib/gutils.c:2362
 #, c-format
 msgid "%.1f Pb"
 msgstr "%.1f Pb"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2794
+#: glib/gutils.c:2364
 #, c-format
 msgid "%.1f Eb"
 msgstr "%.1f Eb"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2798
+#: glib/gutils.c:2368
 #, c-format
 msgid "%.1f Kib"
 msgstr "%.1f Kib"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2800
+#: glib/gutils.c:2370
 #, c-format
 msgid "%.1f Mib"
 msgstr "%.1f Mib"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2802
+#: glib/gutils.c:2372
 #, c-format
 msgid "%.1f Gib"
 msgstr "%.1f Gib"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2804
+#: glib/gutils.c:2374
 #, c-format
 msgid "%.1f Tib"
 msgstr "%.1f Tib"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2806
+#: glib/gutils.c:2376
 #, c-format
 msgid "%.1f Pib"
 msgstr "%.1f Pib"
 
 #. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2808
+#: glib/gutils.c:2378
 #, c-format
 msgid "%.1f Eib"
 msgstr "%.1f Eib"
 
-#: glib/gutils.c:2842 glib/gutils.c:2959
+#: glib/gutils.c:2412 glib/gutils.c:2529
 #, c-format
 msgid "%u byte"
 msgid_plural "%u bytes"
@@ -5982,7 +5978,7 @@ msgstr[1] "%u bajt"
 msgstr[2] "%u bajta"
 msgstr[3] "%u bajti"
 
-#: glib/gutils.c:2846
+#: glib/gutils.c:2416
 #, c-format
 msgid "%u bit"
 msgid_plural "%u bits"
@@ -5992,7 +5988,7 @@ msgstr[2] "%u bita"
 msgstr[3] "%u biti"
 
 #. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2913
+#: glib/gutils.c:2483
 #, c-format
 msgid "%s byte"
 msgid_plural "%s bytes"
@@ -6002,7 +5998,7 @@ msgstr[2] "%s bajta"
 msgstr[3] "%s bajti"
 
 #. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2918
+#: glib/gutils.c:2488
 #, c-format
 msgid "%s bit"
 msgid_plural "%s bits"
@@ -6016,42 +6012,36 @@ msgstr[3] "%s biti"
 #. * compatibility.  Users will not see this string unless a program is using this deprecated function.
 #. * Please translate as literally as possible.
 #.
-#: glib/gutils.c:2972
+#: glib/gutils.c:2542
 #, c-format
 msgid "%.1f KB"
 msgstr "%.1f KB"
 
-#: glib/gutils.c:2977
+#: glib/gutils.c:2547
 #, c-format
 msgid "%.1f MB"
 msgstr "%.1f MB"
 
-#: glib/gutils.c:2982
+#: glib/gutils.c:2552
 #, c-format
 msgid "%.1f GB"
 msgstr "%.1f GB"
 
-#: glib/gutils.c:2987
+#: glib/gutils.c:2557
 #, c-format
 msgid "%.1f TB"
 msgstr "%.1f TB"
 
-#: glib/gutils.c:2992
+#: glib/gutils.c:2562
 #, c-format
 msgid "%.1f PB"
 msgstr "%.1f PB"
 
-#: glib/gutils.c:2997
+#: glib/gutils.c:2567
 #, c-format
 msgid "%.1f EB"
 msgstr "%.1f EB"
 
-#~ msgid "Error in address “%s” — the family attribute is malformed"
-#~ msgstr "Napaka v naslovu »%s« – atribut družine je nepravilno oblikovan"
-
-#~ msgid "Mounted %s at %s\n"
-#~ msgstr "Priklopljen %s na %s\n"
-
 #~ msgid "; ignoring override for this key.\n"
 #~ msgstr "; prepis za ta ključ je prezrt.\n"
 
index cf74603..83200c4 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -16,8 +16,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-02-12 17:05+0000\n"
-"PO-Revision-Date: 2020-02-12 20:36+0300\n"
+"POT-Creation-Date: 2020-05-15 13:10+0000\n"
+"PO-Revision-Date: 2020-05-16 14:58+0300\n"
 "Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
 "Language-Team: Türkçe <gnome-turk@gnome.org>\n"
 "Language: tr\n"
@@ -286,7 +286,7 @@ msgstr "Akış zaten kapalı"
 msgid "Truncate not supported on base stream"
 msgstr "Taban akış üzerinde sonunun kesilmesi desteklenmiyor"
 
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1871 gio/gdbusprivate.c:1411
+#: gio/gcancellable.c:319 gio/gdbusconnection.c:1862 gio/gdbusprivate.c:1411
 #: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
 #, c-format
 msgid "Operation was cancelled"
@@ -306,13 +306,13 @@ msgstr "Hedefte yeterli alan yok"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:447 glib/gconvert.c:877
-#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2453
+#: glib/giochannel.c:1564 glib/giochannel.c:1606 glib/giochannel.c:2461
 #: glib/gutf8.c:875 glib/gutf8.c:1328
 msgid "Invalid byte sequence in conversion input"
 msgstr "Dönüşüm girdisinde geçersiz bayt dizisi"
 
 #: gio/gcharsetconverter.c:347 glib/gconvert.c:455 glib/gconvert.c:791
-#: glib/giochannel.c:1571 glib/giochannel.c:2465
+#: glib/giochannel.c:1571 glib/giochannel.c:2473
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Dönüşüm sırasında hata oluştu: %s"
@@ -345,23 +345,23 @@ msgstr "Bilinmeyen tür"
 msgid "%s filetype"
 msgstr "%s dosya türü"
 
-#: gio/gcredentials.c:289
+#: gio/gcredentials.c:323
 msgid "GCredentials contains invalid data"
 msgstr "GCredentials geçersiz veri içeriyor"
 
-#: gio/gcredentials.c:345 gio/gcredentials.c:609
+#: gio/gcredentials.c:383 gio/gcredentials.c:667
 msgid "GCredentials is not implemented on this OS"
 msgstr "Bu işletim sisteminde GCredentials sağlanmamış"
 
-#: gio/gcredentials.c:503
+#: gio/gcredentials.c:538 gio/gcredentials.c:556
 msgid "There is no GCredentials support for your platform"
 msgstr "Platformunuz için GCredentials desteği yok"
 
-#: gio/gcredentials.c:552
+#: gio/gcredentials.c:607
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr "Bu iştetim sisteminde GCredentials bir süreç kimliği içermez"
 
-#: gio/gcredentials.c:603
+#: gio/gcredentials.c:661
 msgid "Credentials spoofing is not possible on this OS"
 msgstr "Bu işletim sisteminde kimlik sızdırma mümkün değildir"
 
@@ -514,7 +514,7 @@ msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr ""
 "Oturum veri yolu adresi saptanamıyor (bu işletim sistemi için uygulanmadı)"
 
-#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7191
+#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7192
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -523,7 +523,7 @@ msgstr ""
 "DBUS_STARTER_BUS_TYPE ortam değişkeninden veri yolu adresi saptanamıyor — "
 "bilinmeyen değer “%s”"
 
-#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7200
+#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7201
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -556,12 +556,12 @@ msgstr ""
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr "GDBusAuthObserver::authorize-authenticated-peer yolu ile iptal edildi"
 
-#: gio/gdbusauthmechanismsha1.c:264
+#: gio/gdbusauthmechanismsha1.c:265
 #, c-format
 msgid "Error when getting information for directory “%s”: %s"
 msgstr "“%s” dizini için bilgi alınırken hata: %s"
 
-#: gio/gdbusauthmechanismsha1.c:276
+#: gio/gdbusauthmechanismsha1.c:280
 #, c-format
 msgid ""
 "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -569,22 +569,22 @@ msgstr ""
 "“%s” dizini üzerindeki izinler bozulmuştur. 0700 kipi beklenmiştir, ama 0%o "
 "alınmıştır"
 
-#: gio/gdbusauthmechanismsha1.c:301
+#: gio/gdbusauthmechanismsha1.c:310
 #, c-format
 msgid "Error creating directory “%s”: %s"
 msgstr "“%s” dizini oluşturulurken hata: %s"
 
-#: gio/gdbusauthmechanismsha1.c:348
+#: gio/gdbusauthmechanismsha1.c:355
 #, c-format
 msgid "Error opening keyring “%s” for reading: "
 msgstr "Okumak için “%s” anahtarlığı açılırken hata: "
 
-#: gio/gdbusauthmechanismsha1.c:371 gio/gdbusauthmechanismsha1.c:689
+#: gio/gdbusauthmechanismsha1.c:378 gio/gdbusauthmechanismsha1.c:700
 #, c-format
 msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr "“%3$s” içerikli “%2$s” konumundaki anahtarlığın %1$d. satırı bozulmuş"
 
-#: gio/gdbusauthmechanismsha1.c:385 gio/gdbusauthmechanismsha1.c:703
+#: gio/gdbusauthmechanismsha1.c:392 gio/gdbusauthmechanismsha1.c:714
 #, c-format
 msgid ""
 "First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -592,7 +592,7 @@ msgstr ""
 "“%3$s” içerikli “%2$s” konumundaki anahtarlığın %1$d. satırının ilk "
 "belirteci bozulmuş"
 
-#: gio/gdbusauthmechanismsha1.c:399 gio/gdbusauthmechanismsha1.c:717
+#: gio/gdbusauthmechanismsha1.c:406 gio/gdbusauthmechanismsha1.c:728
 #, c-format
 msgid ""
 "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -600,129 +600,129 @@ msgstr ""
 "“%3$s” içerikli “%2$s” konumundaki anahtarlığın %1$d. satırının ikinci "
 "belirteci bozulmuş"
 
-#: gio/gdbusauthmechanismsha1.c:423
+#: gio/gdbusauthmechanismsha1.c:430
 #, c-format
 msgid "Didn’t find cookie with id %d in the keyring at “%s”"
 msgstr "“%2$s” konumundaki anahtarlıkta %1$d kimlikli çerez bulunamadı"
 
-#: gio/gdbusauthmechanismsha1.c:505
-#, c-format
-msgid "Error deleting stale lock file “%s”: %s"
-msgstr "Eski kilit dosyası “%s” silinirken hata: %s"
-
-#: gio/gdbusauthmechanismsha1.c:537
+#: gio/gdbusauthmechanismsha1.c:476
 #, c-format
 msgid "Error creating lock file “%s”: %s"
 msgstr "Kilit dosyası “%s” oluşturulurken hata: %s"
 
-#: gio/gdbusauthmechanismsha1.c:568
+#: gio/gdbusauthmechanismsha1.c:540
+#, c-format
+msgid "Error deleting stale lock file “%s”: %s"
+msgstr "Eski kilit dosyası “%s” silinirken hata: %s"
+
+#: gio/gdbusauthmechanismsha1.c:579
 #, c-format
 msgid "Error closing (unlinked) lock file “%s”: %s"
 msgstr "(Bağlantısı olmayan) kilit dosyası “%s” kapatılırken hata: %s"
 
-#: gio/gdbusauthmechanismsha1.c:579
+#: gio/gdbusauthmechanismsha1.c:590
 #, c-format
 msgid "Error unlinking lock file “%s”: %s"
 msgstr "“%s” kilit dosyasının bağlantısı kaldırılırken hata: %s"
 
-#: gio/gdbusauthmechanismsha1.c:656
+#: gio/gdbusauthmechanismsha1.c:667
 #, c-format
 msgid "Error opening keyring “%s” for writing: "
 msgstr "“%s” anahtarlığını yazma için açarken hata: "
 
-#: gio/gdbusauthmechanismsha1.c:852
+#: gio/gdbusauthmechanismsha1.c:863
 #, c-format
 msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
 msgstr "(Ayrıca, “%s” için kilidi açma başarısız oldu: %s) "
 
-#: gio/gdbusconnection.c:604 gio/gdbusconnection.c:2400
+#: gio/gdbusconnection.c:595 gio/gdbusconnection.c:2391
 msgid "The connection is closed"
 msgstr "Bağlantı kapalı"
 
-#: gio/gdbusconnection.c:1901
+#: gio/gdbusconnection.c:1892
 msgid "Timeout was reached"
 msgstr "Zaman aşımı gerçekleşti"
 
-#: gio/gdbusconnection.c:2522
+#: gio/gdbusconnection.c:2513
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 "İstemci taraflı bağlantı kurulurken desteklenmeyen etiketlerle karşılaşıldı"
 
-#: gio/gdbusconnection.c:4162 gio/gdbusconnection.c:4509
+#: gio/gdbusconnection.c:4163 gio/gdbusconnection.c:4510
 #, c-format
 msgid ""
 "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
 msgstr ""
 "%s yolundaki nesnede “org.freedesktop.DBus.Properties” gibi bir arayüz yok"
 
-#: gio/gdbusconnection.c:4304
+#: gio/gdbusconnection.c:4305
 #, c-format
 msgid "No such property “%s”"
 msgstr "“%s” gibi bir özellik yok"
 
-#: gio/gdbusconnection.c:4316
+#: gio/gdbusconnection.c:4317
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "“%s” özelliği okunabilir değil"
 
-#: gio/gdbusconnection.c:4327
+#: gio/gdbusconnection.c:4328
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "“%s” özelliği yazılabilir değil"
 
-#: gio/gdbusconnection.c:4347
+#: gio/gdbusconnection.c:4348
 #, c-format
 msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
 msgstr "“%s” özelliği ayarlanırken hata: “%s” türü beklendi, “%s” elde edildi"
 
-#: gio/gdbusconnection.c:4452 gio/gdbusconnection.c:4660
-#: gio/gdbusconnection.c:6631
+#: gio/gdbusconnection.c:4453 gio/gdbusconnection.c:4661
+#: gio/gdbusconnection.c:6632
 #, c-format
 msgid "No such interface “%s”"
 msgstr "“%s” gibi bir arabirim yok"
 
-#: gio/gdbusconnection.c:4878 gio/gdbusconnection.c:7140
+#: gio/gdbusconnection.c:4879 gio/gdbusconnection.c:7141
 #, c-format
 msgid "No such interface “%s” on object at path %s"
 msgstr "%2$s yolundaki nesnede “%1$s” gibi bir arayüz yok"
 
-#: gio/gdbusconnection.c:4976
+#: gio/gdbusconnection.c:4977
 #, c-format
 msgid "No such method “%s”"
 msgstr "“%s” gibi bir anahtar yok"
 
-#: gio/gdbusconnection.c:5007
+#: gio/gdbusconnection.c:5008
 #, c-format
 msgid "Type of message, “%s”, does not match expected type “%s”"
 msgstr "“%s” iletisinin türü, beklenen “%s” türü ile örtüşmüyor"
 
-#: gio/gdbusconnection.c:5205
+#: gio/gdbusconnection.c:5206
 #, c-format
 msgid "An object is already exported for the interface %s at %s"
 msgstr "%2$s konumundaki %1$s arayüzü için bir nesne zaten dışa aktarıldı"
 
-#: gio/gdbusconnection.c:5431
+#: gio/gdbusconnection.c:5432
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "%s.%s özelliği alınamadı"
 
-#: gio/gdbusconnection.c:5487
+#: gio/gdbusconnection.c:5488
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "%s.%s özelliği ayarlanamadı"
 
-#: gio/gdbusconnection.c:5665
+#: gio/gdbusconnection.c:5666
 #, c-format
 msgid "Method “%s” returned type “%s”, but expected “%s”"
 msgstr "“%s” yöntemi “%s” türü döndürdü, ancak “%s” bekleniyordu"
 
-#: gio/gdbusconnection.c:6742
+#: gio/gdbusconnection.c:6743
 #, c-format
 msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
 msgstr "“%3$s” imzalı “%2$s” arayüzü üzerinde “%1$s” yöntemi yok"
 
-#: gio/gdbusconnection.c:6863
+#: gio/gdbusconnection.c:6864
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "%s için bir alt ağaç zaten dışa aktarılmış"
@@ -929,17 +929,17 @@ msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr ""
 "/var/lib/dbus/makine-kimliği veya /etc/makine-kimliği konumuna yüklenemiyor: "
 
-#: gio/gdbusproxy.c:1625
+#: gio/gdbusproxy.c:1562
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "%s için StartServiceByName çağrısında hata: "
 
-#: gio/gdbusproxy.c:1648
+#: gio/gdbusproxy.c:1585
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "StartServiceByName %d yönteminden beklenmeyen yanıt (\"%s\")"
 
-#: gio/gdbusproxy.c:2748 gio/gdbusproxy.c:2883
+#: gio/gdbusproxy.c:2685 gio/gdbusproxy.c:2820
 #, c-format
 msgid ""
 "Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -995,13 +995,13 @@ msgstr ""
 "Her bir komut hakkında yardım almak için “%s KOMUT --help” kullanın.\n"
 
 #: gio/gdbus-tool.c:197 gio/gdbus-tool.c:264 gio/gdbus-tool.c:336
-#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:846 gio/gdbus-tool.c:1183
-#: gio/gdbus-tool.c:1668
+#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:850 gio/gdbus-tool.c:1187
+#: gio/gdbus-tool.c:1672
 #, c-format
 msgid "Error: %s\n"
 msgstr "Hata: %s\n"
 
-#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1684
+#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1688
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr "İçgözlem XML’ini ayrıştırmada hata: %s\n"
@@ -1031,184 +1031,184 @@ msgstr "Bağlantı Uç Noktası Seçenekleri:"
 msgid "Options specifying the connection endpoint"
 msgstr "Bağlantı uç noktasını belirleyen seçenekler"
 
-#: gio/gdbus-tool.c:429
+#: gio/gdbus-tool.c:430
 #, c-format
 msgid "No connection endpoint specified"
 msgstr "Bağlantı uç noktası belirtilmedi"
 
-#: gio/gdbus-tool.c:439
+#: gio/gdbus-tool.c:440
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr "Birden çok bağlantı uç noktası belirtildi"
 
-#: gio/gdbus-tool.c:509
+#: gio/gdbus-tool.c:513
 #, c-format
 msgid ""
 "Warning: According to introspection data, interface “%s” does not exist\n"
 msgstr "Uyarı: İçgözlem verilerine göre, “%s” arayüzü yok\n"
 
-#: gio/gdbus-tool.c:518
+#: gio/gdbus-tool.c:522
 #, c-format
 msgid ""
 "Warning: According to introspection data, method “%s” does not exist on "
 "interface “%s”\n"
 msgstr "Uyarı: İçgözlem verilerine göre, “%s” yöntemi “%s” arayüzünde yok\n"
 
-#: gio/gdbus-tool.c:580
+#: gio/gdbus-tool.c:584
 msgid "Optional destination for signal (unique name)"
 msgstr "Sinyal için isteğe bağlı hedef nokta (eşsiz ad)"
 
-#: gio/gdbus-tool.c:581
+#: gio/gdbus-tool.c:585
 msgid "Object path to emit signal on"
 msgstr "Üzerinde sinyal yaymak için nesne yolu"
 
-#: gio/gdbus-tool.c:582
+#: gio/gdbus-tool.c:586
 msgid "Signal and interface name"
 msgstr "Sinyal ve arayüz adı"
 
-#: gio/gdbus-tool.c:615
+#: gio/gdbus-tool.c:619
 msgid "Emit a signal."
 msgstr "Bir sinyal yayınla."
 
-#: gio/gdbus-tool.c:670 gio/gdbus-tool.c:977 gio/gdbus-tool.c:1771
-#: gio/gdbus-tool.c:2003 gio/gdbus-tool.c:2223
+#: gio/gdbus-tool.c:674 gio/gdbus-tool.c:981 gio/gdbus-tool.c:1775
+#: gio/gdbus-tool.c:2007 gio/gdbus-tool.c:2227
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "Bağlanırken hata: %s\n"
 
-#: gio/gdbus-tool.c:690
+#: gio/gdbus-tool.c:694
 #, c-format
 msgid "Error: %s is not a valid unique bus name.\n"
 msgstr "Hata: %s geçerli bir özgün veriyolu adı değil\n"
 
-#: gio/gdbus-tool.c:709 gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1814
+#: gio/gdbus-tool.c:713 gio/gdbus-tool.c:1024 gio/gdbus-tool.c:1818
 msgid "Error: Object path is not specified\n"
 msgstr "Hata: Nesne yolu belirtilmedi\n"
 
-#: gio/gdbus-tool.c:732 gio/gdbus-tool.c:1040 gio/gdbus-tool.c:1834
-#: gio/gdbus-tool.c:2074
+#: gio/gdbus-tool.c:736 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1838
+#: gio/gdbus-tool.c:2078
 #, c-format
 msgid "Error: %s is not a valid object path\n"
 msgstr "Hata: %s geçerli bir nesne yolu değil\n"
 
-#: gio/gdbus-tool.c:752
+#: gio/gdbus-tool.c:756
 msgid "Error: Signal name is not specified\n"
 msgstr "Hata: Sinyal adı belirtilmedi\n"
 
-#: gio/gdbus-tool.c:766
+#: gio/gdbus-tool.c:770
 #, c-format
 msgid "Error: Signal name “%s” is invalid\n"
 msgstr "Hata: Sinyal adı “%s” geçersiz\n"
 
-#: gio/gdbus-tool.c:778
+#: gio/gdbus-tool.c:782
 #, c-format
 msgid "Error: %s is not a valid interface name\n"
 msgstr "Hata: %s geçerli bir arayüz adı değil\n"
 
-#: gio/gdbus-tool.c:784
+#: gio/gdbus-tool.c:788
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr "Hata: %s geçerli bir üye adı değil\n"
 
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:821 gio/gdbus-tool.c:1152
+#: gio/gdbus-tool.c:825 gio/gdbus-tool.c:1156
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr "%d parametresini ayrıştırırken hata oluştu: %s\n"
 
-#: gio/gdbus-tool.c:853
+#: gio/gdbus-tool.c:857
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr "Bağlantı boşaltılırken hata: %s\n"
 
-#: gio/gdbus-tool.c:880
+#: gio/gdbus-tool.c:884
 msgid "Destination name to invoke method on"
 msgstr "Üzerinde yöntem çalıştırılacak hedef nokta adı"
 
-#: gio/gdbus-tool.c:881
+#: gio/gdbus-tool.c:885
 msgid "Object path to invoke method on"
 msgstr "Yöntemin üzerinde çalıştırılacağı nesne yolu"
 
-#: gio/gdbus-tool.c:882
+#: gio/gdbus-tool.c:886
 msgid "Method and interface name"
 msgstr "Yöntem ve arayüz adı"
 
-#: gio/gdbus-tool.c:883
+#: gio/gdbus-tool.c:887
 msgid "Timeout in seconds"
 msgstr "Saniye cinsinden zaman aşımı"
 
-#: gio/gdbus-tool.c:922
+#: gio/gdbus-tool.c:926
 msgid "Invoke a method on a remote object."
 msgstr "Uzak bir nesne üzerinde yöntem çalıştır."
 
-#: gio/gdbus-tool.c:994 gio/gdbus-tool.c:1788 gio/gdbus-tool.c:2028
+#: gio/gdbus-tool.c:998 gio/gdbus-tool.c:1792 gio/gdbus-tool.c:2032
 msgid "Error: Destination is not specified\n"
 msgstr "Hata: Hedef belirtilmedi\n"
 
-#: gio/gdbus-tool.c:1005 gio/gdbus-tool.c:1805 gio/gdbus-tool.c:2039
+#: gio/gdbus-tool.c:1009 gio/gdbus-tool.c:1809 gio/gdbus-tool.c:2043
 #, c-format
 msgid "Error: %s is not a valid bus name\n"
 msgstr "Hata: %s geçerli bir veri yolu adı değil\n"
 
-#: gio/gdbus-tool.c:1055
+#: gio/gdbus-tool.c:1059
 msgid "Error: Method name is not specified\n"
 msgstr "Hata: Yöntem adı belirtilmedi\n"
 
-#: gio/gdbus-tool.c:1066
+#: gio/gdbus-tool.c:1070
 #, c-format
 msgid "Error: Method name “%s” is invalid\n"
 msgstr "Hata: Yöntem adı “%s” geçersiz\n"
 
-#: gio/gdbus-tool.c:1144
+#: gio/gdbus-tool.c:1148
 #, c-format
 msgid "Error parsing parameter %d of type “%s”: %s\n"
 msgstr "“%2$s” türünün %1$d parametresi ayrıştırılırken hata: %3$s\n"
 
-#: gio/gdbus-tool.c:1630
+#: gio/gdbus-tool.c:1634
 msgid "Destination name to introspect"
 msgstr "İçgözlem için hedef nokta adı"
 
-#: gio/gdbus-tool.c:1631
+#: gio/gdbus-tool.c:1635
 msgid "Object path to introspect"
 msgstr "İçgözlem yapmak için nesne yolu"
 
-#: gio/gdbus-tool.c:1632
+#: gio/gdbus-tool.c:1636
 msgid "Print XML"
 msgstr "XML yazdır"
 
-#: gio/gdbus-tool.c:1633
+#: gio/gdbus-tool.c:1637
 msgid "Introspect children"
 msgstr "Alt iç gözlemi"
 
-#: gio/gdbus-tool.c:1634
+#: gio/gdbus-tool.c:1638
 msgid "Only print properties"
 msgstr "Yalnızca özellikleri yazdır"
 
-#: gio/gdbus-tool.c:1723
+#: gio/gdbus-tool.c:1727
 msgid "Introspect a remote object."
 msgstr "Uzak nesneye içgözlem yap."
 
-#: gio/gdbus-tool.c:1929
+#: gio/gdbus-tool.c:1933
 msgid "Destination name to monitor"
 msgstr "Gözlemlenecek hedefin adı"
 
-#: gio/gdbus-tool.c:1930
+#: gio/gdbus-tool.c:1934
 msgid "Object path to monitor"
 msgstr "Gözlemlenecek nesne yolu"
 
-#: gio/gdbus-tool.c:1955
+#: gio/gdbus-tool.c:1959
 msgid "Monitor a remote object."
 msgstr "Uzak nesneyi gözlemle."
 
-#: gio/gdbus-tool.c:2013
+#: gio/gdbus-tool.c:2017
 msgid "Error: can’t monitor a non-message-bus connection\n"
 msgstr "Hata: non-message-bus gözlemlenemiyor\n"
 
-#: gio/gdbus-tool.c:2137
+#: gio/gdbus-tool.c:2141
 msgid "Service to activate before waiting for the other one (well-known name)"
 msgstr "Bir diğeri (tanınmış ad) için beklemeden önce aktifleştirilecek hizmet"
 
-#: gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:2144
 msgid ""
 "Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
 "(default)"
@@ -1216,63 +1216,63 @@ msgstr ""
 "Bir hatayla çıkılmadan önce beklenecek zaman aşımı süresi (saniye); zaman "
 "aşımı olmaması için 0 (öntanımlı)"
 
-#: gio/gdbus-tool.c:2188
+#: gio/gdbus-tool.c:2192
 msgid "[OPTION…] BUS-NAME"
 msgstr "[SEÇENEK…] VERİYOLU-ADI"
 
-#: gio/gdbus-tool.c:2189
+#: gio/gdbus-tool.c:2193
 msgid "Wait for a bus name to appear."
 msgstr "Veri yolu adının belirmesini bekle."
 
-#: gio/gdbus-tool.c:2265
+#: gio/gdbus-tool.c:2269
 msgid "Error: A service to activate for must be specified.\n"
 msgstr "Hata: Aktifleştirilecek bir hizmet belirtilmelidir.\n"
 
-#: gio/gdbus-tool.c:2270
+#: gio/gdbus-tool.c:2274
 msgid "Error: A service to wait for must be specified.\n"
 msgstr "Hata: Beklenecek bir hizmet belirtilmelidir.\n"
 
-#: gio/gdbus-tool.c:2275
+#: gio/gdbus-tool.c:2279
 msgid "Error: Too many arguments.\n"
 msgstr "Hata: Çok fazla argüman.\n"
 
-#: gio/gdbus-tool.c:2283 gio/gdbus-tool.c:2290
+#: gio/gdbus-tool.c:2287 gio/gdbus-tool.c:2294
 #, c-format
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "Hata: %s geçerli bilinen bir veri yolu adı değil\n"
 
-#: gio/gdesktopappinfo.c:2072 gio/gdesktopappinfo.c:4870
+#: gio/gdesktopappinfo.c:2071 gio/gdesktopappinfo.c:4886
 msgid "Unnamed"
 msgstr "Adlandırılmamış"
 
-#: gio/gdesktopappinfo.c:2482
+#: gio/gdesktopappinfo.c:2481
 msgid "Desktop file didn’t specify Exec field"
 msgstr "Desktop dosyası Exec alanı belirtmemiş"
 
-#: gio/gdesktopappinfo.c:2754
+#: gio/gdesktopappinfo.c:2761
 msgid "Unable to find terminal required for application"
 msgstr "Uygulama için gerekli uçbirim bulunamadı"
 
-#: gio/gdesktopappinfo.c:3406
+#: gio/gdesktopappinfo.c:3413
 #, c-format
 msgid "Can’t create user application configuration folder %s: %s"
 msgstr "Kullanıcı uygulaması yapılandırma klasörü %s oluşturulamıyor: %s"
 
-#: gio/gdesktopappinfo.c:3410
+#: gio/gdesktopappinfo.c:3417
 #, c-format
 msgid "Can’t create user MIME configuration folder %s: %s"
 msgstr "Kullanıcı MIME yapılandırma klasörü %s oluşturulamıyor: %s"
 
-#: gio/gdesktopappinfo.c:3650 gio/gdesktopappinfo.c:3674
+#: gio/gdesktopappinfo.c:3657 gio/gdesktopappinfo.c:3681
 msgid "Application information lacks an identifier"
 msgstr "Uygulama bilgisi bir tanımlayıcıya sahip değildir"
 
-#: gio/gdesktopappinfo.c:3908
+#: gio/gdesktopappinfo.c:3915
 #, c-format
 msgid "Can’t create user desktop file %s"
 msgstr "Kullanıcı masaüstü dosyası %s oluşturulamıyor"
 
-#: gio/gdesktopappinfo.c:4042
+#: gio/gdesktopappinfo.c:4049
 #, c-format
 msgid "Custom definition for %s"
 msgstr "%s için özel tanım"
@@ -1300,12 +1300,12 @@ msgstr "sürücü start uygulamıyor"
 msgid "drive doesn’t implement stop"
 msgstr "sürücü stop uygulamıyor"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
-#: gio/gdummytlsbackend.c:509
+#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
+#: gio/gdummytlsbackend.c:513
 msgid "TLS support is not available"
 msgstr "TLS desteği kullanılabilir değil"
 
-#: gio/gdummytlsbackend.c:419
+#: gio/gdummytlsbackend.c:423
 msgid "DTLS support is not available"
 msgstr "DTLS desteği kullanılabilir değil"
 
@@ -1338,7 +1338,7 @@ msgstr "GEmblemedIcon için bir Gemblem beklendi"
 #: gio/gfile.c:1976 gio/gfile.c:2031 gio/gfile.c:3722 gio/gfile.c:3777
 #: gio/gfile.c:4055 gio/gfile.c:4523 gio/gfile.c:4934 gio/gfile.c:5019
 #: gio/gfile.c:5109 gio/gfile.c:5206 gio/gfile.c:5293 gio/gfile.c:5394
-#: gio/gfile.c:8098 gio/gfile.c:8188 gio/gfile.c:8272
+#: gio/gfile.c:8104 gio/gfile.c:8194 gio/gfile.c:8278
 #: gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "İşlem desteklenmiyor"
@@ -1415,7 +1415,7 @@ msgstr "Dosya adları “%c” içeremez"
 msgid "volume doesn’t implement mount"
 msgstr "bölüm, bağlamayı yerine getirmiyor"
 
-#: gio/gfile.c:6868 gio/gfile.c:6914
+#: gio/gfile.c:6871 gio/gfile.c:6919
 msgid "No application is registered as handling this file"
 msgstr "Bu dosyayı işlemek için hiçbir uygulama kayıtlı değil"
 
@@ -1577,7 +1577,7 @@ msgstr "Taşındığında dosyayla tut"
 msgid "“version” takes no arguments"
 msgstr "“version” hiçbir argüman almaz"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:864
+#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
 msgid "Usage:"
 msgstr "Kullanım:"
 
@@ -2999,96 +2999,132 @@ msgstr "Bağlı sistemler arasında taşıma desteklenmiyor"
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "%s’in disk kullanımı saptanamadı: %s"
 
-#: gio/glocalfileinfo.c:755
+#: gio/glocalfileinfo.c:760
 msgid "Attribute value must be non-NULL"
 msgstr "Öznitelik değeri NULL olmamalı"
 
-#: gio/glocalfileinfo.c:762
+#: gio/glocalfileinfo.c:767
 msgid "Invalid attribute type (string expected)"
 msgstr "Geçersiz öznitelik türü (dizgi beklendi)"
 
-#: gio/glocalfileinfo.c:769
+#: gio/glocalfileinfo.c:774
 msgid "Invalid extended attribute name"
 msgstr "Geçersiz genişletilmiş öznitelik adı"
 
-#: gio/glocalfileinfo.c:809
+#: gio/glocalfileinfo.c:814
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "“%s” genişletilmiş özniteliği atanırken hata: %s"
 
-#: gio/glocalfileinfo.c:1637
+#: gio/glocalfileinfo.c:1650
 msgid " (invalid encoding)"
 msgstr " (geçersiz kodlama)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1814 gio/glocalfileoutputstream.c:909
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "“%s” dosyası için bilgi alınırken hata: %s"
 
-#: gio/glocalfileinfo.c:2071
+#: gio/glocalfileinfo.c:2084
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Dosya tanımlayıcı için bilgi alındığında hata: %s"
 
-#: gio/glocalfileinfo.c:2116
+#: gio/glocalfileinfo.c:2129
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Geçersiz öznitelik türü (uint32 beklendi)"
 
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2147
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Geçersiz öznitelik türü (uint64 beklendi)"
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: gio/glocalfileinfo.c:2166 gio/glocalfileinfo.c:2185
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Geçersiz öznitelik türü (byte dizisi beklendi)"
 
-#: gio/glocalfileinfo.c:2219
+#: gio/glocalfileinfo.c:2232
 msgid "Cannot set permissions on symlinks"
 msgstr "Simgesel bağlar üzerindeki yetkiler ayarlanamıyor"
 
-#: gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2248
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "İzinler atanırken hata: %s"
 
-#: gio/glocalfileinfo.c:2286
+#: gio/glocalfileinfo.c:2299
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Sahip atanırken hata: %s"
 
-#: gio/glocalfileinfo.c:2309
+#: gio/glocalfileinfo.c:2322
 msgid "symlink must be non-NULL"
 msgstr "simgesel bağ NULL olmamalı"
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
+#: gio/glocalfileinfo.c:2362
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Simgesel bağ atanırken hata: %s"
 
-#: gio/glocalfileinfo.c:2328
+#: gio/glocalfileinfo.c:2341
 msgid "Error setting symlink: file is not a symlink"
 msgstr "Simgesel bağ atanırken hata: dosya bir simgesel bağ değil"
 
-#: gio/glocalfileinfo.c:2454
+#: gio/glocalfileinfo.c:2413
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr "UNIX zaman damgası %2$lld için %1$d ek nanosaniye negatif"
+
+#: gio/glocalfileinfo.c:2422
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr "UNIX zaman damgası %2$lld için %1$d ek nano saniye 1 saniyeye ulaştı"
+
+#: gio/glocalfileinfo.c:2432
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr "UNIX zaman damgası %lld 64 bit’e sığmıyor"
+
+#: gio/glocalfileinfo.c:2443
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr ""
+"UNIX zaman damgası %lld Windows tarafından desteklenen aralığın dışında"
+
+#: gio/glocalfileinfo.c:2507
+#, c-format
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr "“%s” dosya adı UTF-16’ya dönüştürülemedi"
+
+#: gio/glocalfileinfo.c:2526
+#, c-format
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr "“%s” dosyası açılamadı: Windows Hatası %lu"
+
+#: gio/glocalfileinfo.c:2539
+#, c-format
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr "“%s” dosyasına değiştirme veya erişim süresi atanırken hata: %lu"
+
+#: gio/glocalfileinfo.c:2640
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Değiştirme veya erişim süresi atanırken hata: %s"
 
-#: gio/glocalfileinfo.c:2477
+#: gio/glocalfileinfo.c:2663
 msgid "SELinux context must be non-NULL"
 msgstr "SELinux bağlamı NULL olmamalı"
 
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2678
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "SELinux bağlamı atanırken hata: %s"
 
-#: gio/glocalfileinfo.c:2499
+#: gio/glocalfileinfo.c:2685
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux bu sistede etkin değil"
 
-#: gio/glocalfileinfo.c:2591
+#: gio/glocalfileinfo.c:2777
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Öznitelik %s ataması desteklenmiyor"
@@ -3849,12 +3885,12 @@ msgstr "GSocketControlMessage Windows işletim sisteminde desteklenmiyor"
 msgid "Error receiving message: %s"
 msgstr "İleti alma hatası: %s"
 
-#: gio/gsocket.c:5995
+#: gio/gsocket.c:5983 gio/gsocket.c:6031
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr "Soket kimliği okunamadı : %s"
 
-#: gio/gsocket.c:6004
+#: gio/gsocket.c:6040
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr "bu işletim sistemi için g_socket_get_credentials uygulanmadı"
 
@@ -3872,11 +3908,11 @@ msgstr "%s bağlantısı gerçekleştirilemedi:  "
 msgid "Could not connect: "
 msgstr "Bağlanılamadı: "
 
-#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1764
+#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1866
 msgid "Unknown error on connect"
 msgstr "Bağlanırken bilinmeyen bir hata"
 
-#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1672
+#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1668
 msgid "Proxying over a non-TCP connection is not supported."
 msgstr "TCP olmayan bağlantılar üzerinden vekil sunucusu desteklenmiyor."
 
@@ -3915,15 +3951,15 @@ msgstr "Bu sunucu bir SOCKSv4 vekil sunucusu değil."
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr "SOCKSv4 sunucusu ile bağlantı, reddedildi"
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
+#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "Sunucu, bir SOCKSv5 vekil sunucusu değil."
 
-#: gio/gsocks5proxy.c:167
+#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr "SOCKSv5 vekil sunucusu kimlik doğrulaması gerektiriyor."
 
-#: gio/gsocks5proxy.c:177
+#: gio/gsocks5proxy.c:191
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
@@ -3931,54 +3967,54 @@ msgstr ""
 "SOCKSv5 vekil sunucusu, Glib tarafından desteklenmeyen bir kimlik doğrulama "
 "yöntemi istiyor."
 
-#: gio/gsocks5proxy.c:206
+#: gio/gsocks5proxy.c:220
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr "Kullanıcı adı ya da parola SOCKSv5 iletişim kuralı için çok uzun."
 
-#: gio/gsocks5proxy.c:236
+#: gio/gsocks5proxy.c:250
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr ""
 "Yanlış kullanıcı adı ya da paroladan dolayı SOCKSv5 kimlik doğrulaması "
 "başarısız oldu."
 
-#: gio/gsocks5proxy.c:286
+#: gio/gsocks5proxy.c:300
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv5 protocol"
 msgstr "“%s” makine adı SOCKSv5 iletişim kuralı için çok uzun"
 
-#: gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:362
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr "SOCKSv5 vekil sunucusu, bilinmeyen bir adres türü kullanıyor."
 
-#: gio/gsocks5proxy.c:355
+#: gio/gsocks5proxy.c:369
 msgid "Internal SOCKSv5 proxy server error."
 msgstr "İç SOCKSv5 vekil sunucu hatası."
 
-#: gio/gsocks5proxy.c:361
+#: gio/gsocks5proxy.c:375
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr "Kural kümesi tarafından SOCKSv5 bağlantısına izin verilmiyor."
 
-#: gio/gsocks5proxy.c:368
+#: gio/gsocks5proxy.c:382
 msgid "Host unreachable through SOCKSv5 server."
 msgstr "SOCKSv5 sunucusu üzerinden makineye ulaşılamıyor."
 
-#: gio/gsocks5proxy.c:374
+#: gio/gsocks5proxy.c:388
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr "SOCKSv5 vekil sunucusu üzerinden ağa ulaşılamıyor."
 
-#: gio/gsocks5proxy.c:380
+#: gio/gsocks5proxy.c:394
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr "SOCKSv5 vekil sunucusu üzerinden bağlantı reddedildi."
 
-#: gio/gsocks5proxy.c:386
+#: gio/gsocks5proxy.c:400
 msgid "SOCKSv5 proxy does not support “connect” command."
 msgstr "SOCKSv5 vekil sunucusu “connect” komutunu desteklemiyor."
 
-#: gio/gsocks5proxy.c:392
+#: gio/gsocks5proxy.c:406
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr "SOCKSv5 vekil sunucusu verilen adres türünü desteklemiyor."
 
-#: gio/gsocks5proxy.c:398
+#: gio/gsocks5proxy.c:412
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Bilinmeyen SOCKSv5 vekil hatası."
 
@@ -4104,24 +4140,24 @@ msgstr "Beklenen denetim iletisi yok fakat %d alındı"
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "SO_PASSCRED devre dışı bırakılırken hata: %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:362 gio/gunixinputstream.c:383
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "Dosya tanımlayıcıdan okuma hatası: %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
+#: gio/gunixinputstream.c:416 gio/gunixoutputstream.c:525
 #: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr "Dosya tanımlayıcı kapatılırken hata: %s"
 
-#: gio/gunixmounts.c:2664 gio/gunixmounts.c:2717
+#: gio/gunixmounts.c:2709 gio/gunixmounts.c:2762
 msgid "Filesystem root"
 msgstr "Dosya sistemi kök dizini"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:362 gio/gunixoutputstream.c:382
+#: gio/gunixoutputstream.c:469 gio/gunixoutputstream.c:489
+#: gio/gunixoutputstream.c:635
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "Dosya tanımlayıcıya yazmada hata: %s"
@@ -4827,19 +4863,19 @@ msgstr "“%s” simgesel bağını okuma başarısız: %s"
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "“%s”-“%s” dönüştürücüsü açılamıyor: %s"
 
-#: glib/giochannel.c:1741
+#: glib/giochannel.c:1749
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr "g_io_channel_read_line_string içinde ham okuma yapılamıyor"
 
-#: glib/giochannel.c:1788 glib/giochannel.c:2046 glib/giochannel.c:2133
+#: glib/giochannel.c:1796 glib/giochannel.c:2054 glib/giochannel.c:2141
 msgid "Leftover unconverted data in read buffer"
 msgstr "Okuma tampon belleğinde kalıntı çevrilmemiş veri"
 
-#: glib/giochannel.c:1869 glib/giochannel.c:1946
+#: glib/giochannel.c:1877 glib/giochannel.c:1954
 msgid "Channel terminates in a partial character"
 msgstr "Kanal kısmi bir karakterde sonlanıyor"
 
-#: glib/giochannel.c:1932
+#: glib/giochannel.c:1940
 msgid "Can’t do a raw read in g_io_channel_read_to_end"
 msgstr "g_io_channel_read_to_end içinde ham okuma başarısız"
 
@@ -5183,61 +5219,61 @@ msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "Belge bir yorum veya işlem talimatı içindeyken beklenmedik biçimde sonlandı"
 
-#: glib/goption.c:868
+#: glib/goption.c:873
 msgid "[OPTION…]"
 msgstr "[SEÇENEK…]"
 
-#: glib/goption.c:984
+#: glib/goption.c:989
 msgid "Help Options:"
 msgstr "Yardım Seçenekleri:"
 
-#: glib/goption.c:985
+#: glib/goption.c:990
 msgid "Show help options"
 msgstr "Yardım seçeneklerini göster"
 
-#: glib/goption.c:991
+#: glib/goption.c:996
 msgid "Show all help options"
 msgstr "Tüm yardım seçeneklerini göster"
 
-#: glib/goption.c:1054
+#: glib/goption.c:1059
 msgid "Application Options:"
 msgstr "Uygulama Seçenekleri:"
 
-#: glib/goption.c:1056
+#: glib/goption.c:1061
 msgid "Options:"
 msgstr "Seçenekler:"
 
-#: glib/goption.c:1120 glib/goption.c:1190
+#: glib/goption.c:1125 glib/goption.c:1195
 #, c-format
 msgid "Cannot parse integer value “%s” for %s"
 msgstr "%2$s için tamsayı değeri “%1$s” ayrıştırılamıyor"
 
-#: glib/goption.c:1130 glib/goption.c:1198
+#: glib/goption.c:1135 glib/goption.c:1203
 #, c-format
 msgid "Integer value “%s” for %s out of range"
 msgstr "%2$s için tamsayı değeri “%1$s” aralık dışında"
 
-#: glib/goption.c:1155
+#: glib/goption.c:1160
 #, c-format
 msgid "Cannot parse double value “%s” for %s"
 msgstr "%2$s için double değeri “%1$s” ayrıştırılamıyor"
 
-#: glib/goption.c:1163
+#: glib/goption.c:1168
 #, c-format
 msgid "Double value “%s” for %s out of range"
 msgstr "%2$s için double değeri “%1$s” aralık dışında"
 
-#: glib/goption.c:1455 glib/goption.c:1534
+#: glib/goption.c:1460 glib/goption.c:1539
 #, c-format
 msgid "Error parsing option %s"
 msgstr "%s seçeneği işlenirken hata"
 
-#: glib/goption.c:1565 glib/goption.c:1678
+#: glib/goption.c:1570 glib/goption.c:1683
 #, c-format
 msgid "Missing argument for %s"
 msgstr "%s için argüman eksik"
 
-#: glib/goption.c:2189
+#: glib/goption.c:2194
 #, c-format
 msgid "Unknown option %s"
 msgstr "Bilinmeyen seçenek %s"
index c1cdf53..cc9ba79 100644 (file)
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib 2.64\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2020-05-14 14:05+0000\n"
-"PO-Revision-Date: 2020-05-18 01:10+0800\n"
+"POT-Creation-Date: 2020-05-15 13:10+0000\n"
+"PO-Revision-Date: 2020-05-18 01:07+0800\n"
 "Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
 "Language-Team: Chinese (Traditional) <zh-l10n@lists.linux.org.tw>\n"
 "Language: zh_TW\n"
@@ -337,23 +337,23 @@ msgstr "不明的類型"
 msgid "%s filetype"
 msgstr "%s 檔案類型"
 
-#: gio/gcredentials.c:289
+#: gio/gcredentials.c:323
 msgid "GCredentials contains invalid data"
 msgstr "GCredentials 有無效資料"
 
-#: gio/gcredentials.c:345 gio/gcredentials.c:609
+#: gio/gcredentials.c:383 gio/gcredentials.c:667
 msgid "GCredentials is not implemented on this OS"
 msgstr "GCredentials 沒有在這個 OS 上實作"
 
-#: gio/gcredentials.c:503
+#: gio/gcredentials.c:538 gio/gcredentials.c:556
 msgid "There is no GCredentials support for your platform"
 msgstr "您的平臺沒有 GCredentials 支援"
 
-#: gio/gcredentials.c:552
+#: gio/gcredentials.c:607
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr "GCredentials 沒有包含在這個 OS 上的程序 ID"
 
-#: gio/gcredentials.c:603
+#: gio/gcredentials.c:661
 msgid "Credentials spoofing is not possible on this OS"
 msgstr "在這個 OS 無法做到憑證偽裝"
 
@@ -493,14 +493,14 @@ msgstr "產生命令列「%s」時出現錯誤:"
 msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr "不能判斷作業階段匯流排位址(沒有在這個 OS 實作)"
 
-#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7190
+#: gio/gdbusaddress.c:1357 gio/gdbusconnection.c:7192
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
 "— unknown value “%s”"
 msgstr "不能從 DBUS_STARTER_BUS_TYPE 環境變數判斷匯流排位址 — 不明的「%s」值"
 
-#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7199
+#: gio/gdbusaddress.c:1366 gio/gdbusconnection.c:7201
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -615,79 +615,79 @@ msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr "當建立客戶端連線時遇到不支援的旗標"
 
-#: gio/gdbusconnection.c:4161 gio/gdbusconnection.c:4508
+#: gio/gdbusconnection.c:4163 gio/gdbusconnection.c:4510
 #, c-format
 msgid ""
 "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
 msgstr "在 %s 路徑的物件沒有「org.freedesktop.DBus.Properties」這個介面"
 
-#: gio/gdbusconnection.c:4303
+#: gio/gdbusconnection.c:4305
 #, c-format
 msgid "No such property “%s”"
 msgstr "沒有這個屬性「%s」"
 
-#: gio/gdbusconnection.c:4315
+#: gio/gdbusconnection.c:4317
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "無法讀取「%s」屬性"
 
-#: gio/gdbusconnection.c:4326
+#: gio/gdbusconnection.c:4328
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "無法寫入「%s」屬性"
 
-#: gio/gdbusconnection.c:4346
+#: gio/gdbusconnection.c:4348
 #, c-format
 msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
 msgstr "「%s」屬性設定錯誤:預期的類型為「%s」但得到「%s」"
 
-#: gio/gdbusconnection.c:4451 gio/gdbusconnection.c:4659
-#: gio/gdbusconnection.c:6630
+#: gio/gdbusconnection.c:4453 gio/gdbusconnection.c:4661
+#: gio/gdbusconnection.c:6632
 #, c-format
 msgid "No such interface “%s”"
 msgstr "沒有這個「%s」介面"
 
-#: gio/gdbusconnection.c:4877 gio/gdbusconnection.c:7139
+#: gio/gdbusconnection.c:4879 gio/gdbusconnection.c:7141
 #, c-format
 msgid "No such interface “%s” on object at path %s"
 msgstr "在 %2$s 路徑的物件沒有「%1$s」這個介面"
 
-#: gio/gdbusconnection.c:4975
+#: gio/gdbusconnection.c:4977
 #, c-format
 msgid "No such method “%s”"
 msgstr "沒有「%s」方法"
 
-#: gio/gdbusconnection.c:5006
+#: gio/gdbusconnection.c:5008
 #, c-format
 msgid "Type of message, “%s”, does not match expected type “%s”"
 msgstr "訊息的類型,「%s」,不符合預期的類型「%s」"
 
-#: gio/gdbusconnection.c:5204
+#: gio/gdbusconnection.c:5206
 #, c-format
 msgid "An object is already exported for the interface %s at %s"
 msgstr "有物件已為介面 %s 匯出於 %s"
 
-#: gio/gdbusconnection.c:5430
+#: gio/gdbusconnection.c:5432
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "無法取回屬性 %s.%s"
 
-#: gio/gdbusconnection.c:5486
+#: gio/gdbusconnection.c:5488
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "無法設定屬性 %s.%s"
 
-#: gio/gdbusconnection.c:5664
+#: gio/gdbusconnection.c:5666
 #, c-format
 msgid "Method “%s” returned type “%s”, but expected “%s”"
 msgstr "方法「%s」傳回類型「%s」,但預期為「%s」"
 
-#: gio/gdbusconnection.c:6741
+#: gio/gdbusconnection.c:6743
 #, c-format
 msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
 msgstr "介面「%2$s」簽章「%3$s」的方法「%1$s」不存在"
 
-#: gio/gdbusconnection.c:6862
+#: gio/gdbusconnection.c:6864
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "子樹狀目錄已為 %s 匯出"
@@ -1193,7 +1193,7 @@ msgstr "錯誤:引數太多。\n"
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "錯誤:%s 不是有效的已知匯流排名稱。\n"
 
-#: gio/gdesktopappinfo.c:2071 gio/gdesktopappinfo.c:4877
+#: gio/gdesktopappinfo.c:2071 gio/gdesktopappinfo.c:4886
 msgid "Unnamed"
 msgstr "未命名的"
 
@@ -1527,7 +1527,7 @@ msgstr "移動時保持檔案"
 msgid "“version” takes no arguments"
 msgstr "「version」不需要引數"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:864
+#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
 msgid "Usage:"
 msgstr "用法:"
 
@@ -2922,96 +2922,131 @@ msgstr "不支援在掛載點之間移動"
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "無法決定 %s 的磁碟使用量:%s"
 
-#: gio/glocalfileinfo.c:755
+#: gio/glocalfileinfo.c:760
 msgid "Attribute value must be non-NULL"
 msgstr "特性值必須為非-NULL"
 
-#: gio/glocalfileinfo.c:762
+#: gio/glocalfileinfo.c:767
 msgid "Invalid attribute type (string expected)"
 msgstr "無效的特性類型(應為字串值)"
 
-#: gio/glocalfileinfo.c:769
+#: gio/glocalfileinfo.c:774
 msgid "Invalid extended attribute name"
 msgstr "無效的延伸特性名稱"
 
-#: gio/glocalfileinfo.c:809
+#: gio/glocalfileinfo.c:814
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "設定延伸特性「%s」時發生錯誤:%s"
 
-#: gio/glocalfileinfo.c:1637
+#: gio/glocalfileinfo.c:1650
 msgid " (invalid encoding)"
 msgstr "(無效的編碼)"
 
-#: gio/glocalfileinfo.c:1801 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1814 gio/glocalfileoutputstream.c:909
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "取得檔案「%s」資訊時發生錯誤:%s"
 
-#: gio/glocalfileinfo.c:2071
+#: gio/glocalfileinfo.c:2084
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "取得檔案描述狀態資訊時發生錯誤:%s"
 
-#: gio/glocalfileinfo.c:2116
+#: gio/glocalfileinfo.c:2129
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "無效的特性類型(應為 uint32 值)"
 
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2147
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "無效的特性類型(應為 uint64 值)"
 
-#: gio/glocalfileinfo.c:2153 gio/glocalfileinfo.c:2172
+#: gio/glocalfileinfo.c:2166 gio/glocalfileinfo.c:2185
 msgid "Invalid attribute type (byte string expected)"
 msgstr "無效的特性類型(應為 byte string 值)"
 
-#: gio/glocalfileinfo.c:2219
+#: gio/glocalfileinfo.c:2232
 msgid "Cannot set permissions on symlinks"
 msgstr "不能設定符號連結的權限"
 
-#: gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2248
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "設定權限時發生錯誤:%s"
 
-#: gio/glocalfileinfo.c:2286
+#: gio/glocalfileinfo.c:2299
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "設定擁有者時發生錯誤:%s"
 
-#: gio/glocalfileinfo.c:2309
+#: gio/glocalfileinfo.c:2322
 msgid "symlink must be non-NULL"
 msgstr "符號連結必須為非-NULL"
 
-#: gio/glocalfileinfo.c:2319 gio/glocalfileinfo.c:2338
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
+#: gio/glocalfileinfo.c:2362
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "設定符號連結時發生錯誤:%s"
 
-#: gio/glocalfileinfo.c:2328
+#: gio/glocalfileinfo.c:2341
 msgid "Error setting symlink: file is not a symlink"
 msgstr "設定符號連結時發生錯誤:檔案不是符號連結"
 
-#: gio/glocalfileinfo.c:2454
+#: gio/glocalfileinfo.c:2413
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr "UNIX 時間戳 %2$lld 的延伸奈秒 %1$d 是負數"
+
+#: gio/glocalfileinfo.c:2422
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr "UNIX 時間戳 %2$lld 的延伸奈秒 %1$d 達 1 秒"
+
+#: gio/glocalfileinfo.c:2432
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr "UNIX 時間戳 %lld 不能完整放入 64 位元"
+
+#: gio/glocalfileinfo.c:2443
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr "UNIX 時間戳 %lld 超出 Windows 所支援的範圍"
+
+#: gio/glocalfileinfo.c:2507
+#, c-format
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr "「%s」檔名無法轉換為 UTF-16"
+
+#: gio/glocalfileinfo.c:2526
+#, c-format
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr "無法開啟「%s」檔案:Windows 錯誤 %lu"
+
+#: gio/glocalfileinfo.c:2539
+#, c-format
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr "設定「%s」檔案的修改或存取時間時發生錯誤:%lu"
+
+#: gio/glocalfileinfo.c:2640
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "設定修改或存取時刻時發生錯誤:%s"
 
-#: gio/glocalfileinfo.c:2477
+#: gio/glocalfileinfo.c:2663
 msgid "SELinux context must be non-NULL"
 msgstr "SELinux 情境必須為非-NULL"
 
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2678
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "設定 SELinux 情境時發生錯誤:%s"
 
-#: gio/glocalfileinfo.c:2499
+#: gio/glocalfileinfo.c:2685
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux 在這個系統上並未啟用"
 
-#: gio/glocalfileinfo.c:2591
+#: gio/glocalfileinfo.c:2777
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "不支援設定特性 %s"
@@ -3764,12 +3799,12 @@ msgstr "視窗不支援 GSocketControlMessage"
 msgid "Error receiving message: %s"
 msgstr "取回郵件發生錯誤:%s"
 
-#: gio/gsocket.c:5995
+#: gio/gsocket.c:5983 gio/gsocket.c:6031
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr "無法讀取 socket 機密:%s"
 
-#: gio/gsocket.c:6004
+#: gio/gsocket.c:6040
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr "g_socket_get_credentials 沒有在這個 OS 上實作"
 
@@ -4012,12 +4047,12 @@ msgstr "不是預期的控制訊息,卻收到 %d"
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "停用 SO_PASSCRED 時發生錯誤:%s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:362 gio/gunixinputstream.c:383
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "讀取檔案描述狀態時發生錯誤:%s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
+#: gio/gunixinputstream.c:416 gio/gunixoutputstream.c:525
 #: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
@@ -4027,9 +4062,9 @@ msgstr "關閉檔案描述狀態時發生錯誤:%s"
 msgid "Filesystem root"
 msgstr "根檔案系統"
 
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:362 gio/gunixoutputstream.c:382
+#: gio/gunixoutputstream.c:469 gio/gunixoutputstream.c:489
+#: gio/gunixoutputstream.c:635
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "寫入檔案描述狀態時發生錯誤:%s"
@@ -5055,61 +5090,61 @@ msgstr "在未開啟「%s」元素的關閉標籤內,文件突然結束"
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr "在註解或處理指示內,文件突然結束"
 
-#: glib/goption.c:868
+#: glib/goption.c:873
 msgid "[OPTION…]"
 msgstr "[選項…]"
 
-#: glib/goption.c:984
+#: glib/goption.c:989
 msgid "Help Options:"
 msgstr "說明選項:"
 
-#: glib/goption.c:985
+#: glib/goption.c:990
 msgid "Show help options"
 msgstr "顯示說明的選項"
 
-#: glib/goption.c:991
+#: glib/goption.c:996
 msgid "Show all help options"
 msgstr "顯示所有的說明選項"
 
-#: glib/goption.c:1054
+#: glib/goption.c:1059
 msgid "Application Options:"
 msgstr "應用程式選項:"
 
-#: glib/goption.c:1056
+#: glib/goption.c:1061
 msgid "Options:"
 msgstr "選項:"
 
-#: glib/goption.c:1120 glib/goption.c:1190
+#: glib/goption.c:1125 glib/goption.c:1195
 #, c-format
 msgid "Cannot parse integer value “%s” for %s"
 msgstr "無法給 %2$s 解析整數值「%1$s」"
 
-#: glib/goption.c:1130 glib/goption.c:1198
+#: glib/goption.c:1135 glib/goption.c:1203
 #, c-format
 msgid "Integer value “%s” for %s out of range"
 msgstr "%2$s 的整數值「%1$s」超出範圍"
 
-#: glib/goption.c:1155
+#: glib/goption.c:1160
 #, c-format
 msgid "Cannot parse double value “%s” for %s"
 msgstr "無法給 %2$s 解析雙精度浮點數「%1$s」"
 
-#: glib/goption.c:1163
+#: glib/goption.c:1168
 #, c-format
 msgid "Double value “%s” for %s out of range"
 msgstr "%2$s 的雙精度浮點數「%1$s」超出範圍"
 
-#: glib/goption.c:1455 glib/goption.c:1534
+#: glib/goption.c:1460 glib/goption.c:1539
 #, c-format
 msgid "Error parsing option %s"
 msgstr "解析 %s 選項時發生錯誤"
 
-#: glib/goption.c:1565 glib/goption.c:1678
+#: glib/goption.c:1570 glib/goption.c:1683
 #, c-format
 msgid "Missing argument for %s"
 msgstr "缺少 %s 的參數"
 
-#: glib/goption.c:2189
+#: glib/goption.c:2194
 #, c-format
 msgid "Unknown option %s"
 msgstr "不明的選項 %s"
@@ -5976,31 +6011,3 @@ msgstr "%.1f EB"
 
 #~ msgid "Key file does not have key '%s'"
 #~ msgstr "設定鍵檔案沒有設定鍵‘%s’"
-
-#, c-format
-#~ msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
-#~ msgstr "UNIX 時間戳 %2$lld 的延伸奈秒 %1$d 是負數"
-
-#, c-format
-#~ msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
-#~ msgstr "UNIX 時間戳 %2$lld 的延伸奈秒 %1$d 達 1 秒"
-
-#, c-format
-#~ msgid "UNIX timestamp %lld does not fit into 64 bits"
-#~ msgstr "UNIX 時間戳 %lld 不能完整放入 64 位元"
-
-#, c-format
-#~ msgid "UNIX timestamp %lld is outside of the range supported by Windows"
-#~ msgstr "UNIX 時間戳 %lld 超出 Windows 所支援的範圍"
-
-#, c-format
-#~ msgid "File name “%s” cannot be converted to UTF-16"
-#~ msgstr "「%s」檔名無法轉換為 UTF-16"
-
-#, c-format
-#~ msgid "File “%s” cannot be opened: Windows Error %lu"
-#~ msgstr "無法開啟「%s」檔案:Windows 錯誤 %lu"
-
-#, c-format
-#~ msgid "Error setting modification or access time for file “%s”: %lu"
-#~ msgstr "設定「%s」檔案的修改或存取時間時發生錯誤:%lu"
index 44f8010..75591c8 100644 (file)
@@ -5,4 +5,3 @@ int main(int argc, char **argv)
     g_assert(42 < 0);
     return 0;
 }
-
index 61ce15e..b223771 100644 (file)
@@ -1,4 +1,4 @@
-# Test cases generated from Unicode 12.1.0 data
+# Test cases generated from Unicode 13.0.0 data
 # by gen-casefold-txt.py. Do not edit.
 #
 # Some special hand crafted tests
@@ -1151,6 +1151,9 @@ Z z
 Ꞔ    ꞔ
 Ʂ    ʂ
 Ᶎ    ᶎ
+Ꟈ    ꟈ
+Ꟊ    ꟊ
+Ꟶ    ꟶ
 ꭰ    Ꭰ
 ꭱ    Ꭱ
 ꭲ    Ꭲ
index b5e1a61..eccc12b 100644 (file)
@@ -1,4 +1,4 @@
-# Test cases generated from Unicode 12.1.0 data
+# Test cases generated from Unicode 13.0.0 data
 # by gen-casemap-txt.py. Do not edit.
 #
 # Some special hand crafted tests
@@ -2432,6 +2432,12 @@ lt_LT.UTF-8      Į́    į̇́  Į́    Į́     # LATIN CAPITAL LETTER I WITH OGONEK (with ac
        Ꞔ     ꞔ             Ꞔ     # A7C4
        Ʂ     ʂ              Ʂ     # A7C5
        Ᶎ     ᶎ             Ᶎ     # A7C6
+       Ꟈ     ꟈ             Ꟈ     # A7C7
+       ꟈ     ꟈ     Ꟈ     Ꟈ     # A7C8
+       Ꟊ     ꟊ             Ꟊ     # A7C9
+       ꟊ     ꟊ     Ꟊ     Ꟊ     # A7CA
+       Ꟶ     ꟶ             Ꟶ     # A7F5
+       ꟶ     ꟶ     Ꟶ     Ꟶ     # A7F6
        ꟺ     ꟺ                     # A7FA
        ꬰ     ꬰ                     # AB30
        ꬱ     ꬱ                     # AB31
@@ -2484,6 +2490,7 @@ lt_LT.UTF-8       Į́    į̇́  Į́    Į́     # LATIN CAPITAL LETTER I WITH OGONEK (with ac
        ꭥ     ꭥ                     # AB65
        ꭦ     ꭦ                     # AB66
        ꭧ     ꭧ                     # AB67
+       ꭨ     ꭨ                     # AB68
        ꭰ     ꭰ     Ꭰ     Ꭰ     # AB70
        ꭱ     ꭱ     Ꭱ     Ꭱ     # AB71
        ꭲ     ꭲ     Ꭲ     Ꭲ     # AB72
index d46ef1b..52a4678 100644 (file)
@@ -116,4 +116,3 @@ main (int   argc,
 
   return 0;
 }
-
index 03472ac..deffa4d 100644 (file)
@@ -418,4 +418,3 @@ main (int    argc,
   
   return 0;
 }
-
index 521816e..30ea5bd 100644 (file)
@@ -205,7 +205,7 @@ static GOptionEntry cmd_entries[] = {
   {"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
    "Print extra information", NULL},
   {"threads", 't', 0, G_OPTION_ARG_INT, &n_threads,
-   "number of threads to run in parrallel", NULL},
+   "number of threads to run in parallel", NULL},
   {"seconds", 's', 0, G_OPTION_ARG_INT, &test_length,
    "Time to run each test in seconds", NULL},
   {"list", 'l', 0, G_OPTION_ARG_NONE, &list, 
index 525a188..236ffae 100644 (file)
@@ -25,7 +25,7 @@
 #define DEFAULT_TEST_TIME 15 /* seconds */
  /* The time we want each round to take, in seconds, this should
   * be large enough compared to the timer resolution, but small
-  * enought that the risk of any random slowness will miss the
+  * enough that the risk of any random slowness will miss the
   * running window */
 #define TARGET_ROUND_TIME 0.008
 
index 60e18f1..3133be1 100644 (file)
@@ -64,4 +64,3 @@ test_module_new (TestModuleRegisterFunc register_func)
 
   return G_TYPE_MODULE (module);
 }
-
index 4f056aa..67fcb49 100644 (file)
@@ -134,4 +134,3 @@ main (int   argc,
 
   return 0;
 }
-
index 9e2ace2..cc1e7a9 100644 (file)
@@ -509,5 +509,3 @@ g_print ("testing %d years\n", n_check_years);
 
   return (notpassed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
 }
-
-
index dea5602..81cbadb 100644 (file)
@@ -96,5 +96,3 @@ int main(int argc, char** argv)
 
   return 0;
 }
-
-
index d2bc41e..57d7e1f 100644 (file)
@@ -234,4 +234,3 @@ main (int argc, char **argv)
 
   return 0;
 }
-